mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
4fff1962e2
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
24 lines
434 B
Plaintext
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
|