Checkout Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Make the C tests work with the --enable-optimize configure option.

Because the main() function used to be defined in libsvn_test,

the -flto option (which performs rather aggressive link-time

optimizations) would cause the linker to remove all "unreferenced"

static functions ... which includes all the actual tests.

Which this change, main() is now defined in each test driver.

* subversion/tests/svn_test.h

(test_funcs, svn_test_max_threads): Remove external declarations.

(svn_test_main): New prototype for the (existing-but-renamed) test driver.

(SVN_TEST_MAIN): Bolierplate macro that generates a main() implementation.

* subversion/tests/svn_test_main.c

(svn_test_main): Renamed from 'main', and takes two extra parameters,

'max_threads' and 'test_funcs'. Propagates test_funcs to get_array_size,

do_test_num and do_tests_concurrently.

(get_array_size, do_test_num,

test_params_t, test_thread, do_tests_concurrently): Require a test_funcs

parameter. All uses updated.

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

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

subversion/tests/libsvn_delta/random-test.c,

subversion/tests/libsvn_delta/window-test.c,

subversion/tests/libsvn_diff/diff-diff3-test.c,

subversion/tests/libsvn_diff/parse-diff-test.c,

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

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

subversion/tests/libsvn_fs_base/

subversion/tests/libsvn_fs_base/changes-test.c,

subversion/tests/libsvn_fs_base/fs-base-test.c,

subversion/tests/libsvn_fs_base/strings-reps-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_ra_local/ra-local-test.c,

subversion/tests/libsvn_repos/repos-test.c,

subversion/tests/libsvn_subr/auth-test.c,

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

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

subversion/tests/libsvn_subr/compat-test.c,

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

subversion/tests/libsvn_subr/crypto-test.c,

subversion/tests/libsvn_subr/dirent_uri-test.c,

subversion/tests/libsvn_subr/error-code-test.c,

subversion/tests/libsvn_subr/error-test.c,

subversion/tests/libsvn_subr/hashdump-test.c,

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

subversion/tests/libsvn_subr/mergeinfo-test.c,

subversion/tests/libsvn_subr/named_atomic-test.c,

subversion/tests/libsvn_subr/opt-test.c,

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

subversion/tests/libsvn_subr/path-test.c,

subversion/tests/libsvn_subr/prefix-string-test.c,

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

subversion/tests/libsvn_subr/revision-test.c,

subversion/tests/libsvn_subr/root-pools-test.c,

subversion/tests/libsvn_subr/skel-test.c,

subversion/tests/libsvn_subr/spillbuf-test.c,

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

subversion/tests/libsvn_subr/stream-test.c,

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

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

subversion/tests/libsvn_subr/time-test.c,

subversion/tests/libsvn_subr/translate-test.c,

subversion/tests/libsvn_subr/utf-test.c,

subversion/tests/libsvn_wc/conflict-data-test.c,

subversion/tests/libsvn_wc/db-test.c,

subversion/tests/libsvn_wc/entries-compat.c,

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

subversion/tests/libsvn_wc/pristine-store-test.c,

subversion/tests/libsvn_wc/wc-queries-test.c,

subversion/tests/libsvn_wc/wc-test.c:

(max_threads): Renamed from svn_test_max_threads and made static.

(test_funcs): Made static.

(SVN_TEST_MAIN): Expanded boilerplate main() function.

  1. … 54 more files in changeset.
Add "--parallel" option to our C tests.

Besides shaving off a few seconds off our total test execution time,

parallel execution also stresses our code and the tests themselves

harder. It uncovers things like improperly separated working sets

that make post-failure analysis harder.

Parallel mode is only available with APR 1.3+ and threads enabled.

The option will simply be ignored in other configurations. Further

limitations are cleanups being delayed to after all tests completed

and segfaults not being intercepted.

Some tests can't be executed in parallel. Therefore, we introduce

svn_test_max_threads a simple upper limit to the number of threads

supported that each test must define alongside the test_funcs array.

This patch sets it to "1" in many cases because the tests are so

small that multi-threaded execution is simply not worth it.

* build/run_tests.py

(TestHarness._run_c_test): Pass --parallel option to the individual

test applications.

* subversion/tests/svn_test.h

(svn_test_max_threads): Declare new external setting to be set by

every test application.

* subversion/tests/svn_test_main.c

(parallel): New command line option presence flag.

(parallel_opt,

cl_options): Declare the new "--parallel" option.

(svn_test_add_dir_cleanup): Synchronize shared pool access since

this might be called from multiple

threads at the same time.

(log_results): Result logger function factored out from do_test_num

