win-tests.py

Checkout Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Make it possible to run tests with FSFS directory deltification disabled.

* Makefile.in: Add FSFS_DIR_DELTIFICATION option for 'make check'.

* build/run_tests.py:

(usage): Document --fsfs-dir-deltification option.

(TestHarness, create_parser): Add --fsfs-dir-deltification option.

* subversion/tests/cmdline/svntest/main.py

(_post_create_repos): Set the enable-dir-deltification parameter

in fsfs.conf if the --fsfs-dir-deltification option was provided.

(TestSpawningThread, _create_parser): Add --fsfs-dir-deltification.

* win-tests.py: Add --fsfs-dir-deltification option.

  1. … 3 more files in changeset.
fsfs: Introduce new 'compression' config option.

This option allows explicitly specifying the compression algorithm for

format 8 repositories. It deprecates the previously used 'compression-level'

option. The syntax of the new option is:

compression = none | lz4 | zlib | zlib-1 ... zlib-9

See the related discussion in:

https://lists.apache.org/thread.html/40650a309d8ff041adbb62e8ffe19cc3990b9098a032db932fabd170@%3Cdev.subversion.apache.org%3E

* subversion/libsvn_fs_fs/fs.h

(CONFIG_OPTION_COMPRESSION): New.

(compression_type_t): New.

(fs_fs_data_t): Add field to store the delta compression type.

* subversion/libsvn_fs_fs/fs_fs.c

(write_config): Revamp the section describing delta compression.

(parse_compression_option): New helper function.

(read_config): Parse the new 'compression' option when working with

newer formats, with a possible fall back to 'compression-level' in

case it's specified explicitly. In order to always have appropriate

and usable compression settings in ffd, move the part of the code that

disables compression when only svndiff0 is supported from ...

* subversion/libsvn_fs_fs/transaction.c

(txdelta_to_svndiff): ...this function. Adjust this function to select

the appropriate svndiff version, depending on the options.

* win-tests.py

(): Rename 'fsfs_compression_level' to 'fsfs_compression'.

(_usage_exit): Adjust usage text.

* build/run_tests.py

(): Update usage comment.

(_init_py_tests): Pass the option as string, not int.

(create_parser): Parse the option as string, not int.

* subversion/tests/cmdline/svntest/main.py

(parse_options): Only allow using the --fsfs-compression option with

--server-minor-version >= 10.

(_create_parser): Parse the option as string, not int.

(run_one): Pass the option as string, not int.

(_post_create_repos): Update the code that adjusts fsfs.conf.

  1. … 5 more files in changeset.
Make sure the Windows test driver doesn't use an undefined variable.

* win_tests.py (failed): Define the variable in the global scope.

Complain if the --swig option got an invalid value.

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.

  1. … 3 more files in changeset.
Allow setting up Apache Httpd with mod_deflate enabled when running

our testsuite on Windows.

* win-tests.py

(): Document --mod-deflate and parse it.

(Httpd): Write values in config file when requested.

(): Update caller.

Enable global scheduler support in the Windows testrunner.

Apply some tweaks used for http/2 testing.

* win-tests.py

Add argument, parse argument, pass argument.

Tweak generated httpd config.

* win-tests.py

(Svnserve.start): Pass the SVN_DBG_STACKTRACES_TO_STDERR environment

variable to svnserve.exe to get more information on crashes on testruns.

Following up on r1710707 and r1709585 extend the httpd configuration file

a tiny bit.

* win-tests.py

(Httpd): Disable ssl2 and ssl3. Explicitly enable h2direct for http/2.

Allow setting up Apache Httpd with http/2 enabled when running our testsuite

on Windows.

* win-tests.py

(): Document --https and --http2. Parse --http2.

(Httpd):Write values in config file when requested.

(): Update caller.

Following up on r1349699, make the windows testrunner capable of setting up

httpd for running tests over https, just like the *nix scripts can.

* subversion/tests/cmdline/svntest/main.py

(trust_ssl_cert): Write file as binary to fix byte lengths stored in the

