path: root/t/
diff options
authorJeff King <>2015-03-20 10:12:29 (GMT)
committerJunio C Hamano <>2015-03-20 17:20:16 (GMT)
commit9ddc5ac97ecdd03ceda4b6e3ff20a7524a9f0f8d (patch)
tree534ebb6d622071a3e4f2bd393344e24012011480 /t/
parentc21fc9d0ab217d6e3cf01ee895e827b72d8207b6 (diff)
t: wrap complicated expect_code users in a block
If we are expecting a command to produce a particular exit code, we can use test_expect_code. However, some cases are more complicated, and want to accept one of a range of exit codes. For these, we end up with something like: cmd; case "$?" in ... That unfortunately breaks the &&-chain and fools --chain-lint. Since these special cases are so few, we can wrap them in a block, like this: { cmd; ret=$?; } && case "$ret" in ... This accomplishes the same thing, and retains the &&-chain (the exit status fed to the && is that of the assignment, which should always be true). It's technically longer, but it is probably a good thing for unusual code like this to stand out. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 't/')
1 files changed, 2 insertions, 2 deletions
diff --git a/t/ b/t/
index aeea50c..5c5707d 100755
--- a/t/
+++ b/t/
@@ -10,8 +10,8 @@ one
test_expect_success 'sigchain works' '
- test-sigchain >actual
- case "$?" in
+ { test-sigchain >actual; ret=$?; } &&
+ case "$ret" in
143) true ;; # POSIX w/ SIGTERM=15
271) true ;; # ksh w/ SIGTERM=15
3) true ;; # Windows