;--------------------------------------------------
; Input file, check file, and directives for checking the size of the context.
;
; These are designed to be used with -dump-input=fail -vv.
;
; In the resulting input dump, there are three potential ellipses:
;
; - S: At the start of the input.
; - M: Between two input lines included by the filter.
; - E: At the end of the input.
;
; They are all present at -dump-input-context=4.  One becomes useless each time
; -dump-input-context is incremented beyond that because then that ellipsis
; becomes equal to or larger than the input lines it elides.
;--------------------------------------------------

; RUN: echo foo8       >  %t.in
; RUN: echo foo7       >> %t.in
; RUN: echo foo6       >> %t.in
; RUN: echo foo5       >> %t.in
; RUN: echo foo4       >> %t.in
; RUN: echo foo3       >> %t.in
; RUN: echo foo2       >> %t.in
; RUN: echo foo1       >> %t.in
; RUN: echo lab1 hello >> %t.in
; RUN: echo foo1       >> %t.in
; RUN: echo foo2       >> %t.in
; RUN: echo foo3       >> %t.in
; RUN: echo foo4       >> %t.in
; RUN: echo foo5       >> %t.in
; RUN: echo foo6       >> %t.in
; RUN: echo foo7       >> %t.in
; RUN: echo foo7       >> %t.in
; RUN: echo foo6       >> %t.in
; RUN: echo foo5       >> %t.in
; RUN: echo foo4       >> %t.in
; RUN: echo foo3       >> %t.in
; RUN: echo foo2       >> %t.in
; RUN: echo foo1       >> %t.in
; RUN: echo lab2 world >> %t.in
; RUN: echo foo1       >> %t.in
; RUN: echo foo2       >> %t.in
; RUN: echo foo3       >> %t.in
; RUN: echo foo4       >> %t.in
; RUN: echo foo5       >> %t.in
; RUN: echo foo6       >> %t.in
; RUN: echo foo7       >> %t.in
; RUN: echo foo8       >> %t.in
; RUN: echo foo9       >> %t.in
; RUN: echo foo0       >> %t.in

; RUN: echo 'CHECK-LABEL: lab1'  >  %t.chk
; RUN: echo ' CHECK-NEXT: hello' >> %t.chk
; RUN: echo 'CHECK-LABEL: lab2'  >> %t.chk
; RUN: echo ' CHECK-NEXT: world' >> %t.chk

;      C0: <<<<<<
; CS-NEXT:            .
; CS-NEXT:            .
; CS-NEXT:            .
; C5-NEXT:            1: foo8
; C5-NEXT:            2: foo7
; C5-NEXT:            3: foo6
; C5-NEXT:            4: foo5
; C4-NEXT:            5: foo4
; C3-NEXT:            6: foo3
; C2-NEXT:            7: foo2
; C1-NEXT:            8: foo1
; C0-NEXT:            9: lab1 hello
; C0-NEXT: label:1'0     ^~~~
; C0-NEXT: label:1'1     ^~~~
; C0-NEXT: next:2             !~~~~ error: match on wrong line
; C1-NEXT:           10: foo1
; C2-NEXT:           11: foo2
; C3-NEXT:           12: foo3
; C4-NEXT:           13: foo4
; C5-NEXT:           14: foo5
; C6-NEXT:           15: foo6
; C6-NEXT:           16: foo7
; CM-NEXT:            .
; CM-NEXT:            .
; CM-NEXT:            .
; C6-NEXT:           17: foo7
; C6-NEXT:           18: foo6
; C5-NEXT:           19: foo5
; C4-NEXT:           20: foo4
; C3-NEXT:           21: foo3
; C2-NEXT:           22: foo2
; C1-NEXT:           23: foo1
; C0-NEXT:           24: lab2 world
; C0-NEXT: label:3       ^~~~
; C0-NEXT: next:4             !~~~~ error: match on wrong line
; C1-NEXT:           25: foo1
; C2-NEXT:           26: foo2
; C3-NEXT:           27: foo3
; C4-NEXT:           28: foo4
; C5-NEXT:           29: foo5
; C6-NEXT:           30: foo6
; C7-NEXT:           31: foo7
; C7-NEXT:           32: foo8
; C7-NEXT:           33: foo9
; C7-NEXT:           34: foo0
; CE-NEXT:            .
; CE-NEXT:            .
; CE-NEXT:            .
; C0-NEXT: >>>>>>

; Now build an alternate set of checks where input lines that might be elided by
; ellipses have annotations.

