[libsoup] Add glib-networking to the MISSING_REGRESSION_TEST_PACKAGES checks



commit ec1c3ff3289d7130a8b7354bdee09f24c3ab9962
Author: Dan Winship <danw gnome org>
Date:   Fri Dec 10 10:27:39 2010 +0100

    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

 configure.ac         |   27 ++++++++++++++++++++++++---
 tests/proxy-test.c   |    3 +++
 tests/test-utils.c   |    6 +++++-
 tests/test-utils.h   |    2 +-
 tests/timeout-test.c |   24 +++++++++++++-----------
 5 files changed, 46 insertions(+), 16 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index f596ba9..cf6a4a5 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 4fb74ed..e6e910d 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 750da72..15495a0 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 f609eaf..98c12fd 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 5aec83d..b712f9f 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]