| ; Because -dump-input-filter=error includes a failed directive's search range | |
| ; start, input line 1 below is revealed, and -dump-input-context=2 reveals lines | |
| ; 2-3. Those lines are where the actual problem is because that is where the | |
| ; CHECK-NEXT/CHECK-SAME directive was expected to match but did not. The line | |
| ; where CHECK-NEXT/CHECK-SAME actually matched, line 13, is typically less | |
| ; useful information. | |
| RUN: rm -rf %t | |
| RUN: split-file %s %t | |
| RUN: %ProtectFileCheckOutput \ | |
| RUN: not FileCheck -dump-input-context=2 -v %t/next.txt < %t/input.txt \ | |
| RUN: -dump-input-filter=error 2>&1 | \ | |
| RUN: FileCheck %s -match-full-lines -check-prefixes=DMP,DMP_NEXT | |
| RUN: %ProtectFileCheckOutput \ | |
| RUN: not FileCheck -dump-input-context=2 -v %t/same.txt < %t/input.txt \ | |
| RUN: -dump-input-filter=error 2>&1 | \ | |
| RUN: FileCheck %s -match-full-lines -check-prefixes=DMP,DMP_SAME | |
| DMP:<<<<<< | |
| DMP-NEXT: 1: start | |
| DMP-NEXT:check:1 ^~~~~ | |
| DMP_NEXT-NEXT:next:2'0 { search range start (exclusive) | |
| DMP_SAME-NEXT:same:2'0 { search range start (exclusive) | |
| DMP-NEXT: 2: foo0 | |
| DMP-NEXT: 3: foo1 | |
| DMP-NEXT: . | |
| DMP-NEXT: . | |
| DMP-NEXT: . | |
| DMP-NEXT: 11: foo9 | |
| DMP-NEXT: 12: foo10 | |
| DMP-NEXT: 13: end | |
| DMP_NEXT-NEXT:next:2'1 !~~ error: match on wrong line | |
| DMP_SAME-NEXT:same:2'1 !~~ error: match on wrong line | |
| DMP_NEXT-NEXT:next:2'2 } search range end (exclusive) | |
| DMP_SAME-NEXT:same:2'2 } search range end (exclusive) | |
| DMP-NEXT:>>>>>> | |
| ;--- next.txt | |
| CHECK: start | |
| CHECK-NEXT: end | |
| ;--- same.txt | |
| CHECK: start | |
| CHECK-SAME: end | |
| ;--- input.txt | |
| start | |
| foo0 | |
| foo1 | |
| foo2 | |
| foo3 | |
| foo4 | |
| foo5 | |
| foo6 | |
| foo7 | |
| foo8 | |
| foo9 | |
| foo10 | |
| end |