git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pete Wyckoff <pw@padd.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, Johannes Sixt <j.sixt@viscovery.net>
Subject: [PATCHv2 01/10] git p4 test: wait longer for p4d to start and test its pid
Date: Wed, 27 Jun 2012 08:00:54 -0400	[thread overview]
Message-ID: <1340798463-14499-2-git-send-email-pw@padd.com> (raw)
In-Reply-To: <1340798463-14499-1-git-send-email-pw@padd.com>

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.

Signed-off-by: Pete Wyckoff <pw@padd.com>
---
 t/lib-git-p4.sh | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
index 121e380..2e3706a 100644
--- a/t/lib-git-p4.sh
+++ b/t/lib-git-p4.sh
@@ -33,14 +33,27 @@ 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
+	# 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.
+	i=${P4D_START_PATIENCE:-300} &&
+	while [ $i -gt 0 ]; do
+		# succeed when p4 client commands start to work
 		p4 info >/dev/null 2>&1 && break || true &&
+		# fail if pid goes away
+		if [ -f "$pidfile" ] ; then
+		    kill -0 $(cat "$pidfile") || break
+		fi &&
+		# else keep waiting
 		echo waiting for p4d to start &&
-		sleep 1
+		sleep 1 &&
+		i=$(($i - 1))
 	done &&
 	# complain if it never started
 	p4 info >/dev/null &&
-- 
1.7.11.1.69.gd505fd2

  reply	other threads:[~2012-06-27 12:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-27 12:00 [PATCHv2 00/10] git p4 test fixes Pete Wyckoff
2012-06-27 12:00 ` Pete Wyckoff [this message]
2012-06-27 21:16   ` [PATCHv2 01/10] git p4 test: wait longer for p4d to start and test its pid Junio C Hamano
2012-06-28  2:48     ` [PATCHv3 " Pete Wyckoff
2012-06-28  4:05       ` Junio C Hamano
2012-06-27 12:00 ` [PATCHv2 02/10] git p4 test: use real_path to resolve p4 client symlinks Pete Wyckoff
2012-06-27 12:00 ` [PATCHv2 03/10] git p4 test: simplify quoting involving TRASH_DIRECTORY Pete Wyckoff
2012-06-27 12:00 ` [PATCHv2 04/10] git p4 test: never create default test repo Pete Wyckoff
2012-06-27 12:00 ` [PATCHv2 05/10] git p4 test: rename some "git-p4 command" strings Pete Wyckoff
2012-06-27 12:00 ` [PATCHv2 06/10] git p4 test: check for error message in failed test Pete Wyckoff
2012-06-27 12:01 ` [PATCHv2 07/10] git p4 test: copy source indeterminate Pete Wyckoff
2012-06-27 12:01 ` [PATCHv2 08/10] git p4 test: cleanup_git should make a new $git Pete Wyckoff
2012-06-27 12:01 ` [PATCHv2 09/10] git p4 test: split up big t9800 test Pete Wyckoff
2012-06-27 12:01 ` [PATCHv2 10/10] git p4 test: fix badp4dir test Pete Wyckoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1340798463-14499-2-git-send-email-pw@padd.com \
    --to=pw@padd.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j.sixt@viscovery.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).