git-p4: add trap to kill p4d on test exit
authorLars Schneider <larsxschneider@gmail.com>
Thu, 19 Nov 2015 08:58:10 +0000 (09:58 +0100)
committerJeff King <peff@peff.net>
Fri, 20 Nov 2015 13:02:06 +0000 (08:02 -0500)
Sometimes the "prove" test runner hangs on test exit because p4d is
still running. Add a trap to always kill "p4d" on test exit.

You can reproduce the problem by commenting "P4D_TIMEOUT" in
"lib-git-p4.sh" and running "prove ./t9800-git-p4-basic.sh".

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
t/lib-git-p4.sh
index acd5578eb5de71941fb29bb696b4c196a4530123..f9ae1d780dceb526fcfbce2684e3e7dc9b06f5eb 100644 (file)
@@ -74,6 +74,15 @@ cli="$TRASH_DIRECTORY/cli"
 git="$TRASH_DIRECTORY/git"
 pidfile="$TRASH_DIRECTORY/p4d.pid"
 
+# Sometimes "prove" seems to hang on exit because p4d is still running
+cleanup() {
+       if test -f "$pidfile"
+       then
+               kill -9 $(cat "$pidfile") 2>/dev/null && exit 255
+       fi
+}
+trap cleanup EXIT
+
 # git p4 submit generates a temp file, which will
 # not get cleaned up if the submission fails.  Don't
 # clutter up /tmp on the test machine.