[libsoup] tests: skip individual tests rather than whole test programs
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] tests: skip individual tests rather than whole test programs
- Date: Tue, 18 Feb 2014 03:57:33 +0000 (UTC)
commit 2b0de6b7de7537c7d36ab33a7e5cf0e274ea3e23
Author: Dan Winship <danw gnome org>
Date: Mon Feb 17 22:29:44 2014 -0500
tests: skip individual tests rather than whole test programs
Use g_skip_test() to skip individual tests rather than just returning
status 77 from the test program as a whole.
In several cases, we still end up skipping more than necessary, due to
test cases that need to be split up more.
Remove the "MISSING_REGRESSION_TESTS_PACKAGES" functionality, since
the skipped tests are now pointed out explicitly.
configure.ac | 29 --------------------------
tests/Makefile.am | 5 ----
tests/auth-test.c | 28 ++++++++++++++-----------
tests/connection-test.c | 12 +++-------
tests/forms-test.c | 27 +++++++++++++-----------
tests/ntlm-test.c | 14 +++++++++---
tests/proxy-test.c | 22 +++++++------------
tests/pull-api.c | 24 +++++++++++-----------
tests/range-test.c | 14 +-----------
tests/server-auth-test.c | 17 ++++-----------
tests/ssl-test.c | 27 +++++++++++++++---------
tests/test-utils.h | 18 ++++++++++++++++
tests/timeout-test.c | 13 +++--------
tests/xmlrpc-server-test.c | 12 -----------
tests/xmlrpc-test.c | 48 ++++++++++++++++++++++++++++++-------------
15 files changed, 144 insertions(+), 166 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index defe54b..e216c99 100644
--- a/configure.ac
+++ b/configure.ac
@@ -184,11 +184,6 @@ dnl ******************************
dnl *** Stuff for regression tests
dnl ******************************
AC_MSG_NOTICE([checking for programs needed for regression tests])
-MISSING_REGRESSION_TEST_PACKAGES=""
-
-if test "$have_glib_networking" = "no"; then
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES glib-networking"
-fi
AC_ARG_WITH(apache-httpd,
AS_HELP_STRING([--with-apache-httpd], [Path to apache httpd (for tests)]),
@@ -256,16 +251,8 @@ if test "$APACHE_HTTPD" != "no" -a -n "$APACHE_MODULE_DIR" -a -n "$APACHE_SSL_MO
AC_DEFINE(HAVE_APACHE_2_4, 1, [Apache is 2.4.x])
fi
have_apache=1
- if test -z "$APACHE_PHP_MODULE_DIR"; then
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_php5"
- fi
else
have_apache=0
- if test "$APACHE_HTTPD" = "no" -o -z "$APACHE_MODULE_DIR"; then
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES apache"
- else
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_ssl"
- fi
fi
AM_CONDITIONAL(HAVE_APACHE, test "$have_apache" = 1)
AM_CONDITIONAL(HAVE_APACHE_2_2, test "$apache_version" = 2.2)
@@ -281,7 +268,6 @@ if test "$have_apache" = 1; then
else
have_php=no
IF_HAVE_PHP="\#"
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php5"
fi
AC_MSG_RESULT($have_php)
AC_SUBST(IF_HAVE_PHP)
@@ -290,7 +276,6 @@ if test "$have_apache" = 1; then
AC_MSG_CHECKING([for php-xmlrpc])
if $PHP --rf xmlrpc_server_create | grep -q "does not exist"; then
have_php_xmlrpc=no
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php-xmlrpc"
else
have_php_xmlrpc=yes
AC_DEFINE(HAVE_PHP_XMLRPC, 1, [Have php-xmlrpc])
@@ -302,13 +287,8 @@ fi
AC_PATH_PROG(CURL, curl, no)
if test "$CURL" != no; then
AC_DEFINE(HAVE_CURL, 1, [Whether or not curl can be used for tests])
-else
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES curl"
fi
-AC_SUBST(MISSING_REGRESSION_TEST_PACKAGES)
-AM_CONDITIONAL(MISSING_REGRESSION_TEST_PACKAGES, test -n "$MISSING_REGRESSION_TEST_PACKAGES")
-
dnl **********************************************************
dnl *** path of NTLM single-sign-on helper ntlm_auth
dnl **********************************************************
@@ -322,8 +302,6 @@ if test "$ntlm_auth" != "no"; then
dnl --with-ntlm-auth (without path) used, use default path
ntlm_auth="/usr/bin/ntlm_auth"
fi
-else
- MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES ntlm_auth"
fi
AC_SUBST(ntlm_auth)
AC_DEFINE_UNQUOTED(NTLM_AUTH, "$ntlm_auth", [Samba's 'winbind' daemon helper 'ntlm_auth' which can be used
for NTLM single-sign-on])
@@ -367,10 +345,3 @@ AC_CONFIG_FILES([
libsoup/soup-version.h
])
AC_OUTPUT
-
-if test -n "$MISSING_REGRESSION_TEST_PACKAGES"; then
- echo ""
- echo Some regression tests will not be run due to missing packages:
- echo $MISSING_REGRESSION_TEST_PACKAGES
- echo ""
-fi
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d9ede80..a8b9d01 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -112,11 +112,6 @@ check: start-httpd
check-local: check-TESTS
@$(MAKE) kill-httpd
-if MISSING_REGRESSION_TEST_PACKAGES
- @echo ""
- @echo "NOTE: some tests were not run due to missing packages:" $(MISSING_REGRESSION_TEST_PACKAGES)
- @echo ""
-endif
.PHONY: start-httpd kill-httpd
diff --git a/tests/auth-test.c b/tests/auth-test.c
index c182520..35b05cc 100644
--- a/tests/auth-test.c
+++ b/tests/auth-test.c
@@ -2,8 +2,6 @@
#include "test-utils.h"
-#ifdef HAVE_APACHE
-
static const char *base_uri;
static GMainLoop *loop;
@@ -294,6 +292,8 @@ do_pipelined_auth_test (void)
char *uri;
int i;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "Testing pipelined auth (bug 271540):\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
@@ -445,6 +445,8 @@ do_digest_expiration_test (void)
SoupSession *session;
char *uri;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting digest nonce expiration:\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
@@ -549,6 +551,8 @@ do_async_auth_test (void)
int remaining;
gboolean been_there;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting async auth:\n");
loop = g_main_loop_new (NULL, TRUE);
@@ -820,6 +824,8 @@ do_select_auth_test (void)
SoupAuthDomain *basic_auth_domain, *digest_auth_domain;
SoupURI *uri;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting selection among multiple auths:\n");
/* It doesn't seem to be possible to configure Apache to serve
@@ -976,6 +982,8 @@ do_auth_close_test (void)
SoupURI *uri;
AuthCloseData acd;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting auth when server times out connection:\n");
server = soup_test_server_new (FALSE);
@@ -1033,6 +1041,8 @@ do_infinite_auth_test (void)
char *uri;
int timeout;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting broken infinite-loop auth:\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
@@ -1089,6 +1099,8 @@ do_disappearing_auth_test (void)
SoupSession *session;
int counter;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting auth when server does not repeat challenge on failure:\n");
server = soup_test_server_new (FALSE);
@@ -1164,6 +1176,8 @@ do_batch_tests (gconstpointer data)
guint signal;
int i;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
base = soup_uri_new (base_uri);
@@ -1246,13 +1260,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_APACHE */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/connection-test.c b/tests/connection-test.c
index 3dd2cae..f092944 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -621,8 +621,6 @@ do_non_idempotent_connection_test (void)
soup_test_session_abort_unref (session);
}
-#ifdef HAVE_APACHE
-
#define HTTP_SERVER "http://127.0.0.1:47524"
#define HTTPS_SERVER "https://127.0.0.1:47525"
#define HTTP_PROXY "http://127.0.0.1:47526"
@@ -724,6 +722,8 @@ do_connection_state_test (void)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nConnection states\n");
debug_printf (1, " Async session\n");
@@ -832,6 +832,8 @@ do_connection_event_test (void)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nConnection events\n");
debug_printf (1, " Async session\n");
@@ -845,17 +847,13 @@ do_connection_event_test (void)
soup_test_session_abort_unref (session);
}
-#endif
-
int
main (int argc, char **argv)
{
int ret;
test_init (argc, argv, NULL);
-#ifdef HAVE_APACHE
apache_init ();
-#endif
server = soup_test_server_new (TRUE);
soup_server_add_handler (server, NULL, server_callback, "http", NULL);
@@ -867,10 +865,8 @@ main (int argc, char **argv)
g_test_add_func ("/connection/max-conns", do_max_conns_test);
g_test_add_func ("/connection/non-persistent", do_non_persistent_connection_test);
g_test_add_func ("/connection/non-idempotent", do_non_idempotent_connection_test);
-#ifdef HAVE_APACHE
g_test_add_func ("/connection/state", do_connection_state_test);
g_test_add_func ("/connection/event", do_connection_event_test);
-#endif
ret = g_test_run ();
diff --git a/tests/forms-test.c b/tests/forms-test.c
index da71569..6e6334f 100644
--- a/tests/forms-test.c
+++ b/tests/forms-test.c
@@ -5,8 +5,6 @@
#include "test-utils.h"
-#ifdef HAVE_CURL
-
static struct {
const char *title, *name;
const char *result;
@@ -92,6 +90,11 @@ do_hello_tests (gconstpointer uri)
{
int n;
+#ifndef HAVE_CURL
+ g_test_skip ("/usr/bin/curl is not available");
+ return;
+#endif
+
debug_printf (1, "Hello tests (GET, application/x-www-form-urlencoded)\n");
for (n = 0; n < G_N_ELEMENTS (tests); n++) {
do_hello_test (n, FALSE, uri);
@@ -179,6 +182,11 @@ do_md5_tests (gconstpointer uri)
gsize length;
GError *error = NULL;
+#ifndef HAVE_CURL
+ g_test_skip ("/usr/bin/curl is not available");
+ return;
+#endif
+
debug_printf (1, "\nMD5 tests (POST, multipart/form-data)\n");
if (!g_file_get_contents (MD5_TEST_FILE, &contents, &length, &error)) {
@@ -204,6 +212,11 @@ do_form_decode_test (void)
const gchar *value;
gchar *tmp;
+#ifndef HAVE_CURL
+ g_test_skip ("/usr/bin/curl is not available");
+ return;
+#endif
+
debug_printf (1, "\nDecode tests\n");
/* Test that the code handles multiple values with the same key. */
@@ -432,13 +445,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_CURL */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/ntlm-test.c b/tests/ntlm-test.c
index 0fa4b47..e05213a 100644
--- a/tests/ntlm-test.c
+++ b/tests/ntlm-test.c
@@ -456,12 +456,16 @@ do_builtin_ntlm_test (gconstpointer data)
do_ntlm_tests (uri, TRUE);
}
-#ifdef USE_NTLM_AUTH
static void
do_winbind_ntlm_test (gconstpointer data)
{
SoupURI *uri = (SoupURI *)data;
+#ifndef USE_NTLM_AUTH
+ g_test_skip ("/usr/bin/ntlm_auth is not available");
+ return;
+#endif
+
/* Samba winbind /usr/bin/ntlm_auth helper support (via a
* helper program that emulates its interface).
*/
@@ -477,6 +481,11 @@ do_fallback_ntlm_test (gconstpointer data)
{
SoupURI *uri = (SoupURI *)data;
+#ifndef USE_NTLM_AUTH
+ g_test_skip ("/usr/bin/ntlm_auth is not available");
+ return;
+#endif
+
/* Support for when ntlm_auth is installed, but the user has
* no cached credentials (and thus we have to fall back to
* libsoup's built-in NTLM support).
@@ -487,7 +496,6 @@ do_fallback_ntlm_test (gconstpointer data)
g_setenv ("SOUP_NTLM_AUTH_DEBUG_NOCREDS", "1", TRUE);
do_ntlm_tests (uri, TRUE);
}
-#endif
static void
retry_test_authenticate (SoupSession *session, SoupMessage *msg,
@@ -582,10 +590,8 @@ main (int argc, char **argv)
soup_uri_set_port (uri, soup_server_get_port (server));
g_test_add_data_func ("/ntlm/builtin", uri, do_builtin_ntlm_test);
-#ifdef USE_NTLM_AUTH
g_test_add_data_func ("/ntlm/winbind", uri, do_winbind_ntlm_test);
g_test_add_data_func ("/ntlm/fallback", uri, do_fallback_ntlm_test);
-#endif
g_test_add_data_func ("/ntlm/retry", uri, do_retrying_test);
ret = g_test_run ();
diff --git a/tests/proxy-test.c b/tests/proxy-test.c
index ceb2ff3..423a559 100644
--- a/tests/proxy-test.c
+++ b/tests/proxy-test.c
@@ -2,8 +2,6 @@
#include "test-utils.h"
-#ifdef HAVE_APACHE
-
typedef struct {
const char *explanation;
const char *url;
@@ -231,6 +229,8 @@ do_async_proxy_test (gconstpointer data)
{
SoupProxyTest *test = (SoupProxyTest *)data;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
do_proxy_test (test, FALSE);
}
@@ -239,6 +239,8 @@ do_sync_proxy_test (gconstpointer data)
{
SoupProxyTest *test = (SoupProxyTest *)data;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
do_proxy_test (test, TRUE);
}
@@ -260,6 +262,8 @@ do_proxy_fragment_test (gconstpointer data)
SoupURI *proxy_uri, *req_uri;
SoupMessage *msg;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
debug_printf (1, "\nTesting request with fragment via proxy\n");
proxy_uri = soup_uri_new (proxies[SIMPLE_PROXY]);
@@ -286,8 +290,8 @@ do_proxy_redirect_test (void)
SoupURI *proxy_uri, *req_uri, *new_uri;
SoupMessage *msg;
- if (!tls_available)
- return;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+ SOUP_TEST_SKIP_IF_NO_TLS;
debug_printf (1, "\nTesting redirection through proxy\n");
@@ -358,13 +362,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_APACHE */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/pull-api.c b/tests/pull-api.c
index 8060646..2915b9e 100644
--- a/tests/pull-api.c
+++ b/tests/pull-api.c
@@ -2,8 +2,6 @@
#include "test-utils.h"
-#ifdef HAVE_APACHE
-
static SoupBuffer *correct_response;
static void
@@ -14,6 +12,7 @@ authenticate (SoupSession *session, SoupMessage *msg,
soup_auth_authenticate (auth, "user2", "realm2");
}
+#if HAVE_APACHE
static void
get_correct_response (const char *uri)
{
@@ -34,6 +33,7 @@ get_correct_response (const char *uri)
g_object_unref (msg);
soup_test_session_abort_unref (session);
}
+#endif
/* Pull API version 1: fully-async. More like a "poke" API. Rather
* than having SoupMessage emit "got_chunk" signals whenever it wants,
@@ -234,6 +234,8 @@ do_fast_async_test (gconstpointer data)
const char *base_uri = data;
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
g_signal_connect (session, "authenticate",
G_CALLBACK (authenticate), NULL);
@@ -252,6 +254,8 @@ do_slow_async_test (gconstpointer data)
const char *base_uri = data;
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
g_signal_connect (session, "authenticate",
G_CALLBACK (authenticate), NULL);
@@ -485,6 +489,8 @@ do_sync_async_test (gconstpointer data)
const char *base_uri = data;
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
g_signal_connect (session, "authenticate",
G_CALLBACK (authenticate), NULL);
@@ -508,7 +514,9 @@ main (int argc, char **argv)
apache_init ();
base_uri = "http://127.0.0.1:47524/";
+#if HAVE_APACHE
get_correct_response (base_uri);
+#endif
g_test_add_data_func ("/pull-api/async/fast", base_uri, do_fast_async_test);
g_test_add_data_func ("/pull-api/async/slow", base_uri, do_slow_async_test);
@@ -516,18 +524,10 @@ main (int argc, char **argv)
ret = g_test_run ();
+#if HAVE_APACHE
soup_buffer_free (correct_response);
+#endif
test_cleanup ();
return ret;
}
-
-#else /* HAVE_APACHE */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/range-test.c b/tests/range-test.c
index 4d008d4..c23ba46 100644
--- a/tests/range-test.c
+++ b/tests/range-test.c
@@ -2,8 +2,6 @@
#include "test-utils.h"
-#ifdef HAVE_APACHE
-
SoupBuffer *full_response;
int total_length;
char *test_response;
@@ -332,6 +330,8 @@ do_apache_range_test (void)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_APACHE;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
#if HAVE_APACHE_2_2
@@ -397,13 +397,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_APACHE */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/server-auth-test.c b/tests/server-auth-test.c
index 77a5dba..b5580c8 100644
--- a/tests/server-auth-test.c
+++ b/tests/server-auth-test.c
@@ -5,8 +5,6 @@
#include "test-utils.h"
-#ifdef HAVE_CURL
-
static struct {
gboolean client_sent_basic, client_sent_digest;
gboolean server_requested_basic, server_requested_digest;
@@ -106,6 +104,11 @@ do_auth_tests (gconstpointer data)
gboolean use_basic, use_digest, good_user, good_password;
gboolean preemptive_basic, good_auth;
+#ifndef HAVE_CURL
+ g_test_skip ("/usr/bin/curl is not available");
+ return;
+#endif
+
for (i = 0; i < 16; i++) {
use_basic = (i & 1) == 1;
use_digest = (i & 2) == 2;
@@ -344,13 +347,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_CURL */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/ssl-test.c b/tests/ssl-test.c
index 753a980..3eb61af 100644
--- a/tests/ssl-test.c
+++ b/tests/ssl-test.c
@@ -28,6 +28,8 @@ do_async_properties_tests (gconstpointer uri)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_TLS;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
g_object_set (G_OBJECT (session),
SOUP_SESSION_SSL_CA_FILE, "/dev/null",
@@ -42,6 +44,8 @@ do_sync_properties_tests (gconstpointer uri)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_TLS;
+
session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC, NULL);
g_object_set (G_OBJECT (session),
SOUP_SESSION_SSL_CA_FILE, "/dev/null",
@@ -101,6 +105,8 @@ do_strict_tests (gconstpointer uri)
{
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_TLS;
+
debug_printf (1, "\nstrict/nonstrict\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
@@ -143,6 +149,8 @@ do_session_property_tests (void)
char *ca_file;
SoupSession *session;
+ SOUP_TEST_SKIP_IF_NO_TLS;
+
debug_printf (1, "session properties\n");
session = soup_session_async_new ();
@@ -251,16 +259,13 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
- if (!tls_available) {
- test_cleanup ();
- return 77; /* SKIP */
+ if (tls_available) {
+ server = soup_test_server_new_ssl (TRUE);
+ soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
+ uri = g_strdup_printf ("https://127.0.0.1:%u/",
+ soup_server_get_port (server));
}
- server = soup_test_server_new_ssl (TRUE);
- soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- uri = g_strdup_printf ("https://127.0.0.1:%u/",
- soup_server_get_port (server));
-
g_test_add_func ("/ssl/session-properties", do_session_property_tests);
g_test_add_data_func ("/ssl/message-properties/async", uri, do_async_properties_tests);
g_test_add_data_func ("/ssl/message-properties/sync", uri, do_sync_properties_tests);
@@ -270,8 +275,10 @@ main (int argc, char **argv)
ret = g_test_run ();
- g_free (uri);
- soup_test_server_quit_unref (server);
+ if (tls_available) {
+ g_free (uri);
+ soup_test_server_quit_unref (server);
+ }
test_cleanup ();
return ret;
diff --git a/tests/test-utils.h b/tests/test-utils.h
index 315d111..03637dc 100644
--- a/tests/test-utils.h
+++ b/tests/test-utils.h
@@ -17,11 +17,29 @@ void test_cleanup (void);
extern int debug_level;
extern gboolean tls_available;
+extern gboolean apache_available;
void debug_printf (int level, const char *format, ...) G_GNUC_PRINTF (2, 3);
+#define SOUP_TEST_SKIP_IF_NO_TLS \
+ G_STMT_START { \
+ if (!tls_available) { \
+ g_test_skip ("TLS is not available"); \
+ return; \
+ } \
+ } G_STMT_END
+
#ifdef HAVE_APACHE
void apache_init (void);
void apache_cleanup (void);
+#define SOUP_TEST_SKIP_IF_NO_APACHE
+#else
+#define apache_init()
+#define apache_cleanup()
+#define SOUP_TEST_SKIP_IF_NO_APACHE \
+ G_STMT_START { \
+ g_test_skip ("apache is not available"); \
+ return; \
+ } G_STMT_END
#endif
typedef enum {
diff --git a/tests/timeout-test.c b/tests/timeout-test.c
index fba515d..48c672b 100644
--- a/tests/timeout-test.c
+++ b/tests/timeout-test.c
@@ -208,10 +208,7 @@ do_async_timeout_tests (gconstpointer data)
gboolean extra_slow;
if (g_str_has_prefix (fast_uri, "https")) {
- if (!tls_available) {
- g_test_skip ("TLS not available");
- return;
- }
+ SOUP_TEST_SKIP_IF_NO_TLS;
extra_slow = slow_https;
} else
@@ -252,10 +249,7 @@ do_sync_timeout_tests (gconstpointer data)
gboolean extra_slow;
if (g_str_has_prefix (fast_uri, "https")) {
- if (!tls_available) {
- g_test_skip ("TLS not available");
- return;
- }
+ SOUP_TEST_SKIP_IF_NO_TLS;
extra_slow = slow_https;
} else
@@ -340,7 +334,8 @@ main (int argc, char **argv)
debug_printf (2, "\n");
slow_https = FALSE;
}
- }
+ } else
+ https_uri = g_strdup ("https://fail.");
g_test_add_data_func ("/timeout/http/async", uri, do_async_timeout_tests);
g_test_add_data_func ("/timeout/http/sync", uri, do_sync_timeout_tests);
diff --git a/tests/xmlrpc-server-test.c b/tests/xmlrpc-server-test.c
index 89e6e8d..1a046c7 100644
--- a/tests/xmlrpc-server-test.c
+++ b/tests/xmlrpc-server-test.c
@@ -5,8 +5,6 @@
#include "test-utils.h"
-#ifdef HAVE_PHP_XMLRPC
-
#ifdef G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#endif
@@ -358,13 +356,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_PHP_XMLRPC */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
diff --git a/tests/xmlrpc-test.c b/tests/xmlrpc-test.c
index 3a7b20a..46eee26 100644
--- a/tests/xmlrpc-test.c
+++ b/tests/xmlrpc-test.c
@@ -5,8 +5,6 @@
#include "test-utils.h"
-#ifdef HAVE_PHP_XMLRPC
-
#ifdef G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#endif
@@ -16,6 +14,18 @@ static const char *default_uri = "http://127.0.0.1:47524/xmlrpc-server.php";
static const char *uri = NULL;
static gboolean server_test = FALSE;
+#ifdef HAVE_PHP_XMLRPC
+#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER
+#else
+#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \
+ G_STMT_START { \
+ if (!server_test) { \
+ g_test_skip ("php-xmlrpc is not available"); \
+ return; \
+ } \
+ } G_STMT_END
+#endif
+
static const char *const value_type[] = {
"BAD",
"int",
@@ -105,6 +115,8 @@ test_sum (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "sum (array of int -> int): ");
ints = g_value_array_new (10);
@@ -139,6 +151,8 @@ test_countBools (void)
gboolean val, ok;
GHashTable *result;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "countBools (array of boolean -> struct of ints): ");
bools = g_value_array_new (10);
@@ -182,6 +196,8 @@ test_md5sum (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "md5sum (base64 -> base64)\n");
data = g_byte_array_new ();
@@ -216,6 +232,8 @@ test_dateChange (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "dateChange (date, struct of ints -> time)\n");
date = soup_date_new (1970 + (g_random_int_range (0, 50)),
@@ -323,6 +341,8 @@ test_echo (void)
GValue retval;
int i;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "echo (array of string -> array of string):\n");
originals = g_value_array_new (N_ECHO_STRINGS);
@@ -376,6 +396,8 @@ test_ping (gconstpointer include_params)
char *out;
gboolean ret;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "ping (void (%s) -> string)\n",
include_params ? "empty <params>" : "no <params>");
@@ -443,6 +465,8 @@ do_bad_xmlrpc (const char *body)
static void
test_fault_malformed (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "malformed request: ");
do_bad_xmlrpc ("<methodCall/>");
@@ -451,6 +475,8 @@ test_fault_malformed (void)
static void
test_fault_method (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "request to non-existent method: ");
do_bad_xmlrpc
("<methodCall><methodName>no_such_method</methodName><params><param><value><int>1</int></value></param></params></methodCall>");
@@ -459,6 +485,8 @@ test_fault_method (void)
static void
test_fault_args (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "request with invalid args: ");
do_bad_xmlrpc
("<methodCall><methodName>sum</methodName><params><param><value><int>1</int></value></param></params></methodCall>");
@@ -493,9 +521,9 @@ main (int argc, char **argv)
g_test_add_func ("/xmlrpc/echo", test_echo);
g_test_add_data_func ("/xmlrpc/ping/empty-params", GINT_TO_POINTER (TRUE), test_ping);
g_test_add_data_func ("/xmlrpc/ping/no-params", GINT_TO_POINTER (FALSE), test_ping);
- g_test_add_func ("/xmlrpc/fault_malformed", test_fault_malformed);
- g_test_add_func ("/xmlrpc/fault_method", test_fault_method);
- g_test_add_func ("/xmlrpc/fault_args", test_fault_args);
+ g_test_add_func ("/xmlrpc/fault/malformed", test_fault_malformed);
+ g_test_add_func ("/xmlrpc/fault/method", test_fault_method);
+ g_test_add_func ("/xmlrpc/fault/args", test_fault_args);
ret = g_test_run ();
@@ -504,13 +532,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_PHP_XMLRPC */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]