Skip to content

Commit

Permalink
git p4 test: wait longer for p4d to start and test its pid
Browse files Browse the repository at this point in the history
Running tests at high parallelism on a slow machine, 5 sec is
not enough to wait for p4d to start.  Change it to 5 minutes,
adding an environment variable P4D_START_PATIENCE to shrink
that if needed in automated test environments.

Also check if the pid of the p4d that we started is still
around.  If not, quit waiting for it immediately.

Remove all the confusing && chaining and simplify the code.

Thanks-to: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Pete Wyckoff authored and Junio C Hamano committed Jun 28, 2012
1 parent 4c8a9db commit f89f35a
Showing 1 changed file with 32 additions and 6 deletions.
38 changes: 32 additions & 6 deletions t/lib-git-p4.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,42 @@ pidfile="$TRASH_DIRECTORY/p4d.pid"

start_p4d() {
mkdir -p "$db" "$cli" "$git" &&
rm -f "$pidfile" &&
(
p4d -q -r "$db" -p $P4DPORT &
echo $! >"$pidfile"
) &&
for i in 1 2 3 4 5 ; do
p4 info >/dev/null 2>&1 && break || true &&
echo waiting for p4d to start &&

# This gives p4d a long time to start up, as it can be
# quite slow depending on the machine. Set this environment
# variable to something smaller to fail faster in, say,
# an automated test setup. If the p4d process dies, that
# will be caught with the "kill -0" check below.
i=${P4D_START_PATIENCE:-300}
pid=$(cat "$pidfile")
ready=
while test $i -gt 0
do
# succeed when p4 client commands start to work
if p4 info >/dev/null 2>&1
then
ready=true
break
fi
# fail if p4d died
kill -0 $pid 2>/dev/null || break
echo waiting for p4d to start
sleep 1
done &&
# complain if it never started
p4 info >/dev/null &&
i=$(( $i - 1 ))
done

if test -z "$ready"
then
# p4d failed to start
return 1
fi

# build a client
(
cd "$cli" &&
p4 client -i <<-EOF
Expand All @@ -53,6 +78,7 @@ start_p4d() {
View: //depot/... //client/...
EOF
)
return 0
}

kill_p4d() {
Expand Down

0 comments on commit f89f35a

Please sign in to comment.