Browse Source

git-daemon: use 'test_atexit` to stop 'git-daemon'

Use 'test_atexit' to run cleanup commands to stop 'git-daemon' at the
end of the test script or upon interrupt or failure, as it is shorter,
simpler, and more robust than registering such cleanup commands in the
trap on EXIT in the test scripts.

Note that in 't5570-git-daemon.sh' the daemon is stopped and then
re-started in the middle of the test script; take care that the
cleanup functions to stop the daemon are only registered once.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 6 years ago committed by Junio C Hamano
parent
commit
9f82b2a6a7
  1. 1
      t/interop/i5500-git-daemon.sh
  2. 14
      t/lib-git-daemon.sh
  3. 1
      t/t5570-git-daemon.sh

1
t/interop/i5500-git-daemon.sh

@ -37,5 +37,4 @@ test_expect_success "fetch with $VERSION_B" ' @@ -37,5 +37,4 @@ test_expect_success "fetch with $VERSION_B" '
test_cmp expect actual
'

stop_git_daemon
test_done

14
t/lib-git-daemon.sh

@ -13,7 +13,6 @@ @@ -13,7 +13,6 @@
#
# test_expect_success ...
#
# stop_git_daemon
# test_done

test_tristate GIT_TEST_GIT_DAEMON
@ -36,6 +35,7 @@ GIT_DAEMON_DOCUMENT_ROOT_PATH="$PWD"/repo @@ -36,6 +35,7 @@ GIT_DAEMON_DOCUMENT_ROOT_PATH="$PWD"/repo
GIT_DAEMON_HOST_PORT=127.0.0.1:$LIB_GIT_DAEMON_PORT
GIT_DAEMON_URL=git://$GIT_DAEMON_HOST_PORT

registered_stop_git_daemon_atexit_handler=
start_git_daemon() {
if test -n "$GIT_DAEMON_PID"
then
@ -44,7 +44,13 @@ start_git_daemon() { @@ -44,7 +44,13 @@ start_git_daemon() {

mkdir -p "$GIT_DAEMON_DOCUMENT_ROOT_PATH"

trap 'code=$?; stop_git_daemon; (exit $code); die' EXIT
# One of the test scripts stops and then re-starts 'git daemon'.
# Don't register and then run the same atexit handlers several times.
if test -z "$registered_stop_git_daemon_atexit_handler"
then
test_atexit 'stop_git_daemon'
registered_stop_git_daemon_atexit_handler=AlreadyDone
fi

say >&3 "Starting git daemon ..."
mkfifo git_daemon_output
@ -66,7 +72,7 @@ start_git_daemon() { @@ -66,7 +72,7 @@ start_git_daemon() {
then
kill "$GIT_DAEMON_PID"
wait "$GIT_DAEMON_PID"
trap 'die' EXIT
unset GIT_DAEMON_PID
test_skip_or_die $GIT_TEST_GIT_DAEMON \
"git daemon failed to start"
fi
@ -78,8 +84,6 @@ stop_git_daemon() { @@ -78,8 +84,6 @@ stop_git_daemon() {
return
fi

trap 'die' EXIT

# kill git-daemon child of git
say >&3 "Stopping git daemon ..."
kill "$GIT_DAEMON_PID"

1
t/t5570-git-daemon.sh

@ -198,5 +198,4 @@ test_expect_success FAKENC 'hostname interpolation works after LF-stripping' ' @@ -198,5 +198,4 @@ test_expect_success FAKENC 'hostname interpolation works after LF-stripping' '
test_cmp expect actual
'

stop_git_daemon
test_done

Loading…
Cancel
Save