diff options
author | Jim Meyering <meyering@redhat.com> | 2010-04-28 09:51:15 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2010-04-28 10:00:13 +0200 |
commit | 092a81622804491f13fb73f4df610db0db45b35a (patch) | |
tree | 5b8ec89bef631cbac063214c65686595dda2e9f6 /tests | |
parent | 393b9c0ba3fe7302f7baea6c8c2f68839f916c2c (diff) | |
download | gnulib-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')
-rw-r--r-- | tests/init.sh | 8 |
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. |