Checkout Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* subversion/tests/cmdline/svntest/main.py (wait_on_pipe):

Accept any sequence of bytes even if it is not valid UTF-8 character

sequence.

Reported by: jcorvel

Tested by: jcorvel

Use safe bytes literals when set string values in working copy entries.

* subversion/tests/cmdline/entries-dump.c

(print_prefix): New function.

(str_value):

- Add argument to specify pool.

- Print human readable value of "value" as is in comment, then set it

as str value by using hex escaped bytes literal.

(entries_dump): Add pool argument to str_value() calls.

(main):

- Print "Entry" class definition as prefix before entry_dump() or tree_dump()

- Style fix on if statement (using blocks).

(): Add include files for assert() and svn_xml_escape_attr_cstring()

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

(run_entiresdump, run_entriesdump_tree): Move definition of "Entry" class

into generated code by entries-dump execution.

Review By: danielsh

  1. … 1 more file in changeset.
Increment the trunk version number to 1.15, and introduce a new CHANGES

section, following the creation of the 1.14.x release branch.

* subversion/include/svn_version.h,

subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,

subversion/tests/cmdline/svntest/main.py

(SVN_VER_MINOR): Increment to 15.

* CHANGES: New section for 1.15.0.

  1. … 3 more files in changeset.
Increment the trunk version number to 1.14, and introduce a new CHANGES

section, following the creation of the 1.13.x release branch.

* subversion/include/svn_version.h,

subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,

subversion/tests/cmdline/svntest/main.py

(SVN_VER_MINOR): Increment to 14.

* CHANGES: New section for 1.14.0.

  1. … 3 more files in changeset.
Increment the trunk version number to 1.13, and introduce a new CHANGES

section, following the creation of the 1.12.x release branch.

* subversion/include/svn_version.h,

subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,

subversion/tests/cmdline/svntest/main.py

(SVN_VER_MINOR): Increment to 13.

* CHANGES: New section for 1.13.0.

  1. … 3 more files in changeset.
Consolidate duplicate testing infrastructure code.

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

(write_restrictive_svnserve_conf): Add separate_groups_db flag to decide if

the groups definitions will be in a separate file. Also reformat the code

to make the structure of the generated configuration file more readable.

(write_restrictive_svnserve_conf_with_groups): Just call ^^^.

Add a test to check if our client works with GitHub's SVN bridge.

Because testing this involves connecting to a remote server, which our

test suite did not do up to now, the new test is skipped unless such

remote connections are explicitly allowed in the test run.

* Makefile.in (check): Add new option ALLOW_REMOTE_HTTP_CONNECTION.

* build/run_tests.py: Update docstring.

(create_parser): Add option --allow-remote-http-connection.

(TestHarness._init_py_tests): Propagate the option to test fixtures.

* subversion/tests/cmdline/dav_tests.py

(connect_to_github_server): New test case.

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

(is_remote_http_connection_allowed): New predicate function.

(_create_parser): Add option --allow-remote-http-connection.

(TestSpawningThread.run_one): Propagate the option to subprocesses.

  1. … 3 more files in changeset.
Following up to r1845750, adjust the trojan tree to fix test failures.

* subversion/tests/cmdline/svntest/main.py (trojan_state):

- Remove 'D/tau@.' because it can't be created on Windows.

- Remove 'G/rho@_' because it's redundant with 'G/_@gamma'..

- Add '@@' and 'A/@@' to test double-@ parsing.

Teach our cmdline tests to optionally use a different kind of

repository layout than the classic greek tree.

The greek tree is not really suitable for testing peg revision parsing in

the client, since it has no files or directories with an @-sign in the

names. The new repository layout (called the trojan tree, heh heh) can be

selected at sandbox build time by each test case individually.

Note that we do not keep precooked versions of the trojan tree for FSFS

version compatibility tests, since its primary purpose is testing client

operations in the working copy.

[In subversion/tests/cmdline]

* davautocheck.sh: Add a <Location> to access the pristine trojan tree.

* pegrev_parse_tests.py

(do_move_with_at_signs): Use the trojan tree for the tests.

* svntest/actions.py

(_setup_pristine_repo): New; extracted from setup_pristine_greek_repository.