file.

* win-tests.py

(imports): Import re.

(): Add --https option. Update url calculation.

(Httpd): Add two arguments to allow setting up ssl. Calculate extra paths.

Create certfiles if needed. Write additional config lines.

(Httpd._create_cert_files): New function.

(): Set certfile if we setup the server with our own cert.

  1. … 1 more file in changeset.
Following up on r1700215, unbreak the test runner's compabitility mode.

For instance, make check SERVER_MINOR_VERSION=8 used to error out

like this:

Traceback (most recent call last):

File "./build/run_tests.py", line 789, in <module>

main()

File "./build/run_tests.py", line 782, in main

failed = th.run(args[2:])

File "./build/run_tests.py", line 322, in run

self._init_c_tests()

File "./build/run_tests.py", line 196, in _init_c_tests

self.opts.server_minor_version)

TypeError: cannot concatenate 'str' and 'int' objects

* build/run_tests.py

(TestHarness._init_c_tests): Use %d format for the minor version value,

as we already do in _init_py_tests().

* win-tests.py:

(): Convert the minor version value to integer, as we'll then be passing

it to TestHarness.__init__() that expects an int.

  1. … 1 more file in changeset.
Correctly propagate the log level through the multiple layers of test

suite infrastructure and make sure the default log level is the same

on all platforms and across all types of tests.

* build/run_tests.py

(create_parser): Make the --verbose option behave exactly as in the

Python test drivers: i.e., set the log level to DEBUG.

(TestHarness._init_c_tests): Pass --verbose to the C tests if the

log level is DEBUG or less (that is, more verbose).

(TestHarness._init_py_tests): Never send the --verbose option to the

Python test driver; always use --set-log-level.

* subversion/tests/cmdline/svntest/main.py

(TestSpawningThread.run_one): Likewise, tell the testcase subprocess

what the actual log level is instead of passing -v (--verbose).

* Makefile.in

(check): Do not make tests logs verbose by default.

* win-tests.py:

Make the -v/--verbose option set the log level to DEBUG.

(_usage_exit): Deprecate the -q/--quiet option as it is now a no-op.

  1. … 3 more files in changeset.
Follow up to 1700215: Fix bugs in the Windows test driver.

* win_tests.py: Don't make tuples out of option values.

Make sure that test suite options are initialized consistently

and in one place only. This removes code duplication between

run_tests.py and the Python tests, for example.

* build/run_tests.py

(SVN_VER_MINOR): Remove; duplicate of svntest.main.SVN_VER_MINOR.

(svntest): New. Placeholder for the imported svntest module.

(TestHarness.__init__): Remove all keyword arguments that are just

copies of program options and use the options struct instead.

Update all references to 'self' attributes with 'self.opts'.

(TestHarness._init_c_tests): New; construct the command line for the C tests.

(TestHarness._init_py_tests): New; initialize the Python test options by

constructing command-line args and using the options parser in

svntest.main to parse them. Althgough this appears to be a roundabout

way to set up the options structure, it removes a bunch of code

duplication for validating and canonicalizing the test options.

(TestHarness.run): Initialize C and Python test options exactly once

per test run, so that individual tests don't repeat the same

initialization and module import over and over again.

(TestHarness._run_c_test): Use the pre-cooked command line and options.

(TestHarness._run_py_test): Likewise.

(TestHarness._split_nums): Remove; unused.

(TestHarness._run_test): Use prepared test case parameters.

(create_parser): New. Use the optparse module to construct a parser

for the program options.

(main): Replace getopt-based parsing with optparse-based parser from

create_parser().

* subversion/tests/cmdline/svntest/main.py

(create_default_options): Remove; unused.

(_create_parser): Accept an optional usage string.

Add a new option, --parallel-instances, to allow run_tests.py to pass

the actual number of requested parallel test threads.

(parse_options): Renamed from _parse_options.

(execute_tests): Since svntest.main.options are now initialized only

once per test run, be sure to restore the 'parallel' flag between

individual test fixture invocations.

