blob: 001f74c0c5a3d3bce7986ea1ed223f3ae7561c6a [file] [edit]
; Check handling of match-time diagnostics for invalid patterns (e.g.,
; substitution overflow) in the case of excluded patterns (e.g., CHECK-NOT) that
; also have other errors.
;
; At one time, FileCheck's exit status was zero for this case. Moreover, it
; printed the error diagnostic only if -vv was specified and input dumps were
; disabled. Test every combination as the logic is hard to get right.
RUN: echo > %t.chk \
RUN: 'CHECK-NOT: [[#0x0 - 0x1]] [[UNDEFVAR]]'
RUN: echo > %t.in '-1'
ERR-NOT:{{.}}
ERR-VV:{{.*}}: remark: implicit EOF: expected string found in input
ERR-VV-NEXT:CHECK-NOT: {{.*}}
ERR-VV-NEXT:{{ *}}^
ERR-VV-NEXT:{{.*}}: note: found here
ERR-VV-EMPTY:
ERR-VV-NEXT:^
ERR-NOT:{{.}}
ERR:{{.*}}: error: unable to substitute variable or numeric expression: overflow error
ERR-NEXT:CHECK-NOT: {{.*}}
ERR-NEXT:{{ *}}^
ERR-NEXT:{{.*}}: error: undefined variable: UNDEFVAR
ERR-NEXT:{{CHECK-NOT: \[\[#0x0 - 0x1\]\] \[\[UNDEFVAR\]\]}}
ERR-NEXT:{{ *}}^
ERR-NOT:{{error|note|remark|<stdin>}}:
DUMP:<<<<<<
DUMP-NEXT: 1: -1
DUMP-NEXT:not:1'0 { } search range (exclusive bounds)
DUMP-NEXT:not:1'1 error: match failed for invalid pattern
DUMP-NEXT:not:1'2 unable to substitute variable or numeric expression: overflow error
DUMP-NEXT:not:1'3 undefined variable: UNDEFVAR
DUMP-VV-NEXT: 2:
DUMP-VV-NEXT:eof:1 ^
DUMP-NEXT:>>>>>>
;--------------------------------------------------
; Check -dump-input=never cases.
;--------------------------------------------------
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never -v %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never -vv %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,ERR-VV
;--------------------------------------------------
; Check -dump-input=fail cases.
;--------------------------------------------------
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail -v %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP,DUMP-VV