t/chainlint/one-liner: avoid overly intimate chainlint.sed knowledge

The purpose of chainlint.sed is to detect &&-chain breakage only within
subshells (one level deep); it doesn't bother checking for top-level
&&-chain breakage since the &&-chain checker built into t/test-lib.sh
should detect broken &&-chains outside of subshells by making them
magically exit with code 117.

Unfortunately, one of the chainlint.sed self-tests has overly intimate
knowledge of this particular division of responsibilities and only cares
about what chainlint.sed itself will produce, while ignoring the fact
that a more all-encompassing linter would complain about a broken
&&-chain outside the subshell. This makes it difficult to re-use the
test with a more capable chainlint implementation should one ever be
developed. Therefore, adjust the test and its "expected" output to
avoid being specific to the tunnel-vision of this one implementation.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Eric Sunshine 2021-12-13 01:30:48 -05:00 committed by Junio C Hamano
parent 1ad0780a77
commit 0cca54c706
2 changed files with 2 additions and 2 deletions

View File

@ -4,6 +4,6 @@
?!SEMI?!(foo; bar) &&
?!SEMI?!(foo; bar) |
?!SEMI?!(foo; bar) >baz
?!SEMI?!(foo; bar) >baz &&
(foo "bar; baz")

View File

@ -6,7 +6,7 @@
# LINT: top-level one-liner subshell missing internal "&&" and broken &&-chain
(foo; bar) &&
(foo; bar) |
(foo; bar) >baz
(foo; bar) >baz &&
# LINT: ";" in string not misinterpreted as broken &&-chain
(foo "bar; baz")