to be shared between serialized and parallel test

execution code.

(do_test_num): Use that new function.

(test_params_t,

test_thread,

do_tests_concurrently): Threads, their parameter and the thread

starter for thread-pooled test execution.

(main): Handle the new option.

Call concurrent execution when in PARALLEL mode.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

(svn_test_max_threads): These tests don't support concurrent execution.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_delta/window-test.c

subversion/tests/libsvn_diff/parse-diff-test.c

subversion/tests/libsvn_ra_local/ra-local-test.c

subversion/tests/libsvn_ra/ra-test.c

subversion/tests/libsvn_subr/auth-test.c

subversion/tests/libsvn_subr/cache-test.c

subversion/tests/libsvn_subr/checksum-test.c

subversion/tests/libsvn_subr/compat-test.c

subversion/tests/libsvn_subr/config-test.c

subversion/tests/libsvn_subr/crypto-test.c

subversion/tests/libsvn_subr/dirent_uri-test.c

subversion/tests/libsvn_subr/error-code-test.c

subversion/tests/libsvn_subr/error-test.c

subversion/tests/libsvn_subr/hashdump-test.c

subversion/tests/libsvn_subr/mergeinfo-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

subversion/tests/libsvn_subr/opt-test.c

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

subversion/tests/libsvn_subr/path-test.c

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

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

subversion/tests/libsvn_subr/revision-test.c

subversion/tests/libsvn_subr/root-pools-test.c

subversion/tests/libsvn_subr/skel-test.c

subversion/tests/libsvn_subr/spillbuf-test.c

subversion/tests/libsvn_subr/sqlite-test.c

subversion/tests/libsvn_subr/stream-test.c

subversion/tests/libsvn_subr/string-test.c

subversion/tests/libsvn_subr/subst_translate-test.c

subversion/tests/libsvn_subr/time-test.c

subversion/tests/libsvn_subr/utf-test.c

subversion/tests/libsvn_wc/conflict-data-test.c

subversion/tests/libsvn_wc/wc-queries-test.c:

(svn_test_max_threads): These are too small to benefit from multi-threading.

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

subversion/tests/libsvn_diff/diff-diff3-test.c

subversion/tests/libsvn_fs_base/changes-test.c

subversion/tests/libsvn_fs_base/fs-base-test.c

subversion/tests/libsvn_fs_base/strings-reps-test.c

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

subversion/tests/libsvn_fs/fs-test.c

subversion/tests/libsvn_fs/locks-test.c

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

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

subversion/tests/libsvn_repos/repos-test.c

subversion/tests/libsvn_subr/io-test.c

subversion/tests/libsvn_subr/translate-test.c

subversion/tests/libsvn_wc/db-test.c

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

subversion/tests/libsvn_wc/wc-test.c

(svn_test_max_threads): Set concurrency limit to whatever various test

runs suggested as the most efficient value.

* subversion/tests/libsvn_wc/entries-compat.c

subversion/tests/libsvn_wc/pristine-store-test.c

(svn_test_max_threads): Set concurrency limit to "unbounded".

  1. … 54 more files in changeset.
Correct some peg-revision-parsing documentation and update the tests to

include all the documented examples.

* subversion/include/svn_opt.h

(svn_opt_parse_path): Correct the documented result in three of the

examples.

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

(test_parse_peg_rev): Add the remaining five documented examples as test

cases, including two of the three that were wrongly documented. Also, in

the cases where an error is expected, write '-1' instead of

'svn_opt_revision_unspecified' in the 'expected revision' column to show

more clearly that this column is not relevant.

  1. … 1 more file in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.

* NOTICE:

Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.

* LICENSE: New.

* COPYING,

subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
Replace deprecated test func macros in the C tests. This eliminates the need

to do the following dance in every test function:

*msg = "foo";

if (msg_only)

return SVN_NO_ERROR;

This does not remove the deprecated symbols from svn_test.h; I plan to do it

in a follow up commit.

[ in subversion/tests ]

* libsvn_client/client-test.c,

libsvn_delta/random-test.c,

libsvn_delta/range-index-test.h,

libsvn_delta/window-test.c,

libsvn_diff/diff-diff3-test.c,

libsvn_diff/parse-diff-test.c,

libsvn_fs/fs-test.c,

libsvn_fs/locks-test.c,

libsvn_fs_base/changes-test.c,

libsvn_fs_base/fs-base-test.c,

libsvn_fs_base/key-test.c,

libsvn_fs_base/strings-reps-test.c,

libsvn_fs_fs/fs-pack-test.c,

libsvn_ra_local/ra-local-test.c,

