[libsoup] tests: add support for Apache 2.4



commit af44b7b8df5bcb9bb304e36ffad9b65c6ee22594
Author: Dan Winship <danw gnome org>
Date:   Mon Oct 22 20:15:49 2012 +0200

    tests: add support for Apache 2.4

 configure.ac                              |   25 ++++++++++++-----
 tests/Makefile.am                         |   26 ++++++++++++++++--
 tests/{httpd.conf.in => httpd.conf.22.in} |    0
 tests/{httpd.conf.in => httpd.conf.24.in} |   41 +++++++++-------------------
 tests/range-test.c                        |   13 ++++++---
 5 files changed, 63 insertions(+), 42 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7576359..8d3f0cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -222,6 +222,11 @@ if test "$APACHE_HTTPD" != "no"; then
     case $apache_version in
     2.2.*)
 	AC_MSG_RESULT([$apache_version (ok)])
+ 	apache_version=2.2
+	;;
+    2.4.*)
+	AC_MSG_RESULT([$apache_version (ok)])
+ 	apache_version=2.4
 	;;
     *)
 	AC_MSG_RESULT([$apache_version (ignoring)])
@@ -238,7 +243,7 @@ if test "$APACHE_HTTPD" != "no"; then
 		AS_HELP_STRING([--with-apache-module-dir], [Apache modules dirs (for tests)]),
 		apache_module_dirs="$withval",
 		[apache_prefix=`dirname \`dirname $APACHE_HTTPD\``
-		mpm=`$APACHE_HTTPD -V | sed -ne 's/^Server MPM: */-/p' | tr 'A-Z' 'a-z'`
+		mpm=`$APACHE_HTTPD -V -C "ServerName localhost" | sed -ne 's/^Server MPM: */-/p' | tr 'A-Z' 'a-z'`
 		# This only works with bash, but should fail harmlessly in sh
 		apache_module_dirs=`echo $apache_prefix/lib{64,}/{apache,apache2,http,http2,httpd}{$mpm,}{/modules,}`])
     for dir in $apache_module_dirs; do
@@ -267,6 +272,11 @@ fi
 
 if test "$APACHE_HTTPD" != "no" -a -n "$APACHE_MODULE_DIR" -a -n "$APACHE_SSL_MODULE_DIR"; then
     AC_DEFINE(HAVE_APACHE, 1, [Whether or not apache can be used for tests])
+    if test $apache_version = 2.2; then
+        AC_DEFINE(HAVE_APACHE_2_2, 1, [Apache is 2.2.x])
+    else
+        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"
@@ -280,6 +290,8 @@ else
     fi
 fi
 AM_CONDITIONAL(HAVE_APACHE, test $have_apache = 1)
+AM_CONDITIONAL(HAVE_APACHE_2_2, test $apache_version = 2.2)
+AM_CONDITIONAL(HAVE_APACHE_2_4, test $apache_version = 2.4)
 
 if test "$have_apache" = 1; then
     AC_CHECK_PROGS(PHP, php php5)
@@ -296,19 +308,19 @@ if test "$have_apache" = 1; then
     AC_MSG_RESULT($have_php)
 
     if test "$have_php" = yes; then
-	AC_MSG_CHECKING([for xmlrpc-epi-php])
+	AC_MSG_CHECKING([for xmlrpc-php])
 	if $PHP --rf xmlrpc_server_create | grep -q "does not exist"; then
-	    have_xmlrpc_epi_php=no
+	    have_xmlrpc_php=no
 	    MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php-xmlrpc"
 	else
-	    have_xmlrpc_epi_php=yes
+	    have_xmlrpc_php=yes
 	fi
-	AC_MSG_RESULT($have_xmlrpc_epi_php)
+	AC_MSG_RESULT($have_xmlrpc_php)
     fi
 fi
 
 AC_SUBST(IF_HAVE_PHP)
-AM_CONDITIONAL(HAVE_XMLRPC_EPI_PHP, test "$have_xmlrpc_epi_php" = yes)
+AM_CONDITIONAL(HAVE_XMLRPC_PHP, test "$have_xmlrpc_php" = yes)
 
 AC_PATH_PROG(CURL, curl, no)
 if test "$CURL" != no; then
