summaryrefslogtreecommitdiff
path: root/gnu/llvm/utils/lit/tests/shtest-run-at-line.py
blob: 7e5d53b8e26ceea37a1c6c1e4fa135c18469cae6 (plain)
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
# Check that -vv makes the line number of the failing RUN command clear.
# (-v is actually sufficient in the case of the internal shell.)
#
# RUN: env -u FILECHECK_OPTS not %{lit} -j 1 -vv %{inputs}/shtest-run-at-line > %t.out
# RUN: FileCheck --input-file %t.out %s
#
# END.


# CHECK: Testing: 4 tests


# In the case of the external shell, we check for only RUN lines in stderr in
# case some shell implementations format "set -x" output differently.

# CHECK-LABEL: FAIL: shtest-run-at-line :: external-shell/basic.txt

# CHECK:      Script:
# CHECK:      RUN: at line 4{{.*}}  true
# CHECK-NEXT: RUN: at line 5{{.*}}  false
# CHECK-NEXT: RUN: at line 6{{.*}}  true

# CHECK:     RUN: at line 4
# CHECK:     RUN: at line 5
# CHECK-NOT: RUN

# CHECK-LABEL: FAIL: shtest-run-at-line :: external-shell/line-continuation.txt

# CHECK:      Script:
# CHECK:      RUN: at line 4{{.*}}  echo 'foo bar'  | FileCheck
# CHECK-NEXT: RUN: at line 6{{.*}}  echo 'foo baz'  | FileCheck
# CHECK-NEXT: RUN: at line 9{{.*}}  echo 'foo bar'  | FileCheck

# CHECK:     RUN: at line 4
# CHECK:     RUN: at line 6
# CHECK-NOT: RUN


# CHECK-LABEL: FAIL: shtest-run-at-line :: internal-shell/basic.txt

# CHECK:      Script:
# CHECK:      : 'RUN: at line 1';  true
# CHECK-NEXT: : 'RUN: at line 2';  false
# CHECK-NEXT: : 'RUN: at line 3';  true

# CHECK:      Command Output (stdout)
# CHECK:      $ ":" "RUN: at line 1"
# CHECK-NEXT: $ "true"
# CHECK-NEXT: $ ":" "RUN: at line 2"
# CHECK-NEXT: $ "false"
# CHECK-NOT:  RUN

# CHECK-LABEL: FAIL: shtest-run-at-line :: internal-shell/line-continuation.txt

# CHECK:      Script:
# CHECK:      : 'RUN: at line 1';  : first line continued to second line
# CHECK-NEXT: : 'RUN: at line 3';  echo 'foo bar'  | FileCheck
# CHECK-NEXT: : 'RUN: at line 5';  echo  'foo baz'  | FileCheck
# CHECK-NEXT: : 'RUN: at line 8';  echo 'foo bar'  | FileCheck

# CHECK:      Command Output (stdout)
# CHECK:      $ ":" "RUN: at line 1"
# CHECK-NEXT: $ ":" "first" "line" "continued" "to" "second" "line"
# CHECK-NEXT: $ ":" "RUN: at line 3"
# CHECK-NEXT: $ "echo" "foo bar"
# CHECK-NEXT: $ "FileCheck" "{{.*}}"
# CHECK-NEXT: $ ":" "RUN: at line 5"
# CHECK-NEXT: $ "echo" "foo baz"
# CHECK-NEXT: $ "FileCheck" "{{.*}}"
# CHECK-NOT:  RUN