summaryrefslogtreecommitdiff
path: root/t/lib-git-p4.sh
diff options
context:
space:
mode:
authorLars Schneider <larsxschneider@gmail.com>2015-11-19 08:58:10 (GMT)
committerJeff King <peff@peff.net>2015-11-20 13:02:06 (GMT)
commitdfe90e8b528be4d9668b1bdc6329f8227cbf307a (patch)
tree988c31df81e859f216302cca2c0e7d401e042cff /t/lib-git-p4.sh
parent842addef70e41f8bb8a16f4d9084432301c3f50f (diff)
downloadgit-dfe90e8b528be4d9668b1bdc6329f8227cbf307a.zip
git-dfe90e8b528be4d9668b1bdc6329f8227cbf307a.tar.gz
git-dfe90e8b528be4d9668b1bdc6329f8227cbf307a.tar.bz2
git-p4: add trap to kill p4d on test exit
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>
Diffstat (limited to 't/lib-git-p4.sh')
-rw-r--r--t/lib-git-p4.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
index acd5578..f9ae1d7 100644
--- a/t/lib-git-p4.sh
+++ b/t/lib-git-p4.sh
@@ -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.