git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCHv2 01/10] git p4 test: wait longer for p4d to start and test its pid

From
PWPete Wyckoff <pw@padd.com>
Date
Jun 27, 2012, 12:00 UTC
Message-ID
<1340798463-14499-2-git-send-email-pw@padd.com>
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
Previous: Pete WyckoffNext: Junio C Hamano
Message 2 of 14 in “[PATCHv2 00/10] git p4 test fixes”
  1. Pete WyckoffJun 27, 2012
  2. 01/10 git p4 test: wait longer for p4d to start and test its pidPete Wyckoff, Jun 27, 2012
  3. Junio C HamanoJun 27, 2012
  4. 01/10 git p4 test: wait longer for p4d to start and test its pidPete Wyckoff, Jun 28, 2012
  5. Junio C HamanoJun 28, 2012
  6. 02/10 git p4 test: use real_path to resolve p4 client symlinksPete Wyckoff, Jun 27, 2012
  7. 03/10 git p4 test: simplify quoting involving TRASH_DIRECTORYPete Wyckoff, Jun 27, 2012
  8. 04/10 git p4 test: never create default test repoPete Wyckoff, Jun 27, 2012
  9. 05/10 git p4 test: rename some "git-p4 command" stringsPete Wyckoff, Jun 27, 2012
  10. 06/10 git p4 test: check for error message in failed testPete Wyckoff, Jun 27, 2012
  11. 07/10 git p4 test: copy source indeterminatePete Wyckoff, Jun 27, 2012
  12. 08/10 git p4 test: cleanup_git should make a new $gitPete Wyckoff, Jun 27, 2012
  13. 09/10 git p4 test: split up big t9800 testPete Wyckoff, Jun 27, 2012
  14. 10/10 git p4 test: fix badp4dir testPete Wyckoff, Jun 27, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.