Merge r1639507,1639519,1639634,r1665611,r1665612 and fix trivial conflicts.
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.8.x-httpd-version-tests@1670812 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/Makefile.in b/Makefile.in
index 4681a7d..7d57300 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -357,6 +357,7 @@
fi;
APXS = @APXS@
+HTTPD_VERSION = @HTTPD_VERSION@
PYTHON = @PYTHON@
PERL = @PERL@
@@ -509,6 +510,9 @@
if test "$(HTTP_LIBRARY)" != ""; then \
flags="--http-library $(HTTP_LIBRARY) $$flags"; \
fi; \
+ if test "$(HTTPD_VERSION)" != ""; then \
+ flags="--httpd-version $(HTTPD_VERSION) $$flags"; \
+ fi; \
if test "$(SERVER_MINOR_VERSION)" != ""; then \
flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags"; \
fi; \
diff --git a/build/ac-macros/apache.m4 b/build/ac-macros/apache.m4
index 610d956..77d5139 100644
--- a/build/ac-macros/apache.m4
+++ b/build/ac-macros/apache.m4
@@ -160,6 +160,11 @@
BUILD_APACHE_RULE=apache-mod
INSTALL_APACHE_RULE=install-mods-shared
INSTALL_APACHE_MODS=true
+ HTTPD="`$APXS -q sbindir`/`$APXS -q PROGNAME`"
+ if ! test -e $HTTPD ; then
+ HTTPD="`$APXS -q bindir`/`$APXS -q PROGNAME`"
+ fi
+ HTTPD_VERSION=["`$HTTPD -v | $SED -e 's@^.*/\([0-9.]*\)\(.*$\)@\1@ ; 1q'`"]
case $host in
*-*-cygwin*)
@@ -178,6 +183,7 @@
AC_SUBST(APACHE_INCLUDES)
AC_SUBST(APACHE_LIBEXECDIR)
AC_SUBST(INSTALL_APACHE_MODS)
+AC_SUBST(HTTPD_VERSION)
# there aren't any flags that interest us ...
#if test -n "$APXS" && test "$APXS" != "no"; then
diff --git a/build/run_tests.py b/build/run_tests.py
index 449492c..d685956 100755
--- a/build/run_tests.py
+++ b/build/run_tests.py
@@ -29,6 +29,7 @@
[--fs-type=<fs-type>] [--fsfs-packing] [--fsfs-sharding=<n>]
[--list] [--milestone-filter=<regex>] [--mode-filter=<type>]
[--server-minor-version=<version>] [--http-proxy=<host>:<port>]
+ [--httpd-version=<version>]
[--config-file=<file>] [--ssl-cert=<file>]
<abs_srcdir> <abs_builddir>
<prog ...>
@@ -125,7 +126,7 @@
fsfs_sharding=None, fsfs_packing=None,
list_tests=None, svn_bin=None, mode_filter=None,
milestone_filter=None, set_log_level=None, ssl_cert=None,
- http_proxy=None):
+ http_proxy=None, httpd_version=None):
'''Construct a TestHarness instance.
ABS_SRCDIR and ABS_BUILDDIR are the source and build directories.
@@ -178,6 +179,7 @@
self.log = None
self.ssl_cert = ssl_cert
self.http_proxy = http_proxy
+ self.httpd_version = httpd_version
if not sys.stdout.isatty() or sys.platform == 'win32':
TextColors.disable()
@@ -481,6 +483,8 @@
svntest.main.options.ssl_cert = self.ssl_cert
if self.http_proxy is not None:
svntest.main.options.http_proxy = self.http_proxy
+ if self.httpd_version is not None:
+ svntest.main.options.httpd_version = self.httpd_version
svntest.main.options.srcdir = self.srcdir
@@ -645,7 +649,7 @@
'enable-sasl', 'parallel', 'config-file=',
'log-to-stdout', 'list', 'milestone-filter=',
'mode-filter=', 'set-log-level=', 'ssl-cert=',
- 'http-proxy='])
+ 'http-proxy=', 'httpd-version='])
except getopt.GetoptError:
args = []
@@ -656,9 +660,9 @@
base_url, fs_type, verbose, cleanup, enable_sasl, http_library, \
server_minor_version, fsfs_sharding, fsfs_packing, parallel, \
config_file, log_to_stdout, list_tests, mode_filter, milestone_filter, \
- set_log_level, ssl_cert, http_proxy = \
+ set_log_level, ssl_cert, http_proxy, httpd_version = \
None, None, None, None, None, None, None, None, None, None, None, \
- None, None, None, None, None, None, None
+ None, None, None, None, None, None, None, None
for opt, val in opts:
if opt in ['-u', '--url']:
base_url = val
@@ -696,6 +700,8 @@
ssl_cert = val
elif opt in ['--http-proxy']:
http_proxy = val
+ elif opt in ['--httpd-version']:
+ httpd_version = val
else:
raise getopt.GetoptError
@@ -712,7 +718,7 @@
fsfs_sharding, fsfs_packing, list_tests,
mode_filter=mode_filter, milestone_filter=milestone_filter,
set_log_level=set_log_level, ssl_cert=ssl_cert,
- http_proxy=http_proxy)
+ http_proxy=http_proxy, httpd_version=httpd_version)
failed = th.run(args[2:])
if failed:
diff --git a/subversion/tests/cmdline/davautocheck.sh b/subversion/tests/cmdline/davautocheck.sh
index 21fe418..480ef6f 100755
--- a/subversion/tests/cmdline/davautocheck.sh
+++ b/subversion/tests/cmdline/davautocheck.sh
@@ -255,8 +255,6 @@
"$HTTPD" -v 1>/dev/null 2>&1 \
|| fail "HTTPD '$HTTPD' doesn't start properly"
-say "Using '$HTTPD'..."
-
HTPASSWD=$(get_prog_name htpasswd htpasswd2) \
|| fail "Could not find htpasswd or htpasswd2"
[ -x $HTPASSWD ] \
diff --git a/subversion/tests/cmdline/svntest/main.py b/subversion/tests/cmdline/svntest/main.py
index 0d1ca91..7f76d01 100644
--- a/subversion/tests/cmdline/svntest/main.py
+++ b/subversion/tests/cmdline/svntest/main.py
@@ -1378,6 +1378,24 @@
return False
return True
+
+# https://issues.apache.org/bugzilla/show_bug.cgi?id=56480
+# https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
+__mod_dav_url_quoting_broken_versions = frozenset([
+ '2.2.27',
+ '2.2.26',
+ '2.2.25',
+ '2.4.9',
+ '2.4.8',
+ '2.4.7',
+ '2.4.6',
+ '2.4.5',
+])
+def is_mod_dav_url_quoting_broken():
+ if is_ra_type_dav():
+ return (options.httpd_version in __mod_dav_url_quoting_broken_versions)
+ return None
+
######################################################################
@@ -1435,6 +1453,8 @@
args.append('--ssl-cert=' + options.ssl_cert)
if options.http_proxy:
args.append('--http-proxy=' + options.http_proxy)
+ if options.httpd_version:
+ args.append('--httpd-version=' + options.httpd_version)
result, stdout_lines, stderr_lines = spawn_process(command, 0, False, None,
*args)
@@ -1780,6 +1800,8 @@
help='Path to SSL server certificate.')
parser.add_option('--http-proxy', action='store',
help='Use the HTTP Proxy at hostname:port.')
+ parser.add_option('--httpd-version', action='store',
+ help='Assume HTTPD is this version.')
parser.add_option('--tools-bin', action='store', dest='tools_bin',
help='Use the svn tools installed in this path')