diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-26 04:53:00 +0000 |
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-26 04:53:00 +0000 |
| commit | 01ac1707d64a7e3162005185f697c2a8061a774e (patch) | |
| tree | 0ceef4c281265300ad4e521956a6af50a4fe56ec /llvm/test/FileCheck | |
| parent | 59b25cbeaa6d4768cb23814a637f5a814b83eead (diff) | |
| download | bcm5719-llvm-01ac1707d64a7e3162005185f697c2a8061a774e.tar.gz bcm5719-llvm-01ac1707d64a7e3162005185f697c2a8061a774e.zip | |
FileCheck: Add CHECK-SAME
Add `CHECK-SAME`, which requires that the pattern matches on the *same*
line as the previous `CHECK`/`CHECK-NEXT` -- in other words, no newline
is allowed in the skipped region. This is similar to `CHECK-NEXT`,
which requires exactly 1 newline in the skipped region.
My motivation is to simplify checking the long lines of LLVM assembly
for the new debug info hierarchy. This allows CHECK sequences like the
following:
CHECK: ![[REF]] = !SomeMDNode(
CHECK-SAME: file: ![[FILE:[0-9]+]]
CHECK-SAME: otherField: 93{{[,)]}}
which is equivalent to:
CHECK: ![[REF]] = !SomeMDNode({{.*}}file: ![[FILE:[0-9]+]]{{.*}}otherField: 93{{[,)]}}
While this example just has two fields, many nodes in debug info have
more than that. `CHECK-SAME` will keep the logic easy to follow.
Morever, it enables interleaving `CHECK-NOT`s without allowing newlines.
Consider the following:
CHECK: ![[REF]] = !SomeMDNode(
CHECK-SAME: file: ![[FILE:[0-9]+]]
CHECK-NOT: unexpectedField:
CHECK-SAME: otherField: 93{{[,)]}}
CHECK-NOT: otherUnexpectedField:
CHECK-SAME: )
which doesn't seem to have an equivalent `CHECK` line.
llvm-svn: 230612
Diffstat (limited to 'llvm/test/FileCheck')
| -rw-r--r-- | llvm/test/FileCheck/same.txt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/FileCheck/same.txt b/llvm/test/FileCheck/same.txt new file mode 100644 index 00000000000..7160936c466 --- /dev/null +++ b/llvm/test/FileCheck/same.txt @@ -0,0 +1,23 @@ +foo bat bar +baz + +RUN: FileCheck --input-file=%s --check-prefix=PASS1 %s +PASS1: foo +PASS1-SAME: bat +PASS1-SAME: bar +PASS1-NEXT: baz + +RUN: FileCheck --input-file=%s --check-prefix=PASS2 %s +PASS2: foo +PASS2-NOT: baz +PASS2-SAME: bar +PASS2-NEXT: baz + +RUN: not FileCheck --input-file=%s --check-prefix=FAIL1 %s +FAIL1: foo +FAIL1-SAME: baz + +RUN: not FileCheck --input-file=%s --check-prefix=FAIL2 %s +FAIL2: foo +FAIL2-NOT: bat +FAIL2-SAME: bar |

