You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2022/02/09 10:16:50 UTC

svn commit: r1897893 - in /subversion/branches/multi-wc-format: Makefile.in build.conf build/run_tests.py subversion/tests/cmdline/svntest/main.py subversion/tests/svn_test.h subversion/tests/svn_test_main.c

Author: julianfoad
Date: Wed Feb  9 10:16:50 2022
New Revision: 1897893

URL: http://svn.apache.org/viewvc?rev=1897893&view=rev
Log:
On the 'multi-wc-format' branch: add test suite '--wc-format' option.

This patch just adds the option parsing; it does not yet use the option
value when creating working copies.

The '--wc-format' option accepts a WC format number (such as 31), rather
than a version string like '1.14.0', in this implementation.

* build.conf
  Link all C tests with libsvn_wc, so the option parser can read the minimum
  and maximum supported formats.

* build/run_tests.py
  (TestHarness): Add '--wc-format' option and pass it through to the test
    programs.

* Makefile.in
  (check): Add 'WC_FORMAT' variable and pass it to test suite '--wc-format'
    option.

* subversion/tests/cmdline/svntest/main.py
  (SVN_WC__VERSION, SVN_WC__SUPPORTED_VERSION): New constants.
  (TestSpawningThread.run_one): Pass through the wc-format option.
  (_create_parser,
   parse_options): Add the '--wc-format' option.

* subversion/tests/svn_test.h,
  subversion/tests/svn_test_main.c
  (svn_test_opts_t,
   test_options_e,
   apr_getopt_option_t,
   svn_test_main): Add the '--wc-format' option.

Modified:
    subversion/branches/multi-wc-format/Makefile.in
    subversion/branches/multi-wc-format/build.conf
    subversion/branches/multi-wc-format/build/run_tests.py
    subversion/branches/multi-wc-format/subversion/tests/cmdline/svntest/main.py
    subversion/branches/multi-wc-format/subversion/tests/svn_test.h
    subversion/branches/multi-wc-format/subversion/tests/svn_test_main.c

Modified: subversion/branches/multi-wc-format/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/Makefile.in?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/Makefile.in (original)
+++ subversion/branches/multi-wc-format/Makefile.in Wed Feb  9 10:16:50 2022
@@ -576,6 +576,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	  if test "$(SERVER_MINOR_VERSION)" != ""; then                      \
 	    flags="--server-minor-version $(SERVER_MINOR_VERSION) $$flags";  \
 	  fi;                                                                \
+	  if test "$(WC_FORMAT)" != ""; then                      	     \
+	    flags="--wc-format $(WC_FORMAT) $$flags";  			     \
+	  fi;                                                                \
 	  if test "$(ENABLE_SASL)" != ""; then                               \
 	    flags="--enable-sasl $$flags";                                   \
 	  fi;                                                                \

Modified: subversion/branches/multi-wc-format/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/build.conf?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/build.conf (original)
+++ subversion/branches/multi-wc-format/build.conf Wed Feb  9 10:16:50 2022
@@ -768,7 +768,7 @@ link-cmd = $(LINK_SVNXX_TEST)
 type = lib
 path = subversion/tests
 install = test
-libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
+libs = libsvn_repos libsvn_fs libsvn_delta libsvn_wc libsvn_subr aprutil apriconv apr
 msvc-static = yes
 undefined-lib-symbols = yes
 
@@ -781,7 +781,7 @@ type = exe
 path = subversion/tests/libsvn_fs_base
 sources = fs-base-test.c
 install = bdb-test
-libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_fs_util libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -791,7 +791,7 @@ type = exe
 path = subversion/tests/libsvn_fs_base
 sources = strings-reps-test.c
 install = bdb-test
-libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -801,7 +801,7 @@ type = exe
 path = subversion/tests/libsvn_fs_base
 sources = changes-test.c
 install = bdb-test
-libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_base libsvn_delta
        libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -813,7 +813,7 @@ type = exe
 path = subversion/tests/libsvn_fs_fs
 sources = fs-fs-pack-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -823,7 +823,7 @@ type = exe
 path = subversion/tests/libsvn_fs_fs
 sources = fs-fs-fuzzy-test.c
 install = sub-test
-libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_repos libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -833,7 +833,7 @@ type = exe
 path = subversion/tests/libsvn_fs_fs
 sources = fs-fs-private-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_fs libsvn_delta
        libsvn_repos libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -845,7 +845,7 @@ type = exe
 path = subversion/tests/libsvn_fs_x
 sources = fs-x-pack-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_fs_x libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_fs_x libsvn_delta
        libsvn_subr apriconv apr
 msvc-force-static = yes
 
@@ -855,7 +855,7 @@ type = exe
 path = subversion/tests/libsvn_fs_x
 sources = string-table-test.c
 install = test
-libs = libsvn_test libsvn_fs_x libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_fs_x libsvn_subr apr
 msvc-force-static = yes
 
 # ----------------------------------------------------------------------------
@@ -867,7 +867,7 @@ type = exe
 path = subversion/tests/libsvn_fs
 sources = locks-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta libsvn_subr apriconv apr
 msvc-force-static = yes
 
 [fs-test]
@@ -876,7 +876,7 @@ type = exe
 path = subversion/tests/libsvn_fs
 sources = fs-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta
        libsvn_fs_util libsvn_subr aprutil apriconv apr
 
 [fs-sequential-test]
@@ -885,7 +885,7 @@ type = exe
 path = subversion/tests/libsvn_fs
 sources = fs-sequential-test.c
 install = test
-libs = libsvn_test libsvn_fs libsvn_delta
+libs = libsvn_test libsvn_wc libsvn_fs libsvn_delta
        libsvn_fs_util libsvn_subr aprutil apriconv apr
 
 # ----------------------------------------------------------------------------
@@ -897,7 +897,7 @@ type = exe
 path = subversion/tests/libsvn_repos
 sources = authz-test.c
 install = test
-libs = libsvn_test libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
 
 [repos-test]
 description = Test delta editor in libsvn_repos
@@ -905,7 +905,7 @@ type = exe
 path = subversion/tests/libsvn_repos
 sources = repos-test.c dir-delta-editor.c
 install = test
-libs = libsvn_test libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
 
 [dump-load-test]
 description = Test dumping/loading repositories in libsvn_repos
@@ -913,7 +913,7 @@ type = exe
 path = subversion/tests/libsvn_repos
 sources = dump-load-test.c
 install = test
-libs = libsvn_test libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_subr
@@ -924,7 +924,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = auth-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [bit-array-test]
 description = Test packed bit arrays
@@ -932,7 +932,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = bit-array-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [cache-test]
 description = Test in-memory cache
@@ -940,7 +940,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = cache-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [checksum-test]
 description = Test checksum functions
@@ -948,7 +948,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = checksum-test.c
 install = test
-libs = libsvn_test libsvn_subr apr zlib
+libs = libsvn_test libsvn_wc libsvn_subr apr zlib
 msvc-force-static = yes
 
 [compat-test]
@@ -957,7 +957,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = compat-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [config-test]
 description = Test svn_config utilities
@@ -965,7 +965,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = config-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [crypto-test]
 description = Test svn_crypto utilities
@@ -973,7 +973,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = crypto-test.c
 install = test
-libs = libsvn_test libsvn_subr aprutil apr
+libs = libsvn_test libsvn_wc libsvn_subr aprutil apr
 msvc-force-static = yes
 
 [dirent_uri-test]
@@ -982,7 +982,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = dirent_uri-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [error-test]
 description = Test error library
@@ -990,7 +990,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = error-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [error-code-test]
 description = Test error library
@@ -998,7 +998,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = error-code-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [hashdump-test]
 description = Test hashfile format for props
@@ -1006,7 +1006,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = hashdump-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [io-test]
 description = Test I/O Operations
@@ -1014,7 +1014,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = io-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [opt-test]
 description = Test options library
@@ -1022,7 +1022,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = opt-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [mergeinfo-test]
 description = Test mergeinfo library
