tests: fix broken &&-chains in {...}
groups
The top-level &&-chain checker built into t/test-lib.sh causes tests to magically exit with code 117 if the &&-chain is broken. However, it has the shortcoming that the magic does not work within `{...}` groups, `(...)` subshells, `$(...)` substitutions, or within bodies of compound statements, such as `if`, `for`, `while`, `case`, etc. `chainlint.sed` partly fills in the gap by catching broken &&-chains in `(...)` subshells, but bugs can still lurk behind broken &&-chains in the other cases. Fix broken &&-chains in `{...}` groups in order to reduce the number of possible lurking bugs. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Reviewed-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c576868eaf
commit
7abcbcb7ea
@ -191,17 +191,17 @@ do
|
||||
cp "$expect_r" expect_r &&
|
||||
convert_expected expect_r sed_script &&
|
||||
{
|
||||
echo "# $cmd"
|
||||
set x $cmd; shift
|
||||
git symbolic-ref HEAD refs/heads/$1 ; shift
|
||||
rm -f .git/FETCH_HEAD
|
||||
echo "# $cmd" &&
|
||||
set x $cmd && shift &&
|
||||
git symbolic-ref HEAD refs/heads/$1 && shift &&
|
||||
rm -f .git/FETCH_HEAD &&
|
||||
git for-each-ref \
|
||||
refs/heads refs/remotes/rem refs/tags |
|
||||
while read val type refname
|
||||
do
|
||||
git update-ref -d "$refname" "$val"
|
||||
done
|
||||
git fetch "$@" >/dev/null
|
||||
done &&
|
||||
git fetch "$@" >/dev/null &&
|
||||
cat .git/FETCH_HEAD
|
||||
} >"$actual_f" &&
|
||||
git show-ref >"$actual_r" &&
|
||||
|
Reference in New Issue
Block a user