File: check-globals.test

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (84 lines) | stat: -rw-r--r-- 2,955 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
RUN: rm -rf %t && mkdir %t

# Check --check-globals all in normal mode and in --include-generated-funcs mode.

RUN: cp %S/Inputs/check-globals.c %t/norm.c
RUN: %update_cc_test_checks %t/norm.c --check-globals all
RUN: FileCheck %s --input-file=%t/norm.c --match-full-lines -strict-whitespace \
RUN:   -check-prefixes=BOTH,NRM

RUN: cp %S/Inputs/check-globals.c %t/igf.c
RUN: %update_cc_test_checks %t/igf.c --check-globals all --include-generated-funcs
RUN: FileCheck %s --input-file=%t/igf.c --match-full-lines -strict-whitespace \
RUN:   -check-prefixes=BOTH,IGF

# Check that repeating doesn't change it, such as duplicating '//.' occurrences.

RUN: cp %t/norm.c %t/norm-again.c
RUN: %update_cc_test_checks %t/norm-again.c --check-globals all
RUN: diff -u %t/norm.c %t/norm-again.c
RUN: rm %t/norm-again.c

RUN: cp %t/igf.c %t/igf-again.c
RUN: %update_cc_test_checks %t/igf-again.c --check-globals all \
RUN:     --include-generated-funcs
RUN: diff -u %t/igf.c %t/igf-again.c
RUN: rm %t/igf-again.c

# Check that the generated directives actually work correctly.  For example,
# they're not in the wrong order.

RUN: cp %S/Inputs/lit.cfg.example %t/lit.cfg
# Show lit failures while avoiding confusing FileCheck input dump nesting.
RUN: %lit %t
# Lit was successful.  Sanity-check the results with deterministic test order.
RUN: rm %t/.lit_test_times.txt
RUN: %lit %t 2>&1 | FileCheck -check-prefix=LIT-RUN %s

END.

  BOTH-NOT:{{.}}
       NRM:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals
       IGF:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --include-generated-funcs
 BOTH-NEXT:// {{.*}}
 BOTH-NEXT:// RUN: true
 BOTH-NEXT:// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
BOTH-EMPTY:
  IGF-NEXT:void foo(void) {
  IGF-NEXT:  static int i, j;
  IGF-NEXT:}
  IGF-NEXT:void bar(void) {
  IGF-NEXT:  static int i, j;
  IGF-NEXT:}
 BOTH-NEXT://.
 BOTH-NEXT:// CHECK: @foo.i = internal global i32 0, align 4
 BOTH-NEXT:// CHECK: @foo.j = internal global i32 0, align 4
 BOTH-NEXT:// CHECK: @bar.i = internal global i32 0, align 4
 BOTH-NEXT:// CHECK: @bar.j = internal global i32 0, align 4
 BOTH-NEXT://.
 BOTH-NEXT:// CHECK-LABEL: @foo(
 BOTH-NEXT:// CHECK-NEXT:  entry:
 BOTH-NEXT:// CHECK-NEXT:    ret void
 BOTH-NEXT://
  NRM-NEXT:void foo(void) {
  NRM-NEXT:  static int i, j;
  NRM-NEXT:}
  IGF-NEXT://
 BOTH-NEXT:// CHECK-LABEL: @bar(
 BOTH-NEXT:// CHECK-NEXT:  entry:
 BOTH-NEXT:// CHECK-NEXT:    ret void
 BOTH-NEXT://
  NRM-NEXT:void bar(void) {
  NRM-NEXT:  static int i, j;
  NRM-NEXT:}
 BOTH-NEXT://.
 BOTH-NEXT:// CHECK: attributes {{.*}}
 BOTH-NEXT://.
 BOTH-NEXT:// CHECK: {{\[\[META0:!\[0-9\]\+\]\]}} = {{.*}}
 BOTH-NEXT:// CHECK: {{\[\[META1:!\[0-9\]\+\]\]}} = {{.*}}
 BOTH-NEXT://.
  BOTH-NOT:{{.}}

LIT-RUN: Testing: 2 tests
LIT-RUN: PASS: {{.*}} igf.c
LIT-RUN: PASS: {{.*}} norm.c