* win-tests.py: Update the initialization of the TestHarness class,

using the new run_tests.create_parser function to prepare default

options.

  1. … 2 more files in changeset.
Fix CVE-2015-3184: Have mod_authz_svn use ap_hook_force_authn where available.

* subversion/mod_authz_svn/mod_authz_svn.c

(access_checker): Support ap_force_authn_hook.

(force_authn): New.

(register_hooks): Register force_authn.

* build/ac-macros/apache.m4: Add --enable-broken-httpd-auth.

* subversion/tests/cmdline/mod_authz_svn_tests.py: New.

* subversion/tests/cmdline/svntest/main.py

(is_httpd_authz_provider_enabled): New.

* subversion/tests/cmdline/davautocheck.sh,

subversion/tests/cmdline/README,

win_tests.py: Add configuration for new tests.

  1. … 6 more files in changeset.
* win-tests.py

Add support for optionally starting and stopping memcached, like how

win-test already supports this for httpd.

Make it a bit easier to test the memcached support from the cache C tests

and fix a few Windows testsuite runner problems in recent changes.

* build/run_tests.py

(_run_c_test): Pass --memcached-server if available.

* subversion/tests/libsvn_subr/cache-test.c

(create_memcache): New function.

(test_memcache_basic,

test_memcache_long_key): Use create_memcache.

* subversion/tests/svn_test.h

(svn_test_opts_t): Add option.

* subversion/tests/svn_test_main.c

(test_options_e): Add value.

(cl_options): Declare option.

(svn_test_main): Parse option.

* win-tests.py

(): Following up on r1674783, add missing ',' to separate arguments

and parse the right argument names.

  1. … 4 more files in changeset.
* win-tests.py

Add support for the --exclusive-wc-locks, --memcached-server, --skip-c-tests

and --dump-load-cross-check arguments to the Windows test runner. This just

handles the arguments as the testrunner already implemented support for all

of these.

* win-tests.py

(start): Add an stdout, stderr fflush to avoid the output of htpasswd being

shown sometime after starting the first test.

* win-tests.py

(_create_users_file): Following up on r1657307, add new standard user.

* win-tests.py

Following up on r1671113, pass the cleanup flag to the JavaHL test runner.

Apply the standard pre-branch whitespace cleanup via

tools/dev/remove-trailing-whitespace.zsh

There should be no functional changes.

* .ycm_extra_conf.py

* build/generator/gen_win.py

* build/generator/gen_win_dependencies.py

* subversion/bindings/javahl/native/EditorProxy.h

* subversion/bindings/javahl/native/StateReporter.cpp

* subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/bindings/swig/ruby/test/test_fs.rb

* subversion/bindings/swig/ruby/test/util.rb

* subversion/bindings/swig/ruby/test/windows_util.rb

* subversion/include/private/svn_fs_fs_private.h

* subversion/include/private/svn_packed_data.h

* subversion/include/private/svn_repos_private.h

* subversion/include/private/svn_sorts_private.h

* subversion/include/private/svn_subr_private.h

* subversion/include/private/svn_wc_private.h

* subversion/include/svn_auth.h

* subversion/include/svn_cache_config.h

* subversion/include/svn_client.h

* subversion/include/svn_cmdline.h

* subversion/include/svn_diff.h

* subversion/include/svn_fs.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

* subversion/include/svn_repos.h

* subversion/include/svn_string.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/svndiff.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/id.c

* subversion/libsvn_fs_fs/index.c

* subversion/libsvn_fs_fs/index.h

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/rev_file.c

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/stats.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/dag.h

* subversion/libsvn_fs_x/fs.h

* subversion/libsvn_fs_x/fs_id.c

* subversion/libsvn_fs_x/fs_x.c

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/lock.h

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/rev_file.c

* subversion/libsvn_fs_x/revprops.c

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/tree.c

* subversion/libsvn_fs_x/util.c

* subversion/libsvn_fs_x/verify.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz_pool.c

* subversion/libsvn_repos/config_pool.c