; RUN: cp %t.in %t.wide.in
; RUN: echo 'CHECK-LABEL: lab1'    >  %t.wide.chk
; RUN: echo '      CHECK: hello'   >> %t.wide.chk
; RUN: echo '      CHECK: goodbye' >> %t.wide.chk
; RUN: echo 'CHECK-LABEL: lab2'    >> %t.wide.chk
; RUN: echo ' CHECK-NEXT: world'   >> %t.wide.chk

;      W5: <<<<<<
;      W5:            9: lab1 hello
; W5-NEXT: label:1'0     ^~~~
; W5-NEXT: label:1'1     ^~~~
; W5-NEXT: check:2            ^~~~~
; W5-NEXT:           10: foo1
; W5-NEXT: check:3       X~~~ error: no match found
; W5-NEXT:           11: foo2
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           12: foo3
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           13: foo4
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           14: foo5
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           15: foo6
; W5-NEXT: check:3       ~~~~
; W6-NEXT:           16: foo7
; W6-NEXT: check:3       ~~~~
; WM-NEXT:            .
; WM-NEXT:            .
; WM-NEXT:            .
; W6-NEXT:           17: foo7
; W6-NEXT: check:3       ~~~~
; W6-NEXT:           18: foo6
; W6-NEXT: check:3       ~~~~
; W5-NEXT:           19: foo5
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           20: foo4
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           21: foo3
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           22: foo2
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           23: foo1
; W5-NEXT: check:3       ~~~~
; W5-NEXT:           24: lab2 world
; W5-NEXT: label:4       ^~~~
; W5-NEXT: check:3       ~~~~
; W5-NEXT: next:5             !~~~~ error: match on wrong line

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

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=-1 \
; RUN: | FileCheck %s -match-full-lines -check-prefix=BADVAL -DVAL=-1

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=foobar \
; RUN: | FileCheck %s -match-full-lines -check-prefix=BADVAL -DVAL=foobar

BADVAL: {{F|f}}ile{{C|c}}heck{{.*}}: for the --dump-input-context option: '[[VAL]]' value invalid for uint argument!

;--------------------------------------------------
; Check -dump-input-context explicit values.
;--------------------------------------------------

; 0 is an important boundary case.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv  %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=0 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,CS,CM,CE

; 1 is an important boundary case.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

; 4 is the boundary case at which all ellipses are present in our test.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=4 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,CS,CM,CE

; 5 is the boundary case at which the start ellipsis is useless.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=5 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,C5,CM,CE

; 6 is the boundary case at which the middle ellipsis is useless.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=6 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,C5,C6,CE

; 7 is the boundary case at which the end ellipsis is useless.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=7 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,C5,C6,C7

; Make sure all is fine when -dump-input-context is far larger than the input.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=200 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,C5,C6,C7

;--------------------------------------------------
; Check that -dump-input-context default is 5.
;--------------------------------------------------

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,C2,C3,C4,C5,CM,CE

;--------------------------------------------------
; Check multiple -dump-input-context options.
;
; This might occur when a test author specifies -dump-input-context on a
; specific FileCheck call while a test runner specifies -dump-input-context in
; FILECHECK_OPTS, but check the behavior generally.
;
; The largest value wins because it provides the most information.
;--------------------------------------------------

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

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=1 -dump-input-context=1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

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

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=0 -dump-input-context=1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=1 -dump-input-context=0 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

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

; RUN: %ProtectFileCheckOutput FILECHECK_OPTS=-dump-input-context=0 \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=1 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

; RUN: %ProtectFileCheckOutput FILECHECK_OPTS=-dump-input-context=1 \
; RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
; RUN:               -dump-input-context=0 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=C0,C1,CS,CM,CE

;--------------------------------------------------
; Check how annotations on input lines that might be elided by ellipses affect
; whether they are actually elided.
;--------------------------------------------------

; At -dump-input-context=5, the ellipsis is useful but only when annotations on
; elided input lines are considered.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.wide.chk < %t.wide.in 2>&1 \
; RUN:               -dump-input-context=5 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=W5,WM

; At -dump-input-context=6, the ellipsis is not useful even when annotations on
; elided input lines are considered.
; RUN: %ProtectFileCheckOutput \
; RUN: not FileCheck -dump-input=fail -vv %t.wide.chk < %t.wide.in 2>&1 \
; RUN:               -dump-input-context=6 \
; RUN: | FileCheck %s -match-full-lines -check-prefixes=W5,W6
