diff options
author | Simon McVittie <smcv@debian.org> | 2020-03-11 09:37:32 +0000 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2020-03-11 09:38:17 +0000 |
commit | 03fe5483cb7527b3dd1036de991160fefe9b2790 (patch) | |
tree | a85b5357c795852463ee30808b2b483f0db4919b | |
parent | 3058a0ed3aaf0a54058a96f884b0a73b0cc578a8 (diff) | |
download | libsoup-wip/smcv/skip-apache.tar.gz |
tests: Skip tests if unable to start Apachewip/smcv/skip-apache
This is a workaround for Apache not always being able to bind to its
hard-coded ports, which happens often enough to be a problem for Debian
QA infrastructure, but not often enough to be able to debug it.
Mitigates: GNOME/libsoup#175
-rw-r--r-- | tests/pull-api-test.c | 10 | ||||
-rw-r--r-- | tests/test-utils.c | 26 | ||||
-rw-r--r-- | tests/test-utils.h | 12 | ||||
-rw-r--r-- | tests/xmlrpc-old-test.c | 10 | ||||
-rw-r--r-- | tests/xmlrpc-test.c | 10 |
5 files changed, 56 insertions, 12 deletions
diff --git a/tests/pull-api-test.c b/tests/pull-api-test.c index 55503786..a4fb904c 100644 --- a/tests/pull-api-test.c +++ b/tests/pull-api-test.c @@ -511,11 +511,13 @@ main (int argc, char **argv) int ret; test_init (argc, argv, NULL); - apache_init (); base_uri = "http://127.0.0.1:47524/"; + #ifdef HAVE_APACHE - get_correct_response (base_uri); + if (apache_init ()) { + get_correct_response (base_uri); + } #endif g_test_add_data_func ("/pull-api/async/fast", base_uri, do_fast_async_test); @@ -525,7 +527,9 @@ main (int argc, char **argv) ret = g_test_run (); #ifdef HAVE_APACHE - soup_buffer_free (correct_response); + if (correct_response != NULL) { + soup_buffer_free (correct_response); + } #endif test_cleanup (); diff --git a/tests/test-utils.c b/tests/test-utils.c index 8b59a3dd..29154a29 100644 --- a/tests/test-utils.c +++ b/tests/test-utils.c @@ -133,6 +133,20 @@ debug_printf (int level, const char *format, ...) #ifdef HAVE_APACHE +gboolean +check_apache (void) +{ + if (g_getenv ("SOUP_TESTS_ALREADY_RUNNING_APACHE")) + return TRUE; + + if (!apache_running) { + g_test_skip ("Failed to start apache"); + return FALSE; + } + + return TRUE; +} + static gboolean apache_cmd (const char *cmd) { @@ -186,19 +200,23 @@ apache_cmd (const char *cmd) return ok; } -void +gboolean apache_init (void) { /* Set this environment variable if you are already running a * suitably-configured Apache server */ if (g_getenv ("SOUP_TESTS_ALREADY_RUNNING_APACHE")) - return; + return TRUE; if (!apache_cmd ("start")) { g_printerr ("Could not start apache\n"); - exit (1); + apache_running = FALSE; + } + else { + apache_running = TRUE; } - apache_running = TRUE; + + return apache_running; } void diff --git a/tests/test-utils.h b/tests/test-utils.h index 0bc065fc..f26ec49b 100644 --- a/tests/test-utils.h +++ b/tests/test-utils.h @@ -29,11 +29,17 @@ void debug_printf (int level, const char *format, ...) G_GNUC_PRINTF (2, 3); } G_STMT_END #ifdef HAVE_APACHE -void apache_init (void); +gboolean apache_init (void); void apache_cleanup (void); -#define SOUP_TEST_SKIP_IF_NO_APACHE +gboolean check_apache (void); +#define SOUP_TEST_SKIP_IF_NO_APACHE \ + G_STMT_START { \ + if (!check_apache ()) { \ + return; \ + } \ + } G_STMT_END #else -#define apache_init() +#define apache_init() FALSE #define apache_cleanup() #define SOUP_TEST_SKIP_IF_NO_APACHE \ G_STMT_START { \ diff --git a/tests/xmlrpc-old-test.c b/tests/xmlrpc-old-test.c index ab7b34d3..28a744d4 100644 --- a/tests/xmlrpc-old-test.c +++ b/tests/xmlrpc-old-test.c @@ -15,7 +15,12 @@ static const char *uri = NULL; static gboolean server_test = FALSE; #ifdef HAVE_PHP_XMLRPC -#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER +#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \ + G_STMT_START { \ + if (uri == default_uri) { \ + SOUP_TEST_SKIP_IF_NO_APACHE; \ + } \ + } G_STMT_END #else #define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \ G_STMT_START { \ @@ -23,6 +28,9 @@ static gboolean server_test = FALSE; g_test_skip ("php-xmlrpc is not available"); \ return; \ } \ + if (uri == default_uri) { \ + SOUP_TEST_SKIP_IF_NO_APACHE; \ + } \ } G_STMT_END #endif diff --git a/tests/xmlrpc-test.c b/tests/xmlrpc-test.c index 8b1f9dab..839f54bc 100644 --- a/tests/xmlrpc-test.c +++ b/tests/xmlrpc-test.c @@ -12,7 +12,12 @@ static const char *uri = NULL; static gboolean server_test = FALSE; #ifdef HAVE_PHP_XMLRPC -#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER +#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \ + G_STMT_START { \ + if (uri == default_uri) { \ + SOUP_TEST_SKIP_IF_NO_APACHE; \ + } \ + } G_STMT_END #else #define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \ G_STMT_START { \ @@ -20,6 +25,9 @@ static gboolean server_test = FALSE; g_test_skip ("php-xmlrpc is not available"); \ return; \ } \ + if (uri == default_uri) { \ + SOUP_TEST_SKIP_IF_NO_APACHE; \ + } \ } G_STMT_END #endif |