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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html