mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
![Eric Sunshine](/assets/img/avatar_default.png)
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. However, this division of labor may not always be the case if a more capable chainlint implementation is ever developed. Beyond that, due to being sed-based and due to its use of heuristics, chainlint.sed has several limitations (such as being unable to detect &&-chain breakage in subshells more than one level deep since it only manually emulates recursion into a subshell). Some of the comments in the chainlint self-tests unnecessarily reflect the limitations of chainlint.sed even though those limitations are not what is being tested. Therefore, simplify and generalize the comments to explain only what is being tested, thus ensuring that they won't become outdated if a more capable chainlint is ever developed. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
26 lines
472 B
Plaintext
26 lines
472 B
Plaintext
(
|
|
# LINT: missing internal "&&" and ending "&&"
|
|
cat foo ; echo bar
|
|
# LINT: final statement before ")" only missing internal "&&"
|
|
cat foo ; echo bar
|
|
) &&
|
|
(
|
|
# LINT: missing internal "&&"
|
|
cat foo ; echo bar &&
|
|
cat foo ; echo bar
|
|
) &&
|
|
(
|
|
# LINT: not fooled by semicolon in string
|
|
echo "foo; bar" &&
|
|
cat foo; echo bar
|
|
) &&
|
|
(
|
|
# LINT: semicolon unnecessary but legitimate
|
|
foo;
|
|
) &&
|
|
(cd foo &&
|
|
for i in a b c; do
|
|
# LINT: semicolon unnecessary but legitimate
|
|
echo;
|
|
done)
|