summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2010-12-10 10:27:39 +0100
committerDan Winship <danw@gnome.org>2010-12-10 10:29:04 +0100
commitec1c3ff3289d7130a8b7354bdee09f24c3ab9962 (patch)
treedbf7790266519e79aa0697092ac3ac8b39d0ad9a
parent47a50352f20867f0dc53843b682f6c37e09ea6e2 (diff)
downloadlibsoup-ec1c3ff3289d7130a8b7354bdee09f24c3ab9962.tar.gz
Add glib-networking to the MISSING_REGRESSION_TEST_PACKAGES checks
and make timeout-test and proxy-test skip their https tests if it's not available
-rw-r--r--configure.ac27
-rw-r--r--tests/proxy-test.c3
-rw-r--r--tests/test-utils.c6
-rw-r--r--tests/test-utils.h2
-rw-r--r--tests/timeout-test.c24
5 files changed, 46 insertions, 16 deletions
diff --git a/configure.ac b/configure.ac
index f596ba99..cf6a4a59 100644
--- a/configure.ac
+++ b/configure.ac
@@ -224,6 +224,23 @@ dnl ******************************
AC_MSG_NOTICE([checking for programs needed for regression tests])
MISSING_REGRESSION_TEST_PACKAGES=""
+AC_MSG_CHECKING([for glib-networking (glib TLS implementation)])
+save_CFLAGS="$CFLAGS"
+save_LIBS="$LIBS"
+CFLAGS="$CFLAGS $GLIB_CFLAGS"
+LIBS="$LIBS $GLIB_LIBS"
+AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <gio/gio.h>],
+ [return !g_tls_backend_supports_tls (g_tls_backend_get_default ());])],
+ [have_glib_networking=yes],
+ [have_glib_networking=no],
+ [have_glib_networking="unknown (cross-compiling)"])
+CFLAGS="$save_CFLAGS"
+LIBS="$save_LIBS"
+AC_MSG_RESULT($have_glib_networking)
+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)]),
APACHE_HTTPD="$withval",
@@ -330,9 +347,6 @@ else
fi
AM_CONDITIONAL(HAVE_CURL, test "$CURL" != no)
-if test -n "$MISSING_REGRESSION_TEST_PACKAGES"; then
- AC_MSG_NOTICE([Some regression tests will not be run due to missing packages:$MISSING_REGRESSION_TEST_PACKAGES])
-fi
AC_SUBST(MISSING_REGRESSION_TEST_PACKAGES)
AM_CONDITIONAL(MISSING_REGRESSION_TEST_PACKAGES, test -n "$MISSING_REGRESSION_TEST_PACKAGES")
@@ -353,3 +367,10 @@ AC_CONFIG_FILES([
docs/reference/Makefile
])
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/proxy-test.c b/tests/proxy-test.c
index 4fb74ed5..e6e910dc 100644
--- a/tests/proxy-test.c
+++ b/tests/proxy-test.c
@@ -90,6 +90,9 @@ test_url (const char *url, int proxy, guint expected,
SoupURI *proxy_uri;
SoupMessage *msg;
+ if (!tls_available && g_str_has_prefix (url, "https:"))
+ return;
+
debug_printf (1, " GET %s via %s%s\n", url, proxy_names[proxy],
close ? " (with Connection: close)" : "");
if (proxy == UNAUTH_PROXY && expected != SOUP_STATUS_FORBIDDEN)
diff --git a/tests/test-utils.c b/tests/test-utils.c
index 750da72c..15495a0b 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -18,7 +18,7 @@ static gboolean apache_running;
static SoupLogger *logger;
int debug_level, errors;
-gboolean expect_warning;
+gboolean expect_warning, tls_available;
static int http_debug_level;
static gboolean
@@ -79,6 +79,7 @@ test_init (int argc, char **argv, GOptionEntry *entries)
GOptionContext *opts;
char *name;
GError *error = NULL;
+ GTlsBackend *tls_backend;
g_thread_init (NULL);
g_type_init ();
@@ -108,6 +109,9 @@ test_init (int argc, char **argv, GOptionEntry *entries)
signal (SIGINT, quit);
g_log_set_default_handler (test_log_handler, NULL);
+
+ tls_backend = g_tls_backend_get_default ();
+ tls_available = g_tls_backend_supports_tls (tls_backend);
}
void
diff --git a/tests/test-utils.h b/tests/test-utils.h
index f609eaf8..98c12fda 100644
--- a/tests/test-utils.h
+++ b/tests/test-utils.h
@@ -8,7 +8,7 @@ void test_init (int argc, char **argv, GOptionEntry *entries);
void test_cleanup (void);
extern int debug_level, errors;
-extern gboolean expect_warning;
+extern gboolean expect_warning, tls_available;
void debug_printf (int level, const char *format, ...) G_GNUC_PRINTF (2, 3);
#ifdef HAVE_APACHE
diff --git a/tests/timeout-test.c b/tests/timeout-test.c
index 5aec83d7..b712f9f2 100644
--- a/tests/timeout-test.c
+++ b/tests/timeout-test.c
@@ -176,17 +176,19 @@ main (int argc, char **argv)
g_free (slow_uri);
soup_test_server_quit_unref (server);
- debug_printf (1, "\nhttps\n");
- server = soup_test_server_new_ssl (TRUE);
- soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- fast_uri = g_strdup_printf ("https://127.0.0.1:%u/",
- soup_server_get_port (server));
- slow_uri = g_strdup_printf ("https://127.0.0.1:%u/slow",
- soup_server_get_port (server));
- do_timeout_tests (fast_uri, slow_uri);
- g_free (fast_uri);
- g_free (slow_uri);
- soup_test_server_quit_unref (server);
+ if (tls_available) {
+ debug_printf (1, "\nhttps\n");
+ server = soup_test_server_new_ssl (TRUE);
+ soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
+ fast_uri = g_strdup_printf ("https://127.0.0.1:%u/",
+ soup_server_get_port (server));
+ slow_uri = g_strdup_printf ("https://127.0.0.1:%u/slow",
+ soup_server_get_port (server));
+ do_timeout_tests (fast_uri, slow_uri);
+ g_free (fast_uri);
+ g_free (slow_uri);
+ soup_test_server_quit_unref (server);
+ }
test_cleanup ();
return errors != 0;