[PATCH 2/2] test/test-lib.sh: separate signaled exit

Tomi Ollila tomi.ollila at iki.fi
Sun Jan 20 19:01:46 PST 2013


When execution of tests is interrupted by signal coming outside of the
test system itself, output just one line "interrupted by signal <num>"
message to standard output. This distinguishes the case from internal
exit and reduces noise.
---
 test/test-lib.sh | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 0098bfd..e717c52 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -190,9 +190,15 @@ test_fixed=0
 test_broken=0
 test_success=0
 
-die () {
+_die_common () {
 	code=$?
+	trap - EXIT
+	set +ex
 	rm -rf "$TEST_TMPDIR"
+}
+
+die () {
+	_die_common
 	if test -n "$GIT_EXIT_OK"
 	then
 		exit $code
@@ -206,10 +212,17 @@ die () {
 	fi
 }
 
+die_signal () {
+	_die_common
+	echo >&5 "FATAL: $0: interrupted by signal" $((code - 128))
+	exit $code
+}
+
 GIT_EXIT_OK=
 # Note: TEST_TMPDIR *NOT* exported!
 TEST_TMPDIR=$(mktemp -d "${TMPDIR:-/tmp}/notmuch-test-$$.XXXXXX")
 trap 'die' EXIT
+trap 'die_signal' HUP INT TERM
 
 test_decode_color () {
 	sed	-e 's/.\[1m/<WHITE>/g' \
-- 
1.8.0



More information about the notmuch mailing list