@@ -1030,7 +1030,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = mergeinfo-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [packed-data-test]
 description = Test path library
@@ -1038,7 +1038,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = packed-data-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [path-test]
 description = Test path library
@@ -1046,7 +1046,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = path-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [prefix-string-test]
 description = Test path library
@@ -1054,7 +1054,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = prefix-string-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [priority-queue-test]
 description = Test path library
@@ -1062,7 +1062,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = priority-queue-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [revision-test]
 description = Test revision library
@@ -1070,7 +1070,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = revision-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [root-pools-test]
 description = Test time functions
@@ -1078,7 +1078,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = root-pools-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [skel-test]
 description = Test skels in libsvn_subr
@@ -1086,7 +1086,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = skel-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [spillbuf-test]
 description = Test spillbuf in libsvn_subr
@@ -1094,7 +1094,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = spillbuf-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [stream-test]
 description = Test stream library
@@ -1102,7 +1102,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = stream-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [string-test]
 description = Test svn_stringbuf_t utilities
@@ -1110,7 +1110,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = string-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [sqlite-test]
 description = Test stream library
@@ -1118,7 +1118,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = sqlite-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [task-test]
 description = Test concurrent tasks
@@ -1126,7 +1126,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = task-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 [time-test]
 description = Test time functions
@@ -1134,7 +1134,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = time-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [utf-test]
 description = Test UTF-8 functions
@@ -1142,7 +1142,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = utf-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [subst_translate-test]
 description = Test the svn_subst_translate* functions
@@ -1150,7 +1150,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = subst_translate-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [translate-test]
 description = Test eol conversion and keyword substitution routines
@@ -1158,7 +1158,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = translate-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [x509-test]
 description = Test x509 parser
@@ -1166,7 +1166,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = x509-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [xml-test]
 description = Test XML parser in libsvn_subr
@@ -1174,7 +1174,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = xml-test.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [compress-test]
 description = Test compression functions
@@ -1182,7 +1182,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = compress-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_wc libsvn_subr apr
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_delta
@@ -1193,7 +1193,7 @@ type = exe
 path = subversion/tests/libsvn_delta
 sources = random-test.c
 install = test
-libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr
 
 [window-test]
 description = Test delta window generation
@@ -1201,7 +1201,7 @@ type = exe
 path = subversion/tests/libsvn_delta
 sources = window-test.c
 install = test
-libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr
 
 [svndiff-stream-test]
 description = Test svndiff streams
@@ -1209,7 +1209,7 @@ type = exe
 path = subversion/tests/libsvn_delta
 sources = svndiff-stream-test.c
 install = test
-libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_delta libsvn_subr apriconv apr
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_client
@@ -1249,7 +1249,7 @@ type = exe
 path = subversion/tests/libsvn_diff
 sources = diff-diff3-test.c
 install = test
-libs = libsvn_test libsvn_diff libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_diff libsvn_subr apriconv apr
 
 [parse-diff-test]
 description = Test unidiff parsing
@@ -1257,7 +1257,7 @@ type = exe
 path = subversion/tests/libsvn_diff
 sources = parse-diff-test.c
 install = test
-libs = libsvn_test libsvn_diff libsvn_subr apriconv apr
+libs = libsvn_test libsvn_wc libsvn_diff libsvn_subr apriconv apr
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_ra
@@ -1268,7 +1268,7 @@ type = exe
 path = subversion/tests/libsvn_ra
 sources = ra-test.c
 install = test
-libs = libsvn_test libsvn_ra libsvn_ra_svn libsvn_fs libsvn_delta libsvn_subr
+libs = libsvn_test libsvn_wc libsvn_ra libsvn_ra_svn libsvn_fs libsvn_delta libsvn_subr
        apriconv apr
 
 # ----------------------------------------------------------------------------
@@ -1280,7 +1280,7 @@ type = exe
 path = subversion/tests/libsvn_ra_local
 sources = ra-local-test.c
 install = test
