1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/FileCheck/verbose.txt
Joel E. Denny 12c5f043b8 [FileCheck] Report captured variables
Report captured variables in input dumps and traces.  For example:

```
$ cat check
CHECK: hello [[WHAT:[a-z]+]]
CHECK: goodbye [[WHAT]]

$ FileCheck -dump-input=always -vv check < input |& tail -8
<<<<<<
           1: hello world
check:1'0     ^~~~~~~~~~~
check:1'1           ^~~~~ captured var "WHAT"
           2: goodbye world
check:2'0     ^~~~~~~~~~~~~
check:2'1                   with "WHAT" equal to "world"
>>>>>>

$ FileCheck -dump-input=never -vv check < input
check2:1:8: remark: CHECK: expected string found in input
CHECK: hello [[WHAT:[a-z]+]]
       ^
<stdin>:1:1: note: found here
hello world
^~~~~~~~~~~
<stdin>:1:7: note: captured var "WHAT"
hello world
      ^~~~~
check2:2:8: remark: CHECK: expected string found in input
CHECK: goodbye [[WHAT]]
       ^
<stdin>:2:1: note: found here
goodbye world
^~~~~~~~~~~~~
<stdin>:2:1: note: with "WHAT" equal to "world"
goodbye world
^
```

Reviewed By: thopre

Differential Revision: https://reviews.llvm.org/D83651
2020-07-28 19:15:18 -04:00

200 lines
6.7 KiB
Plaintext

; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never --input-file %s %s 2>&1 | \
; RUN: FileCheck --check-prefix QUIET --allow-empty %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -v --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefix V %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -vv --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -v -v --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefix V %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -vv -vv --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -v -vv --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck --dump-input=never -vv -v --input-file %s %s 2>&1 | \
; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s
; END.
foo
bar
CHECK: foo
CHECK-NOT: raboof
CHECK-NEXT: bar
V: verbose.txt:[[@LINE-4]]:8: remark: {{C}}HECK: expected string found in input
V-NEXT: {{C}}HECK: foo{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-9]]:1: note: found here
V-NEXT: {{^}}foo{{$}}
V-NEXT: {{^}}^~~{{$}}
V-NEXT: verbose.txt:[[@LINE-9]]:13: remark: {{C}}HECK-NEXT: expected string found in input
V-NEXT: {{C}}HECK-NEXT: bar{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-15]]:1: note: found here
V-NEXT: {{^}}bar{{$}}
V-NEXT: {{^}}^~~{{$}}
VV-NEXT: verbose.txt:[[@LINE-17]]:12: remark: {{C}}HECK-NOT: excluded string not found in input
VV-NEXT: {{C}}HECK-NOT: raboof{{$}}
VV-NEXT: {{^}} ^{{$}}
VV-NEXT: verbose.txt:[[@LINE-22]]:1: note: scanning from here
VV-NEXT: {{^}}bar{{$}}
VV-NEXT: {{^}}^{{$}}
STRVAR=foobar
STRVAR:foobar
CHECK: STRVAR=[[STRVAR:[a-z]+]]
CHECK-NEXT: STRVAR:[[STRVAR]]
V: verbose.txt:[[#@LINE-3]]:8: remark: {{C}}HECK: expected string found in input
V-NEXT: {{C}}HECK: {{STRVAR=\[\[STRVAR:\[a-z\]\+\]\]}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[#@LINE-8]]:1: note: found here
V-NEXT: {{^}}STRVAR=foobar{{$}}
V-NEXT: {{^}}^~~~~~~~~~~~~{{$}}
V-NEXT: verbose.txt:[[#@LINE-11]]:8: note: captured var "STRVAR"
V-NEXT: {{^}}STRVAR=foobar{{$}}
V-NEXT: {{^}} ^~~~~~{{$}}
V-NEXT: verbose.txt:[[#@LINE-12]]:13: remark: {{C}}HECK-NEXT: expected string found in input
V-NEXT: {{C}}HECK-NEXT: {{STRVAR:\[\[STRVAR\]\]}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[#@LINE-17]]:1: note: found here
V-NEXT: {{^}}STRVAR:foobar{{$}}
V-NEXT: {{^}}^~~~~~~~~~~~~{{$}}
V-NEXT: verbose.txt:[[#@LINE-20]]:1: note: with "STRVAR" equal to "foobar"
V-NEXT: {{^}}STRVAR:foobar{{$}}
V-NEXT: {{^}}^{{$}}
NUMVAR=42
NUMVAR - 1:41
CHECK: NUMVAR=[[#NUMVAR:]]
CHECK-NOT: [[#NUMVAR + 1]]
CHECK-NEXT: NUMVAR - 1:[[#NUMVAR - 1]]
V: verbose.txt:[[#@LINE-4]]:8: remark: {{C}}HECK: expected string found in input
V-NEXT: {{C}}HECK: {{NUMVAR=[[][[]#NUMVAR:[]][]]$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[#@LINE-9]]:1: note: found here
V-NEXT: {{^}}NUMVAR=42{{$}}
V-NEXT: {{^}}^~~~~~~~~{{$}}
V-NEXT: verbose.txt:[[#@LINE-12]]:8: note: captured var "NUMVAR"
V-NEXT: NUMVAR=42
V-NEXT: ^~
V-NEXT: verbose.txt:[[#@LINE-12]]:13: remark: {{C}}HECK-NEXT: expected string found in input
V-NEXT: {{C}}HECK-NEXT: {{NUMVAR - 1:[[][[]#NUMVAR - 1[]][]]$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[#@LINE-18]]:1: note: found here
V-NEXT: {{^}}NUMVAR - 1:41{{$}}
V-NEXT: {{^}}^~~~~~~~~~~~~{{$}}
V-NEXT: verbose.txt:[[#@LINE-21]]:1: note: with "NUMVAR - 1" equal to "41"
V-NEXT: {{^}}NUMVAR - 1:41{{$}}
V-NEXT: {{^}}^{{$}}
VV-NEXT: verbose.txt:[[#@LINE-23]]:12: remark: {{C}}HECK-NOT: excluded string not found in input
VV-NEXT: {{C}}HECK-NOT: {{[[][[]#NUMVAR [+] 1[]][]]$}}
VV-NEXT: {{^}} ^{{$}}
VV-NEXT: verbose.txt:[[#@LINE-28]]:1: note: scanning from here
VV-NEXT: {{^}}NUMVAR - 1:41{{$}}
VV-NEXT: {{^}}^{{$}}
before empty
after empty
CHECK: before empty
CHECK-EMPTY:
CHECK-NEXT: after empty
V: verbose.txt:[[@LINE-4]]:8: remark: {{C}}HECK: expected string found in input
V-NEXT: {{C}}HECK: before empty{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-10]]:1: note: found here
V-NEXT: {{^}}before empty{{$}}
V-NEXT: {{^}}^~~~~~~~~~~~{{$}}
V-NEXT: verbose.txt:[[@LINE-10]]:13: remark: {{C}}HECK-EMPTY: expected string found in input
V-NEXT: {{C}}HECK-EMPTY:{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-16]]:1: note: found here
V-EMPTY:
V-NEXT: {{^}}^{{$}}
V-NEXT: verbose.txt:[[@LINE-16]]:13: remark: {{C}}HECK-NEXT: expected string found in input
V-NEXT: {{C}}HECK-NEXT: after empty{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-22]]:1: note: found here
V-NEXT: {{^}}after empty{{$}}
V-NEXT: {{^}}^~~~~~~~~~~{{$}}
abcdef
abcdef
CHECK-DAG: abcdef
CHECK-DAG: def
V-NEXT: verbose.txt:[[@LINE-3]]:12: remark: {{C}}HECK-DAG: expected string found in input
V-NEXT: {{C}}HECK-DAG: abcdef
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-8]]:1: note: found here
V-NEXT: {{^}}abcdef{{$}}
V-NEXT: {{^}}^~~~~~{{$}}
VV-NEXT: verbose.txt:[[@LINE-9]]:12: remark: {{C}}HECK-DAG: expected string found in input
VV-NEXT: {{C}}HECK-DAG: def
VV-NEXT: {{^}} ^{{$}}
VV-NEXT: verbose.txt:[[@LINE-15]]:4: note: found here
VV-NEXT: {{^abcdef$}}
VV-NEXT: {{^}} ^~~
VV-NEXT: verbose.txt:[[@LINE-18]]:1: note: match discarded, overlaps earlier DAG match here
VV-NEXT: {{^}}abcdef{{$}}
VV-NEXT: {{^}}^~~~~~{{$}}
V-NEXT: verbose.txt:[[@LINE-19]]:12: remark: {{C}}HECK-DAG: expected string found in input
V-NEXT: {{C}}HECK-DAG: def
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-24]]:4: note: found here
V-NEXT: {{^abcdef$}}
V-NEXT: {{^}} ^~~
xyz
CHECK: xyz
CHECK-NOT: {{z}}yx
V: verbose.txt:[[@LINE-3]]:8: remark: {{C}}HECK: expected string found in input
V-NEXT: {{C}}HECK: xyz{{$}}
V-NEXT: {{^}} ^{{$}}
V-NEXT: verbose.txt:[[@LINE-7]]:1: note: found here
V-NEXT: {{^}}xyz{{$}}
V-NEXT: {{^}}^~~{{$}}
VV-NEXT: verbose.txt:[[@LINE-9]]:19: remark: implicit EOF: expected string found in input
VV-NEXT: {{C}}HECK-NOT: {{[{][{]z[}][}]yx$}}
VV-NEXT: {{^}} ^{{$}}
VV-NEXT: verbose.txt:[[@LINE+13]]:1: note: found here
VV-NOT: {{.}}
VV: {{^}}^
VV-NEXT: verbose.txt:[[@LINE-16]]:12: remark: {{C}}HECK-NOT: excluded string not found in input
VV-NEXT: {{C}}HECK-NOT: {{[{][{]z[}][}]yx$}}
VV-NEXT: {{^}} ^{{$}}
VV-NEXT: verbose.txt:[[@LINE-20]]:1: note: scanning from here
VV-NEXT: {{^C}}HECK: xyz{{$}}
VV-NEXT: {{^}}^{{$}}
QUIET-NOT: {{.}}
V-NOT: {{.}}