(setup_pristine_repositories): Renamed fom setup_pristine_greek_repository.

Build both the greek and the trojan pristine repositories. Update callers.

(_guarantee_repos): New; extracted from guarantee_greek_repository.

(guarantee_greek_repository): Just call _guarantee_repos.

(guarantee_trojan_repository): New.

(make_repo_and_wc): Add 'tree' parameter to select the greek or trojan tree.

* svntest/main.py:

(Item): Imported StateItem from svntest.wc.

(_item): Remove previsous alias for StateItem.

(pristine_trojan_repos_url,

pristine_trojan_repos_dir, trojan_dump_dir): New global variables.

(greek_state): Use Item instead of _item in initializer.

(trojan_state): New.

(execute_tests): Calculate the pristine_trojan_repos_url.

* svntest/sandbox.py

(Sandbox._set_name): Add 'tree' parameter to select the greek or trojan tree.

(Sandbox.build): Likewise, making 'greek' the default.

  1. … 4 more files in changeset.
* subversion/tests/cmdline/svntest/main.py

(_create_parser): Add a breadcrumb for future archaeologists. (The docstring

doesn't actually explain what the switch _does_.)

Increment the trunk version number to 1.12, and introduce a new CHANGES

section, following the creation of the 1.11.x release branch.

* subversion/include/svn_version.h,

subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,

subversion/tests/cmdline/svntest/main.py

(SVN_VER_MINOR): Increment to 12.

* CHANGES: New section for 1.12.0.

  1. … 3 more files in changeset.
* subversion/tests/cmdline/svnadmin_tests.py

(recover_prunes_rep_cache_when_enabled,

recover_prunes_rep_cache_when_disabled): Update SkipUnless.

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

(python_sqlite_can_read_our_db): Rename to...

(python_sqlite_can_read_our_wc_db): ... this.

(is_fs_type_fsfs_and_sqlite_can_read_our_db): Remove function.

(python_sqlite_can_read_without_rowid): New function.

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

(python_sqlite_can_read_wc): Update caller.

  1. … 2 more files in changeset.
Another attempt at properly skipping a few tests that certain

configurations can't handle.

* cmdline/svnadmin_tests.py

(recover_prunes_rep_cache_when_enabled,

recover_prunes_rep_cache_when_disabled): Use single SkipUnless

* cmdline/svntest/main.py

(python_sqlite_can_read_our_db,

is_fs_type_fsfs_and_sqlite_can_read_our_db): New functions based on...

* cmdline/svntest/wc.py

(python_sqlite_can_read_wc): ... this function, which is now a proxy.

  1. … 2 more files in changeset.
In the test suite: replace 'open().write()' with a 'with' construct.

The form 'with open() as f: f.write()' is nowadays recommended.

This may fix test failures we were seeing on MacOSX in shelf_tests.py

test 15 and perhaps test 12.

* subversion/tests/cmdline/*_tests.py

Use 'with' form instead of 'open().write()'.

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

(file_write): Same, and also for 'codecs.open().write()'.

(file_substitute): Same.

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

(Sandbox._ensure_authz): Same.

  1. … 16 more files in changeset.
* subversion/tests/cmdline/svntest/main.py

(open_pipe): Run Python tests under the same Python executable for

all platforms rather than just Win32 (rather than finding one from

$PATH via /usr/bin/env).

Reviewed by: brane

Return a better error message when connecting to an URL on a server

that does not implement the DAV protocol.

* subversion/libsvn_ra_serf/options.c

(options_context_t): New member received_dav_header.

(capabilities_headers_iterator_callback):

Set it if the HTTP response contains the DAV: header.

(options_response_handler):

Bail out early with a specific message if the server doesn't support DAV.

* subversion/tests/cmdline/dav_tests.py: New test fixture.

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

(other_dav_root_dir, non_dav_root_dir): New global variable.

(execute_tests): Initialize other_dav_root_dir and non_dav_root_dir.

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

(setup_pristine_greek_repository):

Create the directories for other_dav_root_dir and non_dav_root_dir.

* subversion/tests/cmdline/davautocheck.sh:

Load mod_dav_fs and configure httpd for dav_tests.py.

  1. … 4 more files in changeset.
Allow testsuite setting such as FSFS_SHARDING=3 to apply to FSX repositories.

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

(_post_create_repos): Allow FSFS settings to apply to FSX.

* subversion/tests/cmdline/svnadmin_tests.py

(fsfs_file): Handle FSX repositories.

(verify_denormalized_names): Don't special case FSX repositories.

  1. … 1 more file in changeset.
Make the build/run_tests.py --bin option work with the --parallel option.

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

(TestSpawningThread): Don't forget to pass the --bin option to sub-processes.

Follow up on r1818577: Make tests pass without GLOBAL_SCHEDULER.

run_tests.py must run the test sub-suites with the original parameter set

instead of the tweaked one. Hence, tweak the parameters only immediately

before exectuting the tests.

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

(parse_options): Factor out the server version tweaks ...

(tweak_options_for_precooked_repos): ... into this function.

(execute_tests): Update caller.

Fix a systematic error with the server version checking in our tests.

The key here is to peg the actual server version used and seperate it

from the restrictions imposed by things like FSFS versions.

This fixes fsfs-v3 and fsfs-v4 tests.

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

(server_has_revprop_commit,

server_authz_has_aliases,

server_gets_client_capabilities,

server_has_partial_replay,

server_enforces_date_syntax,

server_has_atomic_revprop,

server_has_reverse_get_file_revs): Use pegged server capabilities.

(ServerCaps): New struct describing server capabilities.

(parse_options): Peg server capabilities before tweaking the apparent

server version.

Increment the trunk version number, and introduce a new CHANGES

section for the upcoming 1.11.0 release.

c: [skip]

* subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,

subversion/include/svn_version.h (SVN_VER_MINOR),

subversion/tests/cmdline/svntest/main.py (SVN_VER_MINOR):

Increment version number.

* CHANGES: New section for 1.11.0.

  1. … 3 more files in changeset.
Fix test expectations for rep sharing with BDB.

BDB *does* support rep sharing as well, so test it. The only difference

to FSFS and FSX is that there is no metadata verification.

This fixes the test failures as of r1816967 with BDB.

* subversion/tests/cmdline/svnadmin_tests.py

(verify_windows_paths_in_repos,

verify_denormalized_names): BDB never performs metadata verification.

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

(fs_has_rep_sharing): Rep sharing is available for all backends since 1.6.

  1. … 1 more file in changeset.
Fix test expectations regarding dump files for repositories that don't

store SHA1 checksums.

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

(fs_has_sha1): New capability check function.

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

(DumpParser): Set SHA1 values to None when asked to.

(compare_dump_files): Don't expect SHA1 values for old repo formats.

  1. … 1 more file in changeset.
Follow-up to r1816949:

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

(parse_options): FSFS v4 has been released in svn 1.6.

In our test suite, use more generic code to support old FSFS versions.

Over ra_svn, 76 test are failing for fsfs-v1, 70 for v2 and 21 for v3,

while v4, v6 and v7 pass.

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

(parse_options): Replace the ever-growing 'if' chain by a one generic

check using a simple Python dict.

Following up on r1816402, match the server minor version (9) to the newly

available fsfs prepackaged repositories of format 7.

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

(parse_options): Add a check for fsfs_version = 7.

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.
Following up on r1803639, allow using the new fsfs 'compression'

config option in formats >= 4, instead of enabling it just for format 8.

This is similar to how other existing ([deltification], 'compression-level')

options currently work, and should make the configuration easier by not

splitting the ways to configure compression based on the format numbers.

See the related discussion in:

https://lists.apache.org/thread.html/bfab57fceef8d6bea6573d1ad4b04ea2bb3bcd28c6144453e8752978@%3Ccommits.subversion.apache.org%3E

* subversion/libsvn_fs_fs/fs_fs.c

(read_config): Parse and use the 'compression' option for filesystem

formats >= 4. Prohibit using LZ4 compression in formats that do not

support it.

(write_config): Add the relevant note to the documentation.

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

(parse_options): Remove the validation for --fsfs-compression that

only allowed using it with --server-minor-version=10.

  1. … 1 more file 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.
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.