Re: [PATCHv2 4/6] t7510: exit for loop with test result
- From
Jeff King <peff@peff.net>
- Date
- Jun 13, 2014, 11:46 UTC
- Message-ID
- <20140613114615.GE14066@sigill.intra.peff.net>
- In-Reply-To
- <99893263f1819646a3a324b2fff0bcd0d56f3818.1402655839.git.git@drmicha.warpmail.net>
On Fri, Jun 13, 2014 at 12:42:46PM +0200, Michael J Gruber wrote:
Show 22 quoted lines
> When t7510 was introduced, the author made sure that a for loop in > a subshell would return with the appropriate error code. > > Make sure this is true also the for the first line in each loop, which > was missed. > > Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> > --- > t/t7510-signed-commit.sh | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/t/t7510-signed-commit.sh b/t/t7510-signed-commit.sh > index 5ddac1a..a5ba48e 100755 > --- a/t/t7510-signed-commit.sh > +++ b/t/t7510-signed-commit.sh > @@ -49,7 +49,7 @@ test_expect_success GPG 'show signatures' ' > ( > for commit in initial second merge fourth-signed fifth-signed sixth-signed master > 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
Hrm. The original is:
X && Y || exit 1
Won't that still exit (i.e., it is already correct)? Doing:
for X in true false; do
for Y in true false; do
($X && $Y || exit 1)
echo "$X/$Y: $?"
done
doneyields:
true/true: 0 true/false: 1 false/true: 1 false/false: 1
(and should still short-circuit Y, because we go from left-to-right).
I do not mind changing it to keep the style of each line consistent, though. I would have written it as a series of "&&"-chains, with a single exit at the end, but I think that is just a matter of preference.
-Peff