The chainlint self-test code snippets are supposed to represent the body of a test_expect_success() or test_expect_failure(), yet the contents of these tests would have caused the shell to report syntax errors had they been real test bodies. Although chainlint.sed, with its simplistic heuristics, is blind to these syntactic problems, a future more robust chainlint implementation might not have such a limitation, so make these snippets syntactically valid. Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> --- t/chainlint/if-then-else.expect | 5 +++-- t/chainlint/if-then-else.test | 3 ++- t/chainlint/subshell-here-doc.test | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/t/chainlint/if-then-else.expect b/t/chainlint/if-then-else.expect index 5953c7bfbc..a80f5e6c75 100644 --- a/t/chainlint/if-then-else.expect +++ b/t/chainlint/if-then-else.expect @@ -4,6 +4,7 @@ ?!AMP?! echo very echo empty elif test -z "" + then echo foo else echo foo && @@ -14,6 +15,6 @@ ( if test -n ""; then echo very && -?!AMP?! echo empty - if + echo empty + fi >) diff --git a/t/chainlint/if-then-else.test b/t/chainlint/if-then-else.test index 9bd8e9a4c6..d2b03ca6b4 100644 --- a/t/chainlint/if-then-else.test +++ b/t/chainlint/if-then-else.test @@ -7,6 +7,7 @@ # LINT: last statement before 'elif' does not need "&&" echo empty elif test -z "" + then # LINT: last statement before 'else' does not need "&&" echo foo else @@ -24,5 +25,5 @@ if test -n ""; then echo very && echo empty - if + fi ) diff --git a/t/chainlint/subshell-here-doc.test b/t/chainlint/subshell-here-doc.test index f6b3ba4214..0cce907ba8 100644 --- a/t/chainlint/subshell-here-doc.test +++ b/t/chainlint/subshell-here-doc.test @@ -11,7 +11,7 @@ # LINT: missing "&&" on 'cat' cat <<EOF >bip fish fly high - EOF +EOF # LINT: swallow here-doc (EOF is last line of subshell) echo <<-\EOF >bop -- 2.34.1.397.gfae76fe5da