-libs = libsvn_test libsvn_ra_local libsvn_ra libsvn_fs libsvn_delta libsvn_subr
+libs = libsvn_test libsvn_wc libsvn_ra_local libsvn_ra libsvn_fs libsvn_delta libsvn_subr
        apriconv apr
 
 # ----------------------------------------------------------------------------
@@ -1337,7 +1337,7 @@ type = exe
 path = subversion/tests/libsvn_wc
 sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c
 install = test
-libs = libsvn_test libsvn_subr apriconv apr sqlite
+libs = libsvn_test libsvn_wc libsvn_subr apriconv apr sqlite
 
 [wc-test]
 description = Test the main WC API functions

Modified: subversion/branches/multi-wc-format/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/build/run_tests.py?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/build/run_tests.py (original)
+++ subversion/branches/multi-wc-format/build/run_tests.py Wed Feb  9 10:16:50 2022
@@ -29,7 +29,8 @@
             [--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>] [--http-proxy=<host>:<port>]
+            [--server-minor-version=<version>] [--wc-format=<format>]
+            [--http-proxy=<host>:<port>]
             [--httpd-version=<version>] [--httpd-whitelist=<version>]
             [--config-file=<file>] [--ssl-cert=<file>]
             [--exclusive-wc-locks] [--memcached-server=<url:port>]
@@ -257,6 +258,8 @@ class TestHarness:
     if self.opts.server_minor_version is not None:
       cmdline.append('--server-minor-version=%d' %
                      self.opts.server_minor_version)
+    if self.opts.wc_format is not None:
+      cmdline.append('--wc-format=%d' % self.opts.wc_format)
     if self.opts.mode_filter is not None:
       cmdline.append('--mode-filter=' + self.opts.mode_filter)
     if self.opts.parallel is not None:
@@ -292,6 +295,8 @@ class TestHarness:
       cmdline.append('--fsfs-version=%d' % self.opts.fsfs_version)
     if self.opts.server_minor_version is not None:
       cmdline.append('--server-minor-version=%d' % self.opts.server_minor_version)
+    if self.opts.wc_format is not None:
+      cmdline.append('--wc-format=%d' % self.opts.wc_format)
     if self.opts.dump_load_cross_check is not None:
       cmdline.append('--dump-load-cross-check')
     if self.opts.enable_sasl is not None:
@@ -1035,6 +1040,8 @@ def create_parser():
                     help="Run 'svnadmin pack' automatically")
   parser.add_option('--server-minor-version', type='int', action='store',
                     help="Set the minor version for the server")
