diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 46 | ||||
-rw-r--r-- | tests/forms-test.c | 2 | ||||
-rw-r--r-- | tests/httpd.conf.22.in | 81 | ||||
-rw-r--r-- | tests/httpd.conf.24.in | 82 | ||||
-rw-r--r-- | tests/no-ssl-test.c | 3 | ||||
-rw-r--r-- | tests/ntlm-test.c | 8 | ||||
-rw-r--r-- | tests/resource-test.c | 2 | ||||
-rw-r--r-- | tests/session-test.c | 8 | ||||
-rw-r--r-- | tests/ssl-test.c | 7 | ||||
-rw-r--r-- | tests/test-utils.c | 80 | ||||
-rw-r--r-- | tests/xmlrpc-server-test.c | 2 |
11 files changed, 189 insertions, 132 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index f7293b12..d9ede804 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,14 +1,14 @@ +include $(top_srcdir)/glib-tap.mk + AM_CPPFLAGS = \ -I$(top_srcdir) \ - -DSRCDIR=\""$(abs_srcdir)"\" \ - -DBUILDDIR=\""$(builddir)"\" \ $(GLIB_CFLAGS) LIBS = \ $(top_builddir)/libsoup/libsoup-2.4.la \ $(GLIB_LIBS) -TESTS = \ +test_programs = \ auth-test \ cache-test \ chunk-test \ @@ -44,13 +44,18 @@ TESTS = \ xmlrpc-server-test \ xmlrpc-test -noinst_PROGRAMS = \ +test_extra_programs = \ ntlm-test-helper \ $(TESTS) -noinst_DATA = soup-tests.gresource +test_data = \ + index.txt \ + soup-tests.gresource \ + test-cert.pem \ + test-key.pem \ + xmlrpc-server.php -noinst_LTLIBRARIES = libtest.la +noinst_LTLIBRARIES += libtest.la libtest_la_SOURCES = \ test-utils.c \ @@ -74,7 +79,11 @@ httpd.conf: $(httpd_conf_in) -e 's,[@]APACHE_SSL_MODULE_DIR@,$(APACHE_SSL_MODULE_DIR),' \ $< > $@ || rm -f $@ -BUILT_SOURCES = httpd.conf +BUILT_SOURCES += httpd.conf +test_data += \ + htdigest \ + htpasswd \ + httpd.conf endif RESOURCES = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/soup-tests.gresource.xml) @@ -82,7 +91,7 @@ RESOURCES = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-d soup-tests.gresource: soup-tests.gresource.xml $(RESOURCES) $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) $< -EXTRA_DIST = \ +EXTRA_DIST += \ htdigest \ htpasswd \ httpd.conf.22.in \ @@ -95,10 +104,9 @@ EXTRA_DIST = \ xmlrpc-server.php \ $(RESOURCES) -DISTCLEANFILES = soup-tests.gresource httpd.conf +DISTCLEANFILES += soup-tests.gresource httpd.conf -TESTS_ENVIRONMENT = \ - SOUP_TESTS_IN_MAKE_CHECK=1 +TESTS_ENVIRONMENT += SOUP_TESTS_IN_MAKE_CHECK=1 check: start-httpd @@ -113,13 +121,21 @@ endif .PHONY: start-httpd kill-httpd start-httpd: -if HAVE_APACHE - @$(APACHE_HTTPD) -d `pwd` -f httpd.conf -k start; +if HAVE_APACHE_2_2 + @$(APACHE_HTTPD) -d $(abs_srcdir) -c "PidFile `pwd`/httpd.pid" -f `pwd`/httpd.conf -k start; +endif +if HAVE_APACHE_2_4 + @$(APACHE_HTTPD) -d $(abs_srcdir) -c "DefaultRuntimeDir `pwd`" -c "PidFile `pwd`/httpd.pid" -f `pwd`/httpd.conf -k start; endif kill-httpd: -if HAVE_APACHE +if HAVE_APACHE_2_2 + @if [ -f httpd.pid ]; then \ + $(APACHE_HTTPD) -d $(abs_srcdir) -c "PidFile `pwd`/httpd.pid" -f `pwd`/httpd.conf -k stop; \ + fi +endif +if HAVE_APACHE_2_4 @if [ -f httpd.pid ]; then \ - $(APACHE_HTTPD) -d `pwd` -f httpd.conf -k stop; \ + $(APACHE_HTTPD) -d $(abs_srcdir) -c "DefaultRuntimeDir `pwd`" -c "PidFile `pwd`/httpd.pid" -f `pwd`/httpd.conf -k stop; \ fi endif diff --git a/tests/forms-test.c b/tests/forms-test.c index 8fd0de4a..d8db4b00 100644 --- a/tests/forms-test.c +++ b/tests/forms-test.c @@ -131,7 +131,7 @@ do_md5_test_curl (const char *uri, const char *file, const char *md5) g_free (file_arg); } -#define MD5_TEST_FILE SRCDIR "/index.txt" +#define MD5_TEST_FILE (g_test_get_filename (G_TEST_DIST, "index.txt", NULL)) #define MD5_TEST_FILE_BASENAME "index.txt" #define MD5_TEST_FILE_MIME_TYPE "text/plain" diff --git a/tests/httpd.conf.22.in b/tests/httpd.conf.22.in index de0b75fa..b912ca36 100644 --- a/tests/httpd.conf.22.in +++ b/tests/httpd.conf.22.in @@ -3,8 +3,7 @@ ServerName 127.0.0.1 Listen 127.0.0.1:47524 -PidFile @builddir@/httpd.pid -DocumentRoot @srcdir@ +DocumentRoot . # The tests shut down apache with "graceful-stop", because that makes # it close its listening socket right away. But it seems to sometimes @@ -83,7 +82,7 @@ Listen 127.0.0.1:47527 AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require valid-user </Proxy> @@ -94,7 +93,7 @@ Listen 127.0.0.1:47527 AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require valid-user </Proxy> @@ -124,7 +123,7 @@ Listen 127.0.0.1:47528 AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user no-such-user </Proxy> @@ -135,7 +134,7 @@ Listen 127.0.0.1:47528 AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user no-such-user </Proxy> @@ -154,89 +153,89 @@ Listen 127.0.0.1:47528 <VirtualHost 127.0.0.1:47525> SSLEngine on - SSLCertificateFile @srcdir@/test-cert.pem - SSLCertificateKeyFile @srcdir@/test-key.pem + SSLCertificateFile ./test-cert.pem + SSLCertificateKeyFile ./test-key.pem </VirtualHost> </IfModule> # Basic auth tests -Alias /Basic/realm1/realm2/realm1 @srcdir@ -Alias /Basic/realm1/realm2 @srcdir@ -Alias /Basic/realm1/subdir @srcdir@ -Alias /Basic/realm1/not @srcdir@ -Alias /Basic/realm1 @srcdir@ -Alias /Basic/realm12/subdir @srcdir@ -Alias /Basic/realm12 @srcdir@ -Alias /Basic/realm2 @srcdir@ -Alias /Basic/realm3 @srcdir@ -Alias /Basic @srcdir@ +Alias /Basic/realm1/realm2/realm1 . +Alias /Basic/realm1/realm2 . +Alias /Basic/realm1/subdir . +Alias /Basic/realm1/not . +Alias /Basic/realm1 . +Alias /Basic/realm12/subdir . +Alias /Basic/realm12 . +Alias /Basic/realm2 . +Alias /Basic/realm3 . +Alias /Basic . <Location /Basic/realm1> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 </Location> <Location /Basic/realm1/not> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm12> AuthType Basic AuthName realm12 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 user2 </Location> <Location /Basic/realm1/realm2> AuthType Basic AuthName realm2 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm1/realm2/realm1> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 </Location> <Location /Basic/realm2> AuthType Basic AuthName realm2 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm3> AuthType Basic AuthName realm3 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user3 </Location> # Digest auth tests -Alias /Digest/realm1/realm2/realm1 @srcdir@ -Alias /Digest/realm1/realm2 @srcdir@ -Alias /Digest/realm1/subdir @srcdir@ -Alias /Digest/realm1/expire @srcdir@ -Alias /Digest/realm1/not @srcdir@ -Alias /Digest/realm1 @srcdir@ -Alias /Digest/realm2 @srcdir@ -Alias /Digest/realm3 @srcdir@ -Alias /Digest @srcdir@ +Alias /Digest/realm1/realm2/realm1 . +Alias /Digest/realm1/realm2 . +Alias /Digest/realm1/subdir . +Alias /Digest/realm1/expire . +Alias /Digest/realm1/not . +Alias /Digest/realm1 . +Alias /Digest/realm2 . +Alias /Digest/realm3 . +Alias /Digest . <Location /Digest/realm1> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require valid-user </Location> @@ -244,7 +243,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/expire> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 AuthDigestNonceLifetime 2 Require valid-user @@ -253,7 +252,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/not> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require user user2 </Location> @@ -261,7 +260,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/realm2> AuthType Digest AuthName realm2 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm2 /Digest/realm1/realm2 Require valid-user </Location> @@ -269,7 +268,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/realm2/realm1> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require valid-user </Location> @@ -277,7 +276,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm2> AuthType Digest AuthName realm2 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm2 /Digest/realm1/realm2 Require valid-user </Location> @@ -285,7 +284,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm3> AuthType Digest AuthName realm3 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm3 Require valid-user # test RFC2069-style Digest diff --git a/tests/httpd.conf.24.in b/tests/httpd.conf.24.in index 2407ad75..850b8393 100644 --- a/tests/httpd.conf.24.in +++ b/tests/httpd.conf.24.in @@ -3,9 +3,7 @@ ServerName 127.0.0.1 Listen 127.0.0.1:47524 -PidFile @builddir@/httpd.pid -DefaultRuntimeDir @builddir@ -DocumentRoot @srcdir@ +DocumentRoot . # The tests shut down apache with "graceful-stop", because that makes # it close its listening socket right away. But it seems to sometimes @@ -80,7 +78,7 @@ Listen 127.0.0.1:47527 <Proxy http://127.0.0.1:47524*> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require valid-user </Proxy> @@ -88,7 +86,7 @@ Listen 127.0.0.1:47527 <Proxy 127.0.0.1:47525> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require valid-user </Proxy> @@ -113,7 +111,7 @@ Listen 127.0.0.1:47528 <Proxy http://127.0.0.1:47524*> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user no-such-user </Proxy> @@ -121,7 +119,7 @@ Listen 127.0.0.1:47528 <Proxy 127.0.0.1:47525> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user no-such-user </Proxy> @@ -139,89 +137,89 @@ Listen 127.0.0.1:47528 <VirtualHost 127.0.0.1:47525> SSLEngine on - SSLCertificateFile @srcdir@/test-cert.pem - SSLCertificateKeyFile @srcdir@/test-key.pem + SSLCertificateFile ./test-cert.pem + SSLCertificateKeyFile ./test-key.pem </VirtualHost> </IfModule> # Basic auth tests -Alias /Basic/realm1/realm2/realm1 @srcdir@ -Alias /Basic/realm1/realm2 @srcdir@ -Alias /Basic/realm1/subdir @srcdir@ -Alias /Basic/realm1/not @srcdir@ -Alias /Basic/realm1 @srcdir@ -Alias /Basic/realm12/subdir @srcdir@ -Alias /Basic/realm12 @srcdir@ -Alias /Basic/realm2 @srcdir@ -Alias /Basic/realm3 @srcdir@ -Alias /Basic @srcdir@ +Alias /Basic/realm1/realm2/realm1 . +Alias /Basic/realm1/realm2 . +Alias /Basic/realm1/subdir . +Alias /Basic/realm1/not . +Alias /Basic/realm1 . +Alias /Basic/realm12/subdir . +Alias /Basic/realm12 . +Alias /Basic/realm2 . +Alias /Basic/realm3 . +Alias /Basic . <Location /Basic/realm1> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 </Location> <Location /Basic/realm1/not> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm12> AuthType Basic AuthName realm12 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 user2 </Location> <Location /Basic/realm1/realm2> AuthType Basic AuthName realm2 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm1/realm2/realm1> AuthType Basic AuthName realm1 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user1 </Location> <Location /Basic/realm2> AuthType Basic AuthName realm2 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user2 </Location> <Location /Basic/realm3> AuthType Basic AuthName realm3 - AuthUserFile @srcdir@/htpasswd + AuthUserFile ./htpasswd Require user user3 </Location> # Digest auth tests -Alias /Digest/realm1/realm2/realm1 @srcdir@ -Alias /Digest/realm1/realm2 @srcdir@ -Alias /Digest/realm1/subdir @srcdir@ -Alias /Digest/realm1/expire @srcdir@ -Alias /Digest/realm1/not @srcdir@ -Alias /Digest/realm1 @srcdir@ -Alias /Digest/realm2 @srcdir@ -Alias /Digest/realm3 @srcdir@ -Alias /Digest @srcdir@ +Alias /Digest/realm1/realm2/realm1 . +Alias /Digest/realm1/realm2 . +Alias /Digest/realm1/subdir . +Alias /Digest/realm1/expire . +Alias /Digest/realm1/not . +Alias /Digest/realm1 . +Alias /Digest/realm2 . +Alias /Digest/realm3 . +Alias /Digest . <Location /Digest/realm1> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require valid-user </Location> @@ -229,7 +227,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/expire> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 AuthDigestNonceLifetime 2 Require valid-user @@ -238,7 +236,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/not> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require user user2 </Location> @@ -246,7 +244,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/realm2> AuthType Digest AuthName realm2 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm2 /Digest/realm1/realm2 Require valid-user </Location> @@ -254,7 +252,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm1/realm2/realm1> AuthType Digest AuthName realm1 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm1 /Digest/realm1/realm2/realm1 Require valid-user </Location> @@ -262,7 +260,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm2> AuthType Digest AuthName realm2 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm2 /Digest/realm1/realm2 Require valid-user </Location> @@ -270,7 +268,7 @@ Alias /Digest @srcdir@ <Location /Digest/realm3> AuthType Digest AuthName realm3 - AuthUserFile @srcdir@/htdigest + AuthUserFile ./htdigest AuthDigestDomain /Digest/realm3 Require valid-user # test RFC2069-style Digest diff --git a/tests/no-ssl-test.c b/tests/no-ssl-test.c index 5944b91b..feffa5bd 100644 --- a/tests/no-ssl-test.c +++ b/tests/no-ssl-test.c @@ -76,7 +76,8 @@ do_session_property_tests (void) soup_test_assert (ca_file == NULL, "setting ssl-use-system-ca-file set ssl-ca-file"); g_object_set (G_OBJECT (session), - "ssl-ca-file", SRCDIR "/test-cert.pem", + "ssl-ca-file", + g_test_get_filename (G_TEST_DIST, "test-cert.pem", NULL), NULL); g_object_get (G_OBJECT (session), "ssl-use-system-ca-file", &use_system, diff --git a/tests/ntlm-test.c b/tests/ntlm-test.c index 39879274..0fa4b478 100644 --- a/tests/ntlm-test.c +++ b/tests/ntlm-test.c @@ -465,7 +465,9 @@ do_winbind_ntlm_test (gconstpointer data) /* Samba winbind /usr/bin/ntlm_auth helper support (via a * helper program that emulates its interface). */ - g_setenv ("SOUP_NTLM_AUTH_DEBUG", BUILDDIR "/ntlm-test-helper", TRUE); + g_setenv ("SOUP_NTLM_AUTH_DEBUG", + g_test_get_filename (G_TEST_BUILT, "ntlm-test-helper", NULL), + TRUE); g_unsetenv ("SOUP_NTLM_AUTH_DEBUG_NOCREDS"); do_ntlm_tests (uri, FALSE); } @@ -479,7 +481,9 @@ do_fallback_ntlm_test (gconstpointer data) * no cached credentials (and thus we have to fall back to * libsoup's built-in NTLM support). */ - g_setenv ("SOUP_NTLM_AUTH_DEBUG", BUILDDIR "/ntlm-test-helper", TRUE); + g_setenv ("SOUP_NTLM_AUTH_DEBUG", + g_test_get_filename (G_TEST_BUILT, "ntlm-test-helper", NULL), + TRUE); g_setenv ("SOUP_NTLM_AUTH_DEBUG_NOCREDS", "1", TRUE); do_ntlm_tests (uri, TRUE); } diff --git a/tests/resource-test.c b/tests/resource-test.c index 50d63ab9..6fcb899e 100644 --- a/tests/resource-test.c +++ b/tests/resource-test.c @@ -155,7 +155,7 @@ do_request_file_test (gconstpointer type) GFile *index; char *uri_string; - index = g_file_new_for_path (SRCDIR "/index.txt"); + index = g_file_new_for_path (g_test_get_filename (G_TEST_DIST, "index.txt", NULL)); uri_string = g_file_get_uri (index); g_object_unref (index); diff --git a/tests/session-test.c b/tests/session-test.c index a6ce2c45..21d97a85 100644 --- a/tests/session-test.c +++ b/tests/session-test.c @@ -333,7 +333,13 @@ do_property_tests (void) * so we can only do this test if we have a real TLS backend. */ if (tls_available) { - tlsdb = g_tls_file_database_new (SRCDIR "/test-cert.pem", NULL); + GError *error = NULL; + + tlsdb = g_tls_file_database_new (g_test_get_filename (G_TEST_DIST, + "test-cert.pem", + NULL), &error); + g_assert_no_error (error); + session = g_object_new (SOUP_TYPE_SESSION, SOUP_SESSION_TLS_DATABASE, tlsdb, NULL); diff --git a/tests/ssl-test.c b/tests/ssl-test.c index 5ef41292..753a980c 100644 --- a/tests/ssl-test.c +++ b/tests/ssl-test.c @@ -65,7 +65,10 @@ do_one_strict_test (SoupSession *session, const char *uri, g_object_set (G_OBJECT (session), SOUP_SESSION_SSL_STRICT, strict, - SOUP_SESSION_SSL_CA_FILE, with_ca_list ? SRCDIR "/test-cert.pem" : "/dev/null", + SOUP_SESSION_SSL_CA_FILE, + (with_ca_list ? + g_test_get_filename (G_TEST_DIST, "/test-cert.pem", NULL) : + "/dev/null"), NULL); /* Close existing connections with old params */ soup_session_abort (session); @@ -184,7 +187,7 @@ do_session_property_tests (void) use_system_changed = tlsdb_changed = ca_file_changed = FALSE; g_object_set (G_OBJECT (session), - "ssl-ca-file", SRCDIR "/test-cert.pem", + "ssl-ca-file", g_test_get_filename (G_TEST_DIST, "/test-cert.pem", NULL), NULL); g_object_get (G_OBJECT (session), "ssl-use-system-ca-file", &use_system, diff --git a/tests/test-utils.c b/tests/test-utils.c index cf7d5ea3..055bb1a9 100644 --- a/tests/test-utils.c +++ b/tests/test-utils.c @@ -90,9 +90,6 @@ test_init (int argc, char **argv, GOptionEntry *entries) } g_option_context_free (opts); - if (g_getenv ("SOUP_TESTS_IN_MAKE_CHECK")) - debug_level = G_MAXINT; - /* Exit cleanly on ^C in case we're valgrinding. */ signal (SIGINT, quit); @@ -136,30 +133,52 @@ debug_printf (int level, const char *format, ...) static gboolean apache_cmd (const char *cmd) { - const char *argv[8]; - char *cwd, *conf; + GPtrArray *argv; + char *server_root, *cwd, *pid_file; +#ifdef HAVE_APACHE_2_4 + char *default_runtime_dir; +#endif int status; gboolean ok; + server_root = g_test_build_filename (G_TEST_BUILT, "", NULL); + cwd = g_get_current_dir (); - conf = g_build_filename (cwd, "httpd.conf", NULL); - - argv[0] = APACHE_HTTPD; - argv[1] = "-d"; - argv[2] = cwd; - argv[3] = "-f"; - argv[4] = conf; - argv[5] = "-k"; - argv[6] = cmd; - argv[7] = NULL; - - ok = g_spawn_sync (cwd, (char **)argv, NULL, 0, NULL, NULL, +#ifdef HAVE_APACHE_2_4 + default_runtime_dir = g_strdup_printf ("DefaultRuntimeDir %s", cwd); +#endif + pid_file = g_strdup_printf ("PidFile %s/httpd.pid", cwd); + + argv = g_ptr_array_new (); + g_ptr_array_add (argv, APACHE_HTTPD); + g_ptr_array_add (argv, "-d"); + g_ptr_array_add (argv, server_root); + g_ptr_array_add (argv, "-f"); + g_ptr_array_add (argv, "httpd.conf"); + +#ifdef HAVE_APACHE_2_4 + 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, pid_file); + + g_ptr_array_add (argv, "-k"); + g_ptr_array_add (argv, (char *)cmd); + g_ptr_array_add (argv, NULL); + + ok = g_spawn_sync (cwd, (char **)argv->pdata, NULL, 0, NULL, NULL, NULL, NULL, &status, NULL); if (ok) ok = (status == 0); + g_free (server_root); g_free (cwd); - g_free (conf); + g_free (pid_file); +#ifdef HAVE_APACHE_2_4 + g_free (default_runtime_dir); +#endif + g_ptr_array_free (argv, TRUE); return ok; } @@ -207,15 +226,18 @@ soup_test_session_new (GType type, ...) va_list args; const char *propname; SoupSession *session; + char *cafile; va_start (args, type); propname = va_arg (args, const char *); session = (SoupSession *)g_object_new_valist (type, propname, args); va_end (args); + cafile = g_test_build_filename (G_TEST_DIST, "test-cert.pem", NULL); g_object_set (G_OBJECT (session), - SOUP_SESSION_SSL_CA_FILE, SRCDIR "/test-cert.pem", + SOUP_SESSION_SSL_CA_FILE, cafile, NULL); + g_free (cafile); if (http_debug_level && !logger) { SoupLoggerLogLevel level = MIN ((SoupLoggerLogLevel)http_debug_level, SOUP_LOGGER_LOG_BODY); @@ -245,14 +267,14 @@ test_server_new (gboolean in_own_thread, gboolean ssl) { SoupServer *server; GMainContext *async_context; - const char *ssl_cert_file, *ssl_key_file; + char *ssl_cert_file, *ssl_key_file; SoupAddress *addr; async_context = in_own_thread ? g_main_context_new () : NULL; if (ssl) { - ssl_cert_file = SRCDIR "/test-cert.pem"; - ssl_key_file = SRCDIR "/test-key.pem"; + ssl_cert_file = g_test_build_filename (G_TEST_DIST, "test-cert.pem", NULL); + ssl_key_file = g_test_build_filename (G_TEST_DIST, "test-key.pem", NULL); } else ssl_cert_file = ssl_key_file = NULL; @@ -267,6 +289,8 @@ test_server_new (gboolean in_own_thread, gboolean ssl) g_object_unref (addr); if (async_context) g_main_context_unref (async_context); + g_free (ssl_cert_file); + g_free (ssl_key_file); if (!server) { g_printerr ("Unable to create server\n"); @@ -521,17 +545,21 @@ soup_test_register_resources (void) { static gboolean registered = FALSE; GResource *resource; + char *path; GError *error = NULL; if (registered) return; - resource = g_resource_load ("soup-tests.gresource", &error); + path = g_test_build_filename (G_TEST_BUILT, "soup-tests.gresource", NULL); + resource = g_resource_load (path, &error); if (!resource) { g_printerr ("Could not load resource soup-tests.gresource: %s\n", error->message); exit (1); } + g_free (path); + g_resources_register (resource); g_resource_unref (resource); @@ -564,15 +592,17 @@ SoupBuffer * soup_test_get_index (void) { if (!index_buffer) { - char *contents; + char *path, *contents; gsize length; GError *error = NULL; - if (!g_file_get_contents (SRCDIR "/index.txt", &contents, &length, &error)) { + path = g_test_build_filename (G_TEST_DIST, "index.txt", NULL); + if (!g_file_get_contents (path, &contents, &length, &error)) { g_printerr ("Could not read index.txt: %s\n", error->message); exit (1); } + g_free (path); index_buffer = soup_buffer_new (SOUP_MEMORY_TAKE, contents, length); } diff --git a/tests/xmlrpc-server-test.c b/tests/xmlrpc-server-test.c index a6f2d5f0..89e6e8de 100644 --- a/tests/xmlrpc-server-test.c +++ b/tests/xmlrpc-server-test.c @@ -280,7 +280,7 @@ do_xmlrpc_tests (gconstpointer data) GError *error = NULL; GIOChannel *child_out; - argv[0] = "./xmlrpc-test"; + argv[0] = (char *) g_test_get_filename (G_TEST_BUILT, "xmlrpc-test", NULL); argv[1] = "-S"; argv[2] = "-U"; argv[3] = soup_uri_to_string (uri, FALSE); |