Skip to content

Commit ebb0830

Browse files
committed
ci: clean up daemon processes on exit
We previously (correctly) cleaned up the git daemon and SSH server, but failed to clean up our bespoke HTTP server and HTTP proxies. Capture their PIDs on process creation and kill them when we shut down.
1 parent ec1aec3 commit ebb0830

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

ci/test.sh

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,23 @@ cleanup() {
2727
kill $GITDAEMON_PID
2828
fi
2929

30+
if [ ! -z "$PROXY_BASIC_PID" ]; then
31+
echo "Stopping proxy (Basic)..."
32+
kill $PROXY_BASIC_PID
33+
fi
34+
35+
if [ ! -z "$PROXY_NTLM_PID" ]; then
36+
echo "Stopping proxy (NTLM)..."
37+
kill $PROXY_NTLM_PID
38+
fi
39+
40+
if [ ! -z "$HTTP_PID" ]; then
41+
echo "Stopping HTTP server..."
42+
kill $HTTP_PID
43+
fi
44+
3045
if [ ! -z "$SSHD_DIR" -a -f "${SSHD_DIR}/pid" ]; then
31-
echo "Stopping SSH..."
46+
echo "Stopping SSH server..."
3247
kill $(cat "${SSHD_DIR}/pid")
3348
fi
3449

@@ -80,40 +95,40 @@ echo "##########################################################################
8095
echo "## Configuring test environment"
8196
echo "##############################################################################"
8297

98+
echo ""
99+
83100
if [ -z "$SKIP_GITDAEMON_TESTS" ]; then
84101
echo "Starting git daemon..."
85102
GITDAEMON_DIR=`mktemp -d ${TMPDIR}/gitdaemon.XXXXXXXX`
86103
git init --bare "${GITDAEMON_DIR}/test.git" >/dev/null
87104
git daemon --listen=localhost --export-all --enable=receive-pack --base-path="${GITDAEMON_DIR}" "${GITDAEMON_DIR}" 2>/dev/null &
88105
GITDAEMON_PID=$!
89-
disown $GITDAEMON_PID
90106
fi
91107

92108
if [ -z "$SKIP_PROXY_TESTS" ]; then
93109
curl --location --silent --show-error https://github.com/ethomson/poxyproxy/releases/download/v0.7.0/poxyproxy-0.7.0.jar >poxyproxy.jar
94110

95-
echo ""
96111
echo "Starting HTTP proxy (Basic)..."
97112
java -jar poxyproxy.jar --address 127.0.0.1 --port 8080 --credentials foo:bar --auth-type basic --quiet &
113+
PROXY_BASIC_PID=$!
98114

99-
echo ""
100115
echo "Starting HTTP proxy (NTLM)..."
101116
java -jar poxyproxy.jar --address 127.0.0.1 --port 8090 --credentials foo:bar --auth-type ntlm --quiet &
117+
PROXY_NTLM_PID=$!
102118
fi
103119

104120
if [ -z "$SKIP_NTLM_TESTS" -o -z "$SKIP_ONLINE_TESTS" ]; then
105121
curl --location --silent --show-error https://github.com/ethomson/poxygit/releases/download/v0.5.1/poxygit-0.5.1.jar >poxygit.jar
106122

107-
echo ""
108123
echo "Starting HTTP server..."
109-
NTLM_DIR=`mktemp -d ${TMPDIR}/ntlm.XXXXXXXX`
110-
git init --bare "${NTLM_DIR}/test.git"
111-
java -jar poxygit.jar --address 127.0.0.1 --port 9000 --credentials foo:baz --quiet "${NTLM_DIR}" &
124+
HTTP_DIR=`mktemp -d ${TMPDIR}/http.XXXXXXXX`
125+
git init --bare "${HTTP_DIR}/test.git"
126+
java -jar poxygit.jar --address 127.0.0.1 --port 9000 --credentials foo:baz --quiet "${HTTP_DIR}" &
127+
HTTP_PID=$!
112128
fi
113129

114130
if [ -z "$SKIP_SSH_TESTS" ]; then
115-
echo ""
116-
echo "Starting ssh daemon..."
131+
echo "Starting SSH server..."
117132
HOME=`mktemp -d ${TMPDIR}/home.XXXXXXXX`
118133
SSHD_DIR=`mktemp -d ${TMPDIR}/sshd.XXXXXXXX`
119134
git init --bare "${SSHD_DIR}/test.git" >/dev/null

0 commit comments

Comments
 (0)