summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am46
-rw-r--r--tests/forms-test.c2
-rw-r--r--tests/httpd.conf.22.in81
-rw-r--r--tests/httpd.conf.24.in82
-rw-r--r--tests/no-ssl-test.c3
-rw-r--r--tests/ntlm-test.c8
-rw-r--r--tests/resource-test.c2
-rw-r--r--tests/session-test.c8
-rw-r--r--tests/ssl-test.c7
-rw-r--r--tests/test-utils.c80
-rw-r--r--tests/xmlrpc-server-test.c2
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);