summaryrefslogtreecommitdiff
path: root/tests/init.sh
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2010-04-28 09:51:15 +0200
committerJim Meyering <meyering@redhat.com>2010-04-28 10:00:13 +0200
commit092a81622804491f13fb73f4df610db0db45b35a (patch)
tree5b8ec89bef631cbac063214c65686595dda2e9f6 /tests/init.sh
parent393b9c0ba3fe7302f7baea6c8c2f68839f916c2c (diff)
downloadgnulib-092a81622804491f13fb73f4df610db0db45b35a.tar.gz
init.sh: ensure a more reliable exit status when exiting via trap
* tests/init.sh (setup_): Don't rely on $? in signal handler. Inspired by patches from Dmitry V. Levin. Also trap on signal 3 (SIGQUIT).
Diffstat (limited to 'tests/init.sh')
-rw-r--r--tests/init.sh8
1 files changed, 5 insertions, 3 deletions
diff --git a/tests/init.sh b/tests/init.sh
index ee9c542c6a..512e876384 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -225,10 +225,12 @@ setup_()
|| fail_ "failed to create temporary directory in $initial_cwd_"
cd "$test_dir_"
- # This pair of trap statements ensures that the temporary directory,
- # $test_dir_, is removed upon exit as well as upon catchable signal.
+ # These trap statements ensure that the temporary directory, $test_dir_,
+ # is removed upon exit as well as upon receipt of any of the listed signals.
trap remove_tmp_ 0
- trap 'Exit $?' 1 2 13 15
+ for sig_ in 1 2 3 13 15; do
+ eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
+ done
}
# Create a temporary directory, much like mktemp -d does.