@@ -373,7 +385,6 @@ AC_CONFIG_FILES([
 	po/Makefile.in
 	po/Makefile
 	tests/Makefile
-	tests/httpd.conf
 	docs/Makefile
 	docs/reference/Makefile
 	libsoup/soup-version.h
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 085a81b..54ce7bd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -89,10 +89,29 @@ endif
 if HAVE_CURL
 CURL_TESTS = forms-test server-auth-test
 endif
-if HAVE_XMLRPC_EPI_PHP
+if HAVE_XMLRPC_PHP
 XMLRPC_TESTS = xmlrpc-test xmlrpc-server-test
 endif
 
+if HAVE_APACHE
+if HAVE_APACHE_2_2
+httpd_conf_in = httpd.conf.22.in
+else
+httpd_conf_in = httpd.conf.24.in
+endif
+httpd.conf: $(httpd_conf_in)
+	$(AM_V_GEN) sed -e 's,[ ]srcdir@,$(srcdir),' \
+	    -e 's,[ ]builddir@,$(builddir),' \
+	    -e 's,[ ]APACHE_MODULE_DIR@,$(APACHE_MODULE_DIR),' \
+	    -e 's,[ ]APACHE_PHP_MODULE_DIR@,$(APACHE_PHP_MODULE_DIR),' \
+	    -e 's,[ ]APACHE_PHP_MODULE@,$(APACHE_PHP_MODULE),' \
+	    -e 's,[ ]IF_HAVE_PHP@,$(IF_HAVE_PHP),' \
+	    -e 's,[ ]APACHE_SSL_MODULE_DIR@,$(APACHE_SSL_MODULE_DIR),' \
+	    $< > $@ || rm -f $@
+
+BUILT_SOURCES = httpd.conf
+endif
+
 soup-tests.gresource: soup-tests.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/soup-tests.gresource.xml)
 	$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)  $<
 
@@ -138,7 +157,8 @@ RESOURCES =			\
 EXTRA_DIST =			 \
 	htdigest		 \
 	htpasswd		 \
-	httpd.conf.in		 \
+	httpd.conf.22.in	 \
+	httpd.conf.24.in	 \
 	index.txt		 \
 	libsoup.supp		 \
 	soup-tests.gresource.xml \
@@ -147,7 +167,7 @@ EXTRA_DIST =			 \
 	xmlrpc-server.php	 \
 	$(RESOURCES)
 
-DISTCLEANFILES = soup-tests.gresource
+DISTCLEANFILES = soup-tests.gresource httpd.conf
 
 if MISSING_REGRESSION_TEST_PACKAGES
 check-local: check-TESTS
diff --git a/tests/httpd.conf.in b/tests/httpd.conf.22.in
similarity index 100%
copy from tests/httpd.conf.in
copy to tests/httpd.conf.22.in
diff --git a/tests/httpd.conf.in b/tests/httpd.conf.24.in
similarity index 92%
rename from tests/httpd.conf.in
rename to tests/httpd.conf.24.in
index de0b75f..2407ad7 100644
--- a/tests/httpd.conf.in
+++ b/tests/httpd.conf.24.in
@@ -4,6 +4,7 @@ ServerName 127.0.0.1
 Listen 127.0.0.1:47524
 
 PidFile @builddir@/httpd.pid
+DefaultRuntimeDir @builddir@
 DocumentRoot @srcdir@
 
 # The tests shut down apache with "graceful-stop", because that makes
@@ -14,10 +15,13 @@ GracefulShutdownTimeout 1
 # Change this to "./error.log" if it's failing and you don't know why
 ErrorLog /dev/null
 
+LoadModule mpm_prefork_module   @APACHE_MODULE_DIR@/mod_mpm_prefork.so
 LoadModule alias_module         @APACHE_MODULE_DIR@/mod_alias.so
 LoadModule auth_basic_module    @APACHE_MODULE_DIR@/mod_auth_basic.so
 LoadModule auth_digest_module   @APACHE_MODULE_DIR@/mod_auth_digest.so
+LoadModule authn_core_module    @APACHE_MODULE_DIR@/mod_authn_core.so
 LoadModule authn_file_module    @APACHE_MODULE_DIR@/mod_authn_file.so
+LoadModule authz_core_module    @APACHE_MODULE_DIR@/mod_authz_core.so
 LoadModule authz_host_module    @APACHE_MODULE_DIR@/mod_authz_host.so
 LoadModule authz_user_module    @APACHE_MODULE_DIR@/mod_authz_user.so
 LoadModule dir_module           @APACHE_MODULE_DIR@/mod_dir.so
@@ -27,6 +31,7 @@ LoadModule proxy_module         @APACHE_MODULE_DIR@/mod_proxy.so
 LoadModule proxy_http_module    @APACHE_MODULE_DIR@/mod_proxy_http.so
 LoadModule proxy_connect_module @APACHE_MODULE_DIR@/mod_proxy_connect.so
 LoadModule ssl_module           @APACHE_SSL_MODULE_DIR@/mod_ssl.so