libsvn_repos/repos-test.c,

libsvn_subr/auth-test.c,

libsvn_subr/cache-test.c,

libsvn_subr/checksum-test.c,

libsvn_subr/compat-test.c,

libsvn_subr/config-test.c,

libsvn_subr/dirent_uri-test.c,

libsvn_subr/error-test.c,

libsvn_subr/hashdump-test.c,

libsvn_subr/mergeinfo-test.c,

libsvn_subr/opt-test.c,

libsvn_subr/path-test.c,

libsvn_subr/revision-test.c,

libsvn_subr/skel-test.c,

libsvn_subr/stream-test.c,

libsvn_subr/string-test.c,

libsvn_subr/target-test.c,

libsvn_subr/time-test.c,

libsvn_subr/translate-test.c,

libsvn_subr/utf-test.c,

libsvn_wc/tree-conflict-data-test.c:

Do the above described transformation.

  1. … 34 more files in changeset.
Do some syntax jigglin' and jugglin' to satisfy strict C89 compilers.

* subversion/libsvn_subr/cache-memcache.c

(svn_cache__create_memcache): Individually set a function pointer

and a baton pointer to 0 instead of NULL.

* subversion/libsvn_subr/dirent_uri.c

(path_type_t): Lose comma after last enum value. Works for Python,

not for ANSI C.

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

(test_svn_opt_args_to_target_array2): Initialize stack-allocated

structures that have non-static member values to { 0 }, then

populate their members explicitly post-declaration.

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

(test_args_to_target_array): Same.

* subversion/svn/util.c

(svn_cl__merge_file_externally): Same.

* subversion/libsvn_wc/deprecated.c

(svn_wc_walk_entries2): Same.

* subversion/libsvn_client/deprecated.c

(svn_client_status3): Same.

* subversion/libsvn_client/mergeinfo.c

(svn_client__elide_mergeinfo_catalog): Same.

* subversion/libsvn_client/merge.c

(merge_file_changed, get_mergeinfo_paths): Same.

* subversion/libsvn_client/log.c

(svn_client__get_copy_source): Same.

* subversion/libsvn_fs_fs/fs_fs.c

(svn_fs_fs__pack): Same.

Patch by: Matthew Woehlke <mw_triad{_AT_}users.sourceforge.net>

(Tweaked by me.)

  1. … 10 more files in changeset.
Disable deprecation warnings during compilation of tests.

* subversion/tests/svn_test.h

  (SVN_DEPRECATED): Define as empty definition when

SVN_ENABLE_DEPRECATION_WARNINGS_IN_TESTS isn't defined.

* subversion/tests/libsvn_delta/random-test.c:

* subversion/tests/libsvn_delta/svndiff-test.c:

* subversion/tests/libsvn_delta/vdelta-test.c:

* subversion/tests/libsvn_diff/diff-diff3-test.c:

* subversion/tests/libsvn_fs_base/changes-test.c:

* subversion/tests/libsvn_fs_base/fs-base-test.c:

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

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

* subversion/tests/libsvn_repos/repos-test.c:

* subversion/tests/libsvn_subr/hashdump-test.c:

* subversion/tests/libsvn_subr/opt-test.c:

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

* subversion/tests/libsvn_subr/translate-test.c:

* subversion/tests/svn_test_fs.c: Include svn_test.h before other Subversion

   headers.

Suggested by: hwright

  1. … 14 more files in changeset.
Housekeeping: In the spirit of r27598, remove trailing whitespace in

our repository.

for extsn in c h cpp java py pl rb; do

find . -name "*.$extsn" | xargs perl -pi.bak -e 'next if /^\f$/; s/\s+$/\n/'

done

(This touches files in various and sundry parts of the tree, which I shan't

enumerate here.)

  1. … 175 more files in changeset.
Fix issue #3012, running 'svn propget foo .@HEAD' will abort with a

non-canonical path assertion.

* subversion/libsvn_subr/opt.c

(svn_opt_args_to_target_array2):

Before doing any work with a target path or URL, find the peg

revision, if any, and remove it from the target, then append it

back after all the processing is complete.

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

(test_svn_opt_args_to_target_array2):

New test case to check that svn_opt_args_to_target_array2()

returns the correct results.

(test_funcs):

Add test_svn_opt_args_to_target_array2() to this array.

  1. … 1 more file in changeset.
Fix an inconsistency in svn_opt_parse_path() with using a trailing @

to protect a @ earlier in the path or URL. Currently:

svn_opt_parse_path("foo/bar") returns svn_opt_revision_unspecified

