From: Simon McVittie <smcv@debian.org>
Date: Fri, 11 Jul 2025 13:27:41 +0100
Subject: tests: If we can't start Apache, wait a bit and try again

Maybe helps: #1035983
---
 tests/test-utils.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/tests/test-utils.c b/tests/test-utils.c
index 37cd00b..0de446c 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -234,9 +234,13 @@ apache_cmd (const char *cmd)
 	return ok;
 }
 
+static const unsigned int MAX_START_APACHE_TRIES = 10;
+
 void
 apache_init (void)
 {
+	unsigned int i = 0;
+
 	g_test_message ("[%f] enter %s", g_get_monotonic_time () / 1e6, G_STRFUNC);
 
 	/* Set this environment variable if you are already running a
@@ -246,11 +250,22 @@ apache_init (void)
 
 	server_root = soup_test_build_filename_abs (G_TEST_BUILT, "", NULL);
 
-	if (!apache_cmd ("start")) {
-		g_printerr ("Could not start apache\n");
-		exit (1);
+	while (TRUE) {
+		if (apache_cmd ("start")) {
+			apache_running = TRUE;
+			goto out;
+		} else {
+			g_test_message ("[%f] Could not start Apache", g_get_monotonic_time () / 1e6);
+		}
+
+		if (++i > MAX_START_APACHE_TRIES) {
+			g_printerr ("Could not start apache\n");
+			exit (1);
+		} else {
+			g_test_message ("Will wait a bit and try again");
+			g_usleep (10 * G_USEC_PER_SEC);
+		}
 	}
-	apache_running = TRUE;
 
 out:
 	g_test_message ("[%f] leave %s", g_get_monotonic_time () / 1e6, G_STRFUNC);