+  parser.add_option('--wc-format', type='int', action='store',
+                    help="Set the WC format")
   parser.add_option('--skip-c-tests', '--skip-C-tests', action='store_true',
                     help="Run only the Python tests")
   parser.add_option('--dump-load-cross-check', action='store_true',

Modified: subversion/branches/multi-wc-format/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/tests/cmdline/svntest/main.py?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/multi-wc-format/subversion/tests/cmdline/svntest/main.py Wed Feb  9 10:16:50 2022
@@ -58,6 +58,8 @@ from svntest import Skip
 from svntest.wc import StateItem as Item
 
 SVN_VER_MINOR = 15
+SVN_WC__VERSION = 32
+SVN_WC__SUPPORTED_VERSION = 31
 
 ######################################################################
 #
@@ -1768,6 +1770,8 @@ class TestSpawningThread(threading.Threa
       args.append('--http-library=' + options.http_library)
     if options.server_minor_version:
       args.append('--server-minor-version=' + str(options.server_minor_version))
+    if options.wc_format:
+      args.append('--wc-format=' + str(options.wc_format))
     if options.mode_filter:
       args.append('--mode-filter=' + options.mode_filter)
     if options.milestone_filter:
@@ -2185,6 +2189,9 @@ def _create_parser(usage=None):
   parser.add_option('--server-minor-version', type='int', action='store',
                     help="Set the minor version for the server ('3'..'%d')."
                     % SVN_VER_MINOR)
+  parser.add_option('--wc-format', type='int', action='store',
+                    help="Set the WC format for all tests ('%d'..'%d')."
+                    % (SVN_WC__SUPPORTED_VERSION, SVN_WC__VERSION))
   parser.add_option('--fsfs-packing', action='store_true',
                     help="Run 'svnadmin pack' automatically")
   parser.add_option('--fsfs-sharding', action='store', type='int',
@@ -2243,6 +2250,7 @@ def _create_parser(usage=None):
   # most of the defaults are None, but some are other values, set them here
   parser.set_defaults(
         server_minor_version=SVN_VER_MINOR,
+        wc_format=SVN_WC__VERSION,
         url=file_scheme_prefix + \
                         svntest.wc.svn_uri_quote(
                            os.path.abspath(
@@ -2311,6 +2319,10 @@ def parse_options(arglist=sys.argv[1:],
     parser.error("test harness only supports server minor versions 3-%d"
                  % SVN_VER_MINOR)
 
+  if options.wc_format not in range(SVN_WC__SUPPORTED_VERSION, SVN_WC__VERSION+1):
+    parser.error("test harness only supports WC formats %d-%d"
+                 % (SVN_WC__SUPPORTED_VERSION, SVN_WC__VERSION))
+
   pass
 
   return (parser, args)

Modified: subversion/branches/multi-wc-format/subversion/tests/svn_test.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/tests/svn_test.h?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/tests/svn_test.h (original)
+++ subversion/branches/multi-wc-format/subversion/tests/svn_test.h Wed Feb  9 10:16:50 2022
@@ -216,6 +216,8 @@ typedef struct svn_test_opts_t
   /* Minor version to use for servers and FS backends, or zero to use
      the current latest version. */
   int server_minor_version;
+  /* WC format to use for all tests (except tests for a specific format) */
+  int wc_format;
   svn_boolean_t verbose;
   /* Add future "arguments" here. */
 } svn_test_opts_t;

Modified: subversion/branches/multi-wc-format/subversion/tests/svn_test_main.c
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/tests/svn_test_main.c?rev=1897893&r1=1897892&r2=1897893&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/tests/svn_test_main.c (original)
+++ subversion/branches/multi-wc-format/subversion/tests/svn_test_main.c Wed Feb  9 10:16:50 2022
@@ -51,6 +51,7 @@
 #include "private/svn_atomic.h"
 #include "private/svn_mutex.h"
 #include "private/svn_sqlite.h"
+#include "private/svn_wc_private.h"
 
 #include "svn_private_config.h"
 
@@ -99,6 +100,7 @@ enum test_options_e {
   quiet_opt,
   config_opt,
   server_minor_version_opt,
+  wc_format_opt,
   allow_segfault_opt,
   srcdir_opt,
   reposdir_opt,
@@ -133,6 +135,8 @@ static const apr_getopt_option_t cl_opti
   {"server-minor-version", server_minor_version_opt, 1,
                     N_("set the minor version for the server ('3', '4', "
                        "'5', or '6')")},
+  {"wc-format",     wc_format_opt, 1,
+                    N_("set the WC format to use for all tests")},
   {"quiet",         quiet_opt, 0,
                     N_("print only unexpected results")},
   {"allow-segfaults", allow_segfault_opt, 0,
@@ -993,6 +997,26 @@ svn_test_main(int argc, const char *argv
                 exit(1);
               }
             break;
+          }
+        case wc_format_opt:
+          {
+            char *end;
+            opts.wc_format = (int) strtol(opt_arg, &end, 10);
+            if (end == opt_arg || *end != '\0')
+              {
+                fprintf(stderr, "FAIL: Non-numeric WC format given\n");
+                exit(1);
+              }
+            if (!svn_wc__is_supported_format(opts.wc_format))
+              {
+                fprintf(stderr, "FAIL: Unsupported WC format given (%d); "
+                                "supported formats are %d to %d\n",
+                                opts.wc_format,
+                                svn_wc__min_supported_format(),
+                                svn_wc__max_supported_format());
+                exit(1);
+              }
+            break;
           }
         case sqlite_log_opt:
           svn_sqlite__dbg_enable_errorlog();