1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/FileCheck/same.txt
Duncan P. N. Exon Smith 4fff1962e2 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
2015-02-26 04:53:00 +00:00

24 lines
434 B
Plaintext

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