From: Simon McVittie <smcv@debian.org>
Date: Mon, 27 Dec 2021 18:10:25 +0000
Subject: Record Apache error log for unit tests and show it during teardown

This helps to diagnose problems with the Apache-based tests.
---
 tests/test-utils.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/test-utils.c b/tests/test-utils.c
index d29d117..bf977ed 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -164,7 +164,7 @@ static gboolean
 apache_cmd (const char *cmd)
 {
 	GPtrArray *argv;
-	char *cwd, *pid_file;
+	char *cwd, *pid_file, *error_log;
 #ifdef HAVE_APACHE_2_4
 	char *default_runtime_dir;
 #endif
@@ -183,6 +183,7 @@ apache_cmd (const char *cmd)
 	default_runtime_dir = g_strdup_printf ("DefaultRuntimeDir %s", cwd);
 #endif
 	pid_file = g_strdup_printf ("PidFile %s/httpd.pid", cwd);
+	error_log = g_strdup_printf ("ErrorLog %s/error.log", cwd);
 
 	argv = g_ptr_array_new ();
 	g_ptr_array_add (argv, APACHE_HTTPD);
@@ -195,6 +196,8 @@ apache_cmd (const char *cmd)
 	g_ptr_array_add (argv, "-c");
 	g_ptr_array_add (argv, default_runtime_dir);
 #endif
+	g_ptr_array_add (argv, "-c");
+	g_ptr_array_add (argv, error_log);
 	g_ptr_array_add (argv, "-c");
 	g_ptr_array_add (argv, pid_file);
 
@@ -221,6 +224,7 @@ apache_cmd (const char *cmd)
 
 	g_free (cwd);
 	g_free (pid_file);
+	g_free (error_log);
 #ifdef HAVE_APACHE_2_4
 	g_free (default_runtime_dir);
 #endif
@@ -268,6 +272,11 @@ apache_cleanup (void)
 			g_usleep (100);
 	}
 
+	if (g_file_get_contents ("error.log", &contents, NULL, NULL)) {
+		g_test_message ("error.log contents:\n%s", contents);
+		g_free (contents);
+	}
+
 	g_clear_pointer (&server_root, g_free);
 }
 