+LoadModule unixd_module         @APACHE_SSL_MODULE_DIR@/mod_unixd.so
 
 DirectoryIndex index.txt
 TypesConfig /dev/null
@@ -41,26 +46,22 @@ Listen 127.0.0.1:47526
 
   # Deny proxying by default
   <Proxy *>
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Proxy>
 
   # Allow local http connections
   <Proxy http://127.0.0.1*>
-    Order Allow,Deny
-    Allow from all
+    Require all granted
   </Proxy>
 
   # Allow CONNECT to local https port
   <Proxy 127.0.0.1:47525>
-    Order Allow,Deny
-    Allow from all
+    Require all granted
   </Proxy>
 
   # Deny non-proxy requests
   <Directory />
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Directory>
 </VirtualHost>
 
@@ -72,15 +73,11 @@ Listen 127.0.0.1:47527
 
   # Deny proxying by default
   <Proxy *>
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Proxy>
 
   # Allow local http connections with authentication
   <Proxy http://127.0.0.1:47524*>
-    Order Allow,Deny
-    Allow from all
-
     AuthType Basic
     AuthName realm1
     AuthUserFile @srcdir@/htpasswd
@@ -89,9 +86,6 @@ Listen 127.0.0.1:47527
 
   # Allow CONNECT to local https port with authentication
   <Proxy 127.0.0.1:47525>
-    Order Allow,Deny
-    Allow from all
-
     AuthType Basic
     AuthName realm1
     AuthUserFile @srcdir@/htpasswd
@@ -100,8 +94,7 @@ Listen 127.0.0.1:47527
 
   # Fail non-proxy requests
   <Directory />
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Directory>
 </VirtualHost>
 
@@ -113,15 +106,11 @@ Listen 127.0.0.1:47528
 
   # Deny proxying by default
   <Proxy *>
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Proxy>
 
   # Allow local http connections with authentication
   <Proxy http://127.0.0.1:47524*>
-    Order Allow,Deny
-    Allow from all
-
     AuthType Basic
     AuthName realm1
     AuthUserFile @srcdir@/htpasswd
@@ -130,9 +119,6 @@ Listen 127.0.0.1:47528
 
   # Allow CONNECT to local https port with authentication
   <Proxy 127.0.0.1:47525>
-    Order Allow,Deny
-    Allow from all
-
     AuthType Basic
     AuthName realm1
     AuthUserFile @srcdir@/htpasswd
@@ -141,8 +127,7 @@ Listen 127.0.0.1:47528
 
   # Fail non-proxy requests
   <Directory />
-    Order Deny,Allow
-    Deny from all
+    Require all denied
   </Directory>
 </VirtualHost>
 
diff --git a/tests/range-test.c b/tests/range-test.c
index 98f5645..09e95f1 100644
--- a/tests/range-test.c
+++ b/tests/range-test.c
@@ -229,7 +229,8 @@ request_triple_range (SoupSession *session, const char *uri,
 }
 
 static void
-do_range_test (SoupSession *session, const char *uri, gboolean expect_coalesce)
+do_range_test (SoupSession *session, const char *uri,
+	       gboolean expect_coalesce, gboolean expect_partial_coalesce)
 {
 	int twelfths = full_response->length / 12;
 
@@ -309,7 +310,7 @@ do_range_test (SoupSession *session, const char *uri, gboolean expect_coalesce)
 			      9 * twelfths, 10 * twelfths + 5,
 			      4 * twelfths, 5 * twelfths,
 			      10 * twelfths - 5, 11 * twelfths,
-			      expect_coalesce ? 2 : 3);
+			      expect_partial_coalesce ? 2 : 3);
 
 	if (memcmp (full_response->data, test_response, full_response->length) != 0) {
 		debug_printf (1, "\nfull_response and test_response don't match\n");
@@ -346,14 +347,18 @@ main (int argc, char **argv)
 	session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
 
 	debug_printf (1, "1. Testing against apache\n");
-	do_range_test (session, "http://127.0.0.1:47524/";, FALSE);
+#if HAVE_APACHE_2_2
+	do_range_test (session, "http://127.0.0.1:47524/";, FALSE, FALSE);
+#else
+	do_range_test (session, "http://127.0.0.1:47524/";, TRUE, FALSE);
+#endif
 
 	debug_printf (1, "\n2. Testing against SoupServer\n");
 	server = soup_test_server_new (FALSE);
 	soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
 	base_uri = g_strdup_printf ("http://127.0.0.1:%u/";,
 				    soup_server_get_port (server));
-	do_range_test (session, base_uri, TRUE);
+	do_range_test (session, base_uri, TRUE, TRUE);
 	g_free (base_uri);
 	soup_test_server_quit_unref (server);
 



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