Re: [PATCH v5 5/6] git-p4: add trap to kill p4d on test exit
- From
Luke Diamand <luke@diamand.org>
- Date
- Nov 16, 2015, 08:43 UTC
- Message-ID
- <5649974A.1010903@diamand.org>
- In-Reply-To
- <1447592920-89228-6-git-send-email-larsxschneider@gmail.com>
On 15/11/15 13:08, larsxschneider@gmail.com wrote:
> From: Lars Schneider <larsxschneider@gmail.com> > > Sometimes the "prove" test runner hangs on test exit because p4d is > still running. Add a trap to always kill "p4d" on test exit.
With this change, I've started seeing this when running the tests:
cat: /home/lgd/git/git/t/trash directory.t9819-git-p4-case-folding/p4d.pid: No such file or directory
Probably just needs the obvious "test -f" adding.
Other than, all looks good to me. Particularly nice that I can now do:
$ make T=t98* -j10
and it actually works!
Show 25 quoted lines
>
> You can reproduce the problem by commenting "P4D_TIMEOUT" in
> "lib-git-p4.sh" and running "prove ./t9800-git-p4-basic.sh".
> ---
> t/lib-git-p4.sh | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
> index f2a009c..f9c68d4 100644
> --- a/t/lib-git-p4.sh
> +++ b/t/lib-git-p4.sh
> @@ -65,6 +65,12 @@ 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() {
> + kill -9 $(cat "$pidfile") 2>/dev/null && exit 255
> +}
> +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.
>