* subversion/libsvn_repos/dump.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_subr/bit_array.c

* subversion/libsvn_subr/cache-membuffer.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/fnv1a.c

* subversion/libsvn_subr/gpg_agent.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/object_pool.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/sqlite.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/sysinfo.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/x509info.c

* subversion/libsvn_wc/diff.h

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc.h

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/mod_dav_svn.c

* subversion/mod_dav_svn/status.c

* subversion/svn/auth-cmd.c

* subversion/svn/info-cmd.c

* subversion/svn/mergeinfo-cmd.c

* subversion/svn/notify.c

* subversion/svn/propget-cmd.c

* subversion/svn/svn.c

* subversion/svnadmin/svnadmin.c

* subversion/svnserve/logger.c

* subversion/svnserve/serve.c

* subversion/svnserve/server.h

* subversion/svnserve/svnserve.c

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/checkout_tests.py

* subversion/tests/cmdline/commit_tests.py

* subversion/tests/cmdline/export_tests.py

* subversion/tests/cmdline/externals_tests.py

* subversion/tests/cmdline/lock_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/merge_tree_conflict_tests.py

* subversion/tests/cmdline/move_tests.py

* subversion/tests/cmdline/redirect_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

* subversion/tests/libsvn_client/client-test.c

* subversion/tests/libsvn_client/mtcc-test.c

* subversion/tests/libsvn_fs/fs-test.c

* subversion/tests/libsvn_fs/locks-test.c

* subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

* subversion/tests/libsvn_fs_x/fs-x-pack-test.c

* subversion/tests/libsvn_fs_x/string-table-test.c

* subversion/tests/libsvn_ra/ra-test.c

* subversion/tests/libsvn_subr/cache-test.c

* subversion/tests/libsvn_subr/checksum-test.c

* subversion/tests/libsvn_subr/config-test.c

* subversion/tests/libsvn_subr/io-test.c

* subversion/tests/libsvn_subr/packed-data-test.c

* subversion/tests/libsvn_subr/priority-queue-test.c

* subversion/tests/libsvn_subr/sqlite-test.c

* subversion/tests/libsvn_subr/string-test.c

* subversion/tests/libsvn_subr/subst_translate-test.c

* subversion/tests/libsvn_subr/x509-test.c

* subversion/tests/libsvn_wc/op-depth-test.c

* subversion/tests/svn_test_main.c

* tools/dev/benchmarks/RepoPerf/copy_repo.py

* tools/dev/benchmarks/RepoPerf/win_repo_bench.py

* tools/dev/build-svn-deps-win.pl

* tools/dev/fsfs-access-map.c

* tools/dev/po-merge.py

* tools/dev/x509-parser.c

* tools/diff/diff.c

* tools/dist/backport.pl

* tools/dist/backport_tests.py

* tools/hook-scripts/mailer/mailer.py

* tools/server-side/svnpubsub/daemonize.py

* win-tests.py

Remove unneeded whitespace via script.

  1. … 184 more files in changeset.
* win-tests.py

(perl, python, ruby): Add a flush of stdout before invoking testrunners.

* win-tests.py

(perl tests): Properly report success, instead of always exiting early.

* win-tests.py

(javahl test runner): Apply -Xcheck:jni when running tests on debug binaries.

* win-tests.py

Define the list of tests when we know which filesystem we are going to test,

not before we know that.

* win-tests.py

(--javahl): Find java.exe via the sdk if it can't be found in $PATH. Skip

tests if java is not detected.

* win-tests.py

(Httpd.__init__): Obtain exact version instead of guessing via exists check.

In the Windows test runner: automatically copy additional apr dlls

(such as the apr-util crypto dll).

* win-tests.py

(locate_libs): When a dependency has additional binaries, copy these too.

* build/generator/gen_win_dependencies.py

(_find_apr,

_find_apr_util_and_expat): Find additional binaries and provide information

on them.

  1. … 1 more file in changeset.
* win-tests.py

(_svn_module): Use the httpd module from the location where it was copied to

when running out-of-tree tests on Windows.