;--------------------------------------------------
; Create the check file, good input, and bad input.
;
; For both good and bad input, make sure the -v trace has at least one remark
; so we can check how trace suppression is affected by -dump-input.
;--------------------------------------------------

; RUN: echo hello > %t.good
; RUN: echo world >> %t.good

; RUN: echo hello > %t.err
; RUN: echo whirled >> %t.err

; RUN: echo 'CHECK: hello' > %t.check
; RUN: echo 'CHECK-NEXT: world' >> %t.check

;--------------------------------------------------
; Check -dump-input=<bad value>.
;--------------------------------------------------

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=foobar 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefix=BADVAL

; No positional arg.
; RUN: %ProtectFileCheckOutput not FileCheck -dump-input=foobar 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefix=BADVAL

BADVAL: {{F|f}}ile{{C|c}}heck{{.*}}: for the --dump-input option: Cannot find option named 'foobar'!

;--------------------------------------------------
; Check -dump-input=help.
;--------------------------------------------------

; Appended to normal command line.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.err -color %t.check -dump-input=help \
; RUN: | FileCheck %s -check-prefix=HELP

; No positional arg.
; RUN: %ProtectFileCheckOutput FileCheck -dump-input=help \
; RUN: | FileCheck %s -check-prefix=HELP

;--------------------------------------------------
; Check -dump-input=never.
;
; Include the case without -v, which isn't covered elsewhere.
;--------------------------------------------------

; FileCheck success, no -v => no dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=never 2>&1 \
; RUN: | FileCheck %s -match-full-lines -allow-empty \
; RUN:             -check-prefixes=NOTRACE,NODUMP

; FileCheck fail, no -v => no dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=never 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,ERR,NODUMP

; FileCheck success, -v => no dump, trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=never -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=TRACE,NODUMP

; FileCheck fail, -v => no dump, trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=never -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=TRACE,ERR,NODUMP

;--------------------------------------------------
; Check no -dump-input, which defaults to fail.
;--------------------------------------------------

; FileCheck success, -v => no dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -allow-empty \
; RUN:             -check-prefixes=NOTRACE,NODUMP

; FileCheck fail, -v => dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines \
; RUN:                -check-prefixes=NOTRACE,ERR,DUMP-ERR,DUMP-ERR-V

;--------------------------------------------------
; Check -dump-input=fail.
;
; Include the case without -v, which isn't covered elsewhere.
;--------------------------------------------------

; FileCheck success, no -v => no dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=fail 2>&1 \
; RUN: | FileCheck %s -match-full-lines -allow-empty \
; RUN:             -check-prefixes=NOTRACE,NODUMP

; FileCheck fail, no -v => dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=fail 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,ERR,DUMP-ERR

; FileCheck success, -v => no dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=fail -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -allow-empty \
; RUN:             -check-prefixes=NOTRACE,NODUMP

; FileCheck fail, -v => dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=fail -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines \
; RUN:                -check-prefixes=NOTRACE,ERR,DUMP-ERR,DUMP-ERR-V

;--------------------------------------------------
; Check -dump-input=always.
;--------------------------------------------------

; FileCheck success, -v => dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=always -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,DUMP-OK

; FileCheck fail, -v => dump, no trace.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=always -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines \
; RUN:                -check-prefixes=NOTRACE,ERR,DUMP-ERR,DUMP-ERR-V

;--------------------------------------------------
; Check multiple -dump-input options.
;
; This occurs most commonly when a test author specifies -dump-input on a
; specific FileCheck call while a test runner specifies -dump-input in
; FILECHECK_OPTS, but check the behavior generally.
;
; "help" has precedence, and then the most verbose value wins.  The most
; common combinations involve "fail" and "always", so test those the most.
;--------------------------------------------------

;- - - - - - - - - - - - - - - - - - - - - - - - -
; Check duplicate.
;- - - - - - - - - - - - - - - - - - - - - - - - -

; fail, fail => fail (FileCheck fail => dump)
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=fail -dump-input=fail -v \
; RUN:               2>&1 \
; RUN: | FileCheck %s -match-full-lines \
; RUN:                -check-prefixes=NOTRACE,ERR,DUMP-ERR,DUMP-ERR-V

;- - - - - - - - - - - - - - - - - - - - - - - - -
; Check precedence.
;- - - - - - - - - - - - - - - - - - - - - - - - -

; help, always => help
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.err -color %t.check \
; RUN:           -dump-input=help -dump-input=always \
; RUN: | FileCheck %s -check-prefix=HELP

; always, fail => always (FileCheck success => dump)
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=always -dump-input=fail \
; RUN:           -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,DUMP-OK

; fail, never => fail (FileCheck fail => dump)
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -input-file %t.err %t.check -check-prefix=CHECK \
; RUN:               -match-full-lines -dump-input=fail -dump-input=never -v \
; RUN:               2>&1 \
; RUN: | FileCheck %s -match-full-lines \
; RUN:                -check-prefixes=NOTRACE,ERR,DUMP-ERR,DUMP-ERR-V

;- - - - - - - - - - - - - - - - - - - - - - - - -
; Check that order doesn't matter.
;- - - - - - - - - - - - - - - - - - - - - - - - -

; fail, always => always (FileCheck success => dump)
; RUN: %ProtectFileCheckOutput \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=fail -dump-input=always \
; RUN:           -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,DUMP-OK

;- - - - - - - - - - - - - - - - - - - - - - - - -
; Check that FILECHECK_OPTS isn't handled differently.
;- - - - - - - - - - - - - - - - - - - - - - - - -

; always, fail => always (FileCheck success => dump)
; RUN: %ProtectFileCheckOutput FILECHECK_OPTS=-dump-input=always \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=fail -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,DUMP-OK

; fail, always => always (FileCheck success => dump)
; RUN: %ProtectFileCheckOutput FILECHECK_OPTS=-dump-input=fail \
; RUN: FileCheck -input-file %t.good %t.check -check-prefix=CHECK \
; RUN:           -match-full-lines -dump-input=always -v 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=NOTRACE,DUMP-OK

; END.

;--------------------------------------------------
; Check the output.
;--------------------------------------------------

; HELP-NOT: {{.}}
; HELP: The following description was requested by -dump-input=help
; HELP: - colors {{.*}}
; HELP-NOT: {{.}}

; Trace is sometimes suppressed.
; TRACE:       {{.*}}remark:{{.*}}
; NOTRACE-NOT: remark:

; Error diagnostics are never suppressed.
; ERR: {{.*}}error:{{.*}}

; NODUMP-NOT: <<<<<<

; DUMP-OK:      Input was:
; DUMP-OK-NEXT: <<<<<<
; DUMP-OK-NEXT:          1: hello
; DUMP-OK-NEXT: check:1     ^~~~~
; DUMP-OK-NEXT:          2: world
; DUMP-OK-NEXT: next:2      ^~~~~
; DUMP-OK-NEXT: >>>>>>

; DUMP-ERR:        Input was:
; DUMP-ERR-NEXT:   <<<<<<
; DUMP-ERR-NEXT:            1: hello
; DUMP-ERR-V-NEXT: check:1     ^~~~~
; DUMP-ERR-NEXT:            2: whirled
; DUMP-ERR-NEXT:   next:2      X~~~~~~ error: no match found
; DUMP-ERR-NEXT:   >>>>>>
