You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2012/11/16 05:25:04 UTC
svn commit: r1410195 - in /subversion/trunk: Makefile.in build/run_tests.py
subversion/tests/cmdline/svntest/main.py
Author: breser
Date: Fri Nov 16 04:25:04 2012
New Revision: 1410195
URL: http://svn.apache.org/viewvc?rev=1410195&view=rev
Log:
Make it easy to run the test suite through an http proxy.
* Makefile.in
(check): Convert HTTP_PROXY to --http-proxy arg on run_tests.py
* build/run_tests.py
(usage): Add --http-proxy as a possible option.
(TestHarness.__init__): Add http_proxy arg / attribute on class.
(TestHarness._run_py_test): Pass in http_proxy attribute.
(main): Support parsing --http-proxy, pass value to TextHarness constructor.
* subversion/tests/cmdline/svntest/main.py
(create_config_dir): Accept a http_proxy arg, use urlparse to split it as
though it was netloc of a URL. This allows ipv6 addresses via the
[ipv6]:port syntax. Add the split argument as http-proxy-host and
http-proxy-port in the servers config file.
(TestSpawningThread.run_one): Pass the --http-proxy arg.
(execute_tests): Pass http_proxy to create_config_dir.
Modified:
subversion/trunk/Makefile.in
subversion/trunk/build/run_tests.py
subversion/trunk/subversion/tests/cmdline/svntest/main.py
Modified: subversion/trunk/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1410195&r1=1410194&r2=1410195&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Fri Nov 16 04:25:04 2012
@@ -517,6 +517,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
if test "$(SSL_CERT)" != ""; then \
flags="--ssl-cert $(SSL_CERT) $$flags"; \
fi; \
+ if test "$(HTTP_PROXY)" != ""; then \
+ flags="--http-proxy $(HTTP_PROXY) $$flags"; \
+ fi; \
LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)' \
$(PYTHON) $(top_srcdir)/build/run_tests.py \
--config-file $(top_srcdir)/subversion/tests/tests.conf \
Modified: subversion/trunk/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/run_tests.py?rev=1410195&r1=1410194&r2=1410195&view=diff
==============================================================================
--- subversion/trunk/build/run_tests.py (original)
+++ subversion/trunk/build/run_tests.py Fri Nov 16 04:25:04 2012
@@ -28,7 +28,7 @@
[--url=<base-url>] [--http-library=<http-library>] [--enable-sasl]
[--fs-type=<fs-type>] [--fsfs-packing] [--fsfs-sharding=<n>]
[--list] [--milestone-filter=<regex>] [--mode-filter=<type>]
- [--server-minor-version=<version>]
+ [--server-minor-version=<version>] [--http-proxy=<host>:<port>]
[--config-file=<file>] [--ssl-cert=<file>]
<abs_srcdir> <abs_builddir>
<prog ...>
@@ -124,7 +124,8 @@ class TestHarness:
cleanup=None, enable_sasl=None, parallel=None, config_file=None,
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):
+ milestone_filter=None, set_log_level=None, ssl_cert=None,
+ http_proxy=None):
'''Construct a TestHarness instance.
ABS_SRCDIR and ABS_BUILDDIR are the source and build directories.
@@ -176,6 +177,7 @@ class TestHarness:
self.mode_filter = mode_filter
self.log = None
self.ssl_cert = ssl_cert
+ self.http_proxy = http_proxy
if not sys.stdout.isatty() or sys.platform == 'win32':
TextColors.disable()
@@ -477,6 +479,8 @@ class TestHarness:
svntest.main.options.mode_filter = self.mode_filter
if self.ssl_cert is not None:
svntest.main.options.ssl_cert = self.ssl_cert
+ if self.http_proxy is not None:
+ svntest.main.options.http_proxy = self.http_proxy
svntest.main.options.srcdir = self.srcdir
@@ -640,7 +644,8 @@ def main():
'fsfs-packing', 'fsfs-sharding=',
'enable-sasl', 'parallel', 'config-file=',
'log-to-stdout', 'list', 'milestone-filter=',
- 'mode-filter=', 'set-log-level=', 'ssl-cert='])
+ 'mode-filter=', 'set-log-level=', 'ssl-cert=',
+ 'http-proxy='])
except getopt.GetoptError:
args = []
@@ -651,9 +656,9 @@ def main():
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 = \
+ set_log_level, ssl_cert, http_proxy = \
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
@@ -689,6 +694,8 @@ def main():
set_log_level = val
elif opt in ['--ssl-cert']:
ssl_cert = val
+ elif opt in ['--http-proxy']:
+ http_proxy = val
else:
raise getopt.GetoptError
@@ -704,7 +711,8 @@ def main():
verbose, cleanup, enable_sasl, parallel, config_file,
fsfs_sharding, fsfs_packing, list_tests,
mode_filter=mode_filter, milestone_filter=milestone_filter,
- set_log_level=set_log_level, ssl_cert=ssl_cert)
+ set_log_level=set_log_level, ssl_cert=ssl_cert,
+ http_proxy=http_proxy)
failed = th.run(args[2:])
if failed:
Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1410195&r1=1410194&r2=1410195&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Fri Nov 16 04:25:04 2012
@@ -542,7 +542,7 @@ def run_command_stdin(command, error_exp
stderr_lines
def create_config_dir(cfgdir, config_contents=None, server_contents=None,
- ssl_cert=None, ssl_url=None):
+ ssl_cert=None, ssl_url=None, http_proxy=None):
"Create config directories and files"
# config file names
@@ -569,13 +569,19 @@ interactive-conflicts = false
http_library_str = ""
if options.http_library:
http_library_str = "http-library=%s" % (options.http_library)
+ http_proxy_str = ""
+ if options.http_proxy:
+ http_proxy_parsed = urlparse("//" + options.http_proxy)
+ http_proxy_str = "http-proxy-host=%s\n" % (http_proxy_parsed.hostname) + \
+ "http-proxy-port=%d" % (http_proxy_parsed.port or 80)
server_contents = """
#
[global]
%s
+%s
store-plaintext-passwords=yes
store-passwords=yes
-""" % (http_library_str)
+""" % (http_library_str, http_proxy_str)
file_write(cfgfile_cfg, config_contents)
file_write(cfgfile_srv, server_contents)
@@ -1283,6 +1289,8 @@ class TestSpawningThread(threading.Threa
args.append('--milestone-filter=' + options.milestone_filter)
if options.ssl_cert:
args.append('--ssl-cert=' + options.ssl_cert)
+ if options.http_proxy:
+ args.append('--http-proxy=' + options.http_proxy)
result, stdout_lines, stderr_lines = spawn_process(command, 0, 0, None,
*args)
@@ -1949,7 +1957,8 @@ def execute_tests(test_list, serial_only
# Build out the default configuration directory
create_config_dir(default_config_dir,
ssl_cert=options.ssl_cert,
- ssl_url=options.test_area_url)
+ ssl_url=options.test_area_url,
+ http_proxy=options.http_proxy)
# Setup the pristine repository
svntest.actions.setup_pristine_greek_repository()