svn_opt_parse_path("http://host/foo") returns svn_opt_revision_unspecified

but

svn_opt_parse_path("foo/bar@") returns svn_opt_revision_base

svn_opt_parse_path("http://host/foo@") returns svn_opt_revision_head

For consistency, the latter two should return svn_opt_revision_unspecified.

* subversion/libsvn_subr/opt.c

(svn_opt_parse_path):

Return svn_opt_revision_unspecified when a @ is used to protect an

earlier @.

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

(test_parse_peg_rev):

Check that "foo/bar@" returns svn_opt_revision_unspecified.

  1. … 1 more file in changeset.
For relative externals, svn_opt_parse_path() needs to return the input

path minus the trailing peg revision specification regardless of

canonicalization; for example, the scheme relative URL

//hostname/path@HEAD needs to retain the //, as changing it to a /

leads to a server root relative URL.

Currently svn_opt_parse_path() canonicalizes all input, even though

the public documentation API does not state that. Change the code to

not canonicalize and also to reflect the documentation better.

I checked all callers of svn_opt_parse_path() and they canonicalize

the path to to svn_opt_parse_path() before calling it, except for

svn_wc_parse_externals_description3(), which will need the

uncanonicalized form anyway for relative externals.

* subversion/include/svn_opt.h

(svn_opt_parse_path):

Add documentation that the function does not require a

canonicalized path and does no canonicalization.

Update the example output for a string.

* subversion/libsvn_subr/opt.c

(svn_opt_parse_path):

Do not canonicalize the input path.

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

(test_parse_peg_rev):

Update the output for an input "foo/bar/@13".

  1. … 2 more files in changeset.
Channeling Erik Hülsmann, remove all trailing whitespace within our source

tree:

