You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ko...@apache.org on 2017/07/14 11:03:46 UTC
svn commit: r1801936 - in /subversion/trunk: Makefile.in build/run_tests.py
subversion/tests/cmdline/svntest/main.py win-tests.py
Author: kotkov
Date: Fri Jul 14 11:03:46 2017
New Revision: 1801936
URL: http://svn.apache.org/viewvc?rev=1801936&view=rev
Log:
Allow testing different fsfs compression levels in the test suite:
win-tests.py --fsfs-compression=N
make check FSFS_COMPRESSION=N
* Makefile.in
(check): Handle FSFS_COMPRESSION and pass it to the test suite.
* win-tests.py
(): Handle the new --fsfs-compression option.
(_usage_exit): Adjust usage text.
* build/run_tests.py
(): Update usage comment.
(_init_py_tests): Propagate the new fsfs_compression_level option.
(create_parser): Parse --fsfs-compression.
* subversion/tests/cmdline/svntest/main.py
(parse_options): Check new option value for sanity.
(_create_parser): Update to handle --fsfs-compression.
(run_one): Propagate --fsfs-compression option.
(_post_create_repos): Tweak this function to rewrite the compression
level in the fsfs.conf file. Merge this with the the already existing
logic that configures [memcached-servers]. Adjust the slightly outdated
docstring for this function.
Modified:
subversion/trunk/Makefile.in
subversion/trunk/build/run_tests.py
subversion/trunk/subversion/tests/cmdline/svntest/main.py
subversion/trunk/win-tests.py
Modified: subversion/trunk/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1801936&r1=1801935&r2=1801936&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Fri Jul 14 11:03:46 2017
@@ -585,6 +585,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
if test "$(MEMCACHED_SERVER)" != ""; then \
flags="--memcached-server $(MEMCACHED_SERVER) $$flags"; \
fi; \
+ if test "$(FSFS_COMPRESSION)" != ""; then \
+ flags="--fsfs-compression $(FSFS_COMPRESSION) $$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=1801936&r1=1801935&r2=1801936&view=diff
==============================================================================
--- subversion/trunk/build/run_tests.py (original)
+++ subversion/trunk/build/run_tests.py Fri Jul 14 11:03:46 2017
@@ -33,6 +33,7 @@
[--httpd-version=<version>] [--httpd-whitelist=<version>]
[--config-file=<file>] [--ssl-cert=<file>]
[--exclusive-wc-locks] [--memcached-server=<url:port>]
+ [--fsfs-compression=<n>]
<abs_srcdir> <abs_builddir>
<prog ...>
@@ -275,6 +276,8 @@ class TestHarness:
cmdline.append('--exclusive-wc-locks')
if self.opts.memcached_server is not None:
cmdline.append('--memcached-server=%s' % self.opts.memcached_server)
+ if self.opts.fsfs_compression_level is not None:
+ cmdline.append('--fsfs-compression=%d' % self.opts.fsfs_compression_level)
self.py_test_cmdline = cmdline
@@ -1023,6 +1026,9 @@ def create_parser():
help='Use sqlite exclusive locking for working copies')
parser.add_option('--memcached-server', action='store',
help='Use memcached server at specified URL (FSFS only)')
+ parser.add_option('--fsfs-compression', action='store', type='int',
+ dest="fsfs_compression_level",
+ help='Set compression level (for fsfs)')
parser.set_defaults(set_log_level=None)
return parser
Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1801936&r1=1801935&r2=1801936&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Fri Jul 14 11:03:46 2017
@@ -1010,10 +1010,11 @@ def file_substitute(path, contents, new_
fcontent = open(path, 'r').read().replace(contents, new_contents)
open(path, 'w').write(fcontent)
-# For setting up authz and hooks in existing repos
+# For setting up authz, hooks and making other tweaks to created repos
def _post_create_repos(path, minor_version = None):
- """Set default access right configurations for svnserve and mod_dav
- as well as hooks etc. in the SVN repository at PATH."""
+ """Set default access right configurations for svnserve and mod_dav,
+ install hooks and perform other various tweaks according to the test
+ options in the SVN repository at PATH."""
# Require authentication to write to the repos, for ra_svn testing.
file_write(get_svnserve_conf_file_path(path),
@@ -1036,16 +1037,26 @@ def _post_create_repos(path, minor_versi
if options.fs_type is None or options.fs_type == 'fsfs':
# fsfs.conf file
- if options.config_file is not None and \
- (not minor_version or minor_version >= 6):
- config_file = open(options.config_file, 'r')
- fsfsconf = open(get_fsfs_conf_file_path(path), 'w')
- for line in config_file.readlines():
- fsfsconf.write(line)
- if options.memcached_server and line == '[memcached-servers]\n':
- fsfsconf.write('key = %s\n' % options.memcached_server)
- config_file.close()
- fsfsconf.close()
+ if (minor_version is None or minor_version >= 6):
+ confpath = get_fsfs_conf_file_path(path)
+ if options.config_file is not None:
+ shutil.copy(options.config_file, confpath)
+
+ if options.memcached_server is not None or \
+ options.fsfs_compression_level is not None and \
+ os.path.exists(confpath):
+ with open(confpath, 'r') as conffile:
+ newlines = []
+ for line in conffile.readlines():
+ if line.startswith('# compression-level ') and \
+ options.fsfs_compression_level is not None:
+ line = 'compression-level = %d\n' % options.fsfs_compression_level
+ newlines += line
+ if options.memcached_server is not None and \
+ line == '[memcached-servers]\n':
+ newlines += ('key = %s\n' % options.memcached_server)
+ with open(confpath, 'w') as conffile:
+ conffile.writelines(newlines)
# format file
if options.fsfs_sharding is not None:
@@ -1726,6 +1737,8 @@ class TestSpawningThread(threading.Threa
args.append('--fsfs-version=' + str(options.fsfs_version))
if options.dump_load_cross_check:
args.append('--dump-load-cross-check')
+ if options.fsfs_compression_level:
+ args.append('--fsfs-compression=' + str(options.fsfs_compression_level))
result, stdout_lines, stderr_lines = spawn_process(command, 0, False, None,
*args)
@@ -2138,6 +2151,9 @@ def _create_parser(usage=None):
help='Use sqlite exclusive locking for working copies')
parser.add_option('--memcached-server', action='store',
help='Use memcached server at specified URL (FSFS only)')
+ parser.add_option('--fsfs-compression', action='store', type='int',
+ dest="fsfs_compression_level",
+ help='Set compression level (for fsfs)')
# most of the defaults are None, but some are other values, set them here
parser.set_defaults(
@@ -2187,6 +2203,10 @@ def parse_options(arglist=sys.argv[1:],
if options.fsfs_packing and not options.fsfs_sharding:
parser.error("--fsfs-packing requires --fsfs-sharding")
+ if options.fsfs_compression_level is not None and\
+ options.fsfs_compression_level not in range(0, 10):
+ parser.error("--fsfs-compression must be between 0 and 9")
+
if options.server_minor_version not in range(3, SVN_VER_MINOR+1):
parser.error("test harness only supports server minor versions 3-%d"
% SVN_VER_MINOR)
Modified: subversion/trunk/win-tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/win-tests.py?rev=1801936&r1=1801935&r2=1801936&view=diff
==============================================================================
--- subversion/trunk/win-tests.py (original)
+++ subversion/trunk/win-tests.py Fri Jul 14 11:03:46 2017
@@ -113,6 +113,7 @@ def _usage_exit():
print(" --config-file : Configuration file for tests")
print(" --fsfs-sharding : Specify shard size (for fsfs)")
print(" --fsfs-packing : Run 'svnadmin pack' automatically")
+ print(" --fsfs-compression=VAL : Set compression level to VAL (for fsfs)")
print(" -q, --quiet : Deprecated; this is the default.")
print(" Use --set-log-level instead.")
@@ -144,6 +145,7 @@ opts, args = my_getopt(sys.argv[1:], 'hr
'log-to-stdout', 'mode-filter=', 'milestone-filter=',
'ssl-cert=', 'exclusive-wc-locks', 'memcached-server=',
'skip-c-tests', 'dump-load-cross-check', 'memcached-dir=',
+ 'fsfs-compression=',
])
if len(args) > 1:
print('Warning: non-option arguments after the first one will be ignored')
@@ -189,6 +191,7 @@ memcached_server = None
memcached_dir = None
skip_c_tests = None
dump_load_cross_check = None
+fsfs_compression_level = None
for opt, val in opts:
if opt in ('-h', '--help'):
@@ -283,6 +286,8 @@ for opt, val in opts:
elif opt == '--memcached-dir':
memcached_dir = val
run_memcached = 1
+ elif opt == '--fsfs-compression':
+ fsfs_compression_level = int(val)
# Calculate the source and test directory names
abs_srcdir = os.path.abspath("")
@@ -1107,6 +1112,7 @@ if not test_javahl and not test_swig:
opts.memcached_server = memcached_server
opts.skip_c_tests = skip_c_tests
opts.dump_load_cross_check = dump_load_cross_check
+ opts.fsfs_compression_level = fsfs_compression_level
th = run_tests.TestHarness(abs_srcdir, abs_builddir,
log_file, fail_log_file, opts)
old_cwd = os.getcwd()