Re: [PATCHv2 4/6] t7510: exit for loop with test result
From: Johannes Sixt <hidden>
Date: 2016-06-15 23:01:37
Am 6/13/2014 14:33, schrieb Michael J Gruber:
.... with this loop, sorry:
for X in true false; do
for Y in false true; do
($X && $Y || exit 1)
done
echo "$X/last inner $Y: $?"
done
gives
true/last inner true: 0
false/last inner true: 1
even though on both cases we have at least one failure of Y. (failure of
one subtest = failure of the test)Place the loop(s) inside the subshell, and you observe termination on the first failure, and a failure exit code of the subshell. The change proposed in this patch should not be necessary. Something else must be wrong with your tests. Ah, here it is:
@@ -58,7 +58,7 @@ test_expect_success GPG 'show signatures' ' ( for commit in merge^2 fourth-unsigned sixth-unsigned seventh-unsigned do - git show --pretty=short --show-signature $commit >actual && + git show --pretty=short --show-signature $commit >actual || exit 1 grep "Good signature from" actual && exit 1 ! grep "BAD signature from" actual || exit 1 echo $commit OK
Notice the '&& exit 1'! It should be '|| exit 1', right? -- Hannes