for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`

done

Inspired by: ehu

  1. … 449 more files in changeset.
Reformat the code to use a consistent no-space-before-param-list-paren style.

See here for the vote that decided this:

http://subversion.tigris.org/servlets/ReadMsg?list=dev&msgNo=111877

From: "Peter N. Lundblad" <peter@famlundblad.se>

To: "Peter N. Lundblad" <peter@famlundblad.se>

cc: dev@subversion.tigris.org

Subject: Results of: [VOTE] New space-before-parens style

Date: Wed, 8 Feb 2006 12:00:35 +0100 (CET)

Message-ID: <Pine.LNX.4.55.0602080918350.10805@localhost.localdomain>

I took the opportunity to make spacing among all parens in SVN_ERR

macro calls consistent. But I did not address consistency of casts,

nor whether a function name should always appear below its return type

in declarations and definitions, nor whether there should be a space

before/after the "*" when declaring pointer return types.

* www/hacking.html

(coding-style): Document that we are no-space-before-paren now.

* everywhere: Reformat.

  1. … 365 more files in changeset.
Enable two build generator include dep warnings that I recently added disabled.

Add comment explaining their purpose.

Consistify usage of #include <foo.h> vs. "foo.h" throughout the project.

* build/generator/gen_base.py: Enable warnings, add comment.

* build/generator/gen_base.py:

* subversion/libsvn_fs_base/lock.c:

* subversion/include/svn_ra_svn.h:

* subversion/libsvn_subr/xml.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/nls.c:

* subversion/libsvn_subr/date.c:

* subversion/libsvn_subr/config_win.c:

* subversion/bindings/java/javahl/native/SVNClient.cpp:

* subversion/bindings/java/javahl/native/Prompter.cpp:

* subversion/bindings/java/javahl/native/Targets.cpp:

* subversion/bindings/java/javahl/native/Notify.h:

* subversion/bindings/java/javahl/native/EnumMapper.h:

* subversion/bindings/java/javahl/native/Outputer.h:

* subversion/bindings/java/javahl/native/Notify2.h:

* subversion/bindings/java/javahl/native/BlameCallback.h:

* subversion/bindings/java/javahl/native/Revision.h:

* subversion/bindings/java/javahl/native/Pool.cpp:

* subversion/bindings/java/javahl/native/SVNClient.h:

* subversion/bindings/java/javahl/native/Prompter.h:

* subversion/bindings/java/javahl/native/JNIUtil.cpp:

* subversion/bindings/java/javahl/native/Inputer.h:

* subversion/bindings/java/javahl/native/BlameCallback.cpp:

* subversion/bindings/java/javahl/native/CommitMessage.cpp:

* subversion/bindings/swig/include/svn_global.swg:

* subversion/bindings/swig/svn_delta.i:

* subversion/mod_dav_svn/mod_dav_svn.c:

* subversion/tests/libsvn_wc/translate-test.c:

* subversion/tests/libsvn_subr/opt-test.c:

* subversion/tests/libsvn_subr/stream-test.c:

* subversion/tests/libsvn_subr/path-test.c:

* subversion/libsvn_ra_svn/cram.c:

* subversion/libsvn_ra_svn/ra_svn.h:

* subversion/libsvn_delta/cancel.c:

* subversion/svnserve/serve.c:

* subversion/libsvn_fs_fs/lock.c:

* contrib/client-side/svn-push/svn-push.c:

* contrib/client-side/mucc.c:

Consistify #includes.

  1. … 37 more files in changeset.
Set svn:eol-style='native' on some text files that were lacking it.

  1. … 44 more files in changeset.
Fix issue #2317: Handle filenames containing '@' compatibly with peg

revision parsing.

Patch by: Alexander Thomas <alexander@collab.net>

me

* subversion/libsvn_subr/opt.c

(svn_opt_parse_path): Treat empty peg revision suffix '@' as

'@HEAD' or '@BASE', depending on URL or local path respectively.

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

(test_parse_peg_rev): Expect "foo/bar@" to parse to "foo/bar@BASE".

* subversion/tests/clients/cmdline/basic_tests.py

(basic_peg_revision): New test.

(test_list): Run it.

  1. … 2 more files in changeset.
Reorganization of the C test libraries and includes.

Move the misplaced svn_test.h file out of subversion/include/.

Merge libsvn_test_fs into libsvn_test.

* build.conf (libsvn_test): Tweak sources and libs, merging in values from

libsvn_test_fs.

(libsvn_test_fs): Remove.

* subversion/include/svn_test.h: Move...

* subversion/tests/svn_test.h: ...to here.

* subversion/tests/fs-helpers.c: Rename...

* subversion/tests/svn_test_fs.c: ...to this.

* subversion/tests/fs-helpers.h: Rename...

* subversion/tests/svn_test_fs.h: ...to this.

* subversion/tests/svn_tests_main.c: Rename...

* subversion/tests/svn_test_main.c: ...to this.

* subversion/tests/libsvn_delta/random-test.c:

* subversion/tests/libsvn_diff/diff-diff3-test.c:

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

* subversion/tests/libsvn_fs_base/changes-test.c:

* subversion/tests/libsvn_fs_base/fs-test.c:

* subversion/tests/libsvn_fs_base/key-test.c:

* subversion/tests/libsvn_fs_base/skel-test.c:

* subversion/tests/libsvn_fs_base/strings-reps-test.c:

* subversion/tests/libsvn_ra_local/ra-local-test.c:

* subversion/tests/libsvn_repos/dir-delta-editor.c:

* subversion/tests/libsvn_repos/repos-test.c:

* subversion/tests/libsvn_subr/compat-test.c:

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

* subversion/tests/libsvn_subr/hashdump-test.c:

* subversion/tests/libsvn_subr/opt-test.c:

* subversion/tests/libsvn_subr/path-test.c:

* subversion/tests/libsvn_subr/stream-test.c:

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

* subversion/tests/libsvn_subr/time-test.c:

* subversion/tests/libsvn_subr/utf-test.c:

* subversion/tests/libsvn_wc/translate-test.c:

Change #includes appropriately.

  1. … 29 more files in changeset.
Merge locking branch to trunk, by comparing trunkURL with branchURL.

This is not a test. This is an actual addition of a very large feature.

This merge passes 'make check' over all three RA implementations.

To see commit logs for this feature, examine /branches/locking, r11749:13570.

  1. … 183 more files in changeset.
Avoid signed/unsigned mismatch.

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

(test_parse_peg_rev): Use the appropriate type to match "sizeof".

Improve revision-parsing documentation, implementation, and testing.

* subversion/include/svn_opt.h

(svn_opt_args_to_target_array): Improve description.

(svn_opt_args_to_target_array2): Fix description: it does not convert

known_targets to UTF-8. State that known_targets follow the other

targets, because we already relied on this ordering.

(svn_opt_parse_path): Improve description.

(svn_opt_parse_revision): State the possible error return.

* subversion/libsvn_subr/opt.c

(svn_opt_parse_path): Ensure that only one revision number is present,

not a colon-separated pair. Remove unnecessary use of a sub-pool.

Ensure that a canonical path is returned.

(svn_opt_args_to_target_array): No longer canonicalize the path

returned from svn_opt_parse_path.

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

New file, with a test for svn_opt_parse_path.

* build.conf

(opt-test): New section for the new test file.

  1. … 3 more files in changeset.