t: translate SIGINT to an exit
authorJeff King <peff@peff.net>
Fri, 13 Mar 2015 04:48:48 +0000 (00:48 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 13 Mar 2015 06:22:57 +0000 (23:22 -0700)
Right now if a test script receives SIGINT (e.g., because a
test was hanging and the user hit ^C), the shell exits
immediately. This can be annoying if the test script did any
global setup, like starting apache or git-daemon, as it will
not have an opportunity to clean up after itself. A
subsequent run of the test won't be able to start its own
daemon, and will either fail or skip the tests.

Instead, let's trap SIGINT to make sure we do a clean
shutdown, and just chain it to a normal exit (which will
trigger any cleanup).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh
index c09677802cce067a946a2550cdd2d8ef33434e81..f4ba3ff972680065469f063c83ae90207bbab0b4 100644 (file)
@@ -299,6 +299,7 @@ die () {
 
 GIT_EXIT_OK=
 trap 'die' EXIT
+trap 'exit $?' INT
 
 # The user-facing functions are loaded from a separate file so that
 # test_perf subshells can have them too