You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by sv...@apache.org on 2018/01/08 04:00:27 UTC

svn commit: r1820525 - in /subversion/branches/1.10.x: ./ STATUS subversion/tests/cmdline/svntest/main.py

Author: svn-role
Date: Mon Jan  8 04:00:27 2018
New Revision: 1820525

URL: http://svn.apache.org/viewvc?rev=1820525&view=rev
Log:
Merge the r1818577 group from trunk:

 * r1818577, r1819146
   Fix test suite handling of pre-cooked repositories
   Justification:
     We want our test suite to pass with fsfs-v4 repos as it did in 1.9.
     As a bonus, it will also work with fsfs-v3 now.
   Votes:
     +1: stefan2, brane

Modified:
    subversion/branches/1.10.x/   (props changed)
    subversion/branches/1.10.x/STATUS
    subversion/branches/1.10.x/subversion/tests/cmdline/svntest/main.py

Propchange: subversion/branches/1.10.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan  8 04:00:27 2018
@@ -99,4 +99,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1817837,1817856,1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819162,1819444,1819556-1819557,1819603,1819804,1819911
+/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911

Modified: subversion/branches/1.10.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1820525&r1=1820524&r2=1820525&view=diff
==============================================================================
--- subversion/branches/1.10.x/STATUS (original)
+++ subversion/branches/1.10.x/STATUS Mon Jan  8 04:00:27 2018
@@ -30,12 +30,3 @@ Veto-blocked changes:
 
 Approved changes:
 =================
-
- * r1818577, r1819146
-   Fix test suite handling of pre-cooked repositories
-   Justification:
-     We want our test suite to pass with fsfs-v4 repos as it did in 1.9.
-     As a bonus, it will also work with fsfs-v3 now.
-   Votes:
-     +1: stefan2, brane
-

Modified: subversion/branches/1.10.x/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/tests/cmdline/svntest/main.py?rev=1820525&r1=1820524&r2=1820525&view=diff
==============================================================================
--- subversion/branches/1.10.x/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/1.10.x/subversion/tests/cmdline/svntest/main.py Mon Jan  8 04:00:27 2018
@@ -1610,28 +1610,28 @@ def server_has_mergeinfo():
   return options.server_minor_version >= 5
 
 def server_has_revprop_commit():
-  return options.server_minor_version >= 5
+  return options.server_caps.has_revprop_commit
 
 def server_authz_has_aliases():
-  return options.server_minor_version >= 5
+  return options.server_caps.authz_has_aliases
 
 def server_gets_client_capabilities():
-  return options.server_minor_version >= 5
+  return options.server_caps.gets_client_capabilities
 
 def server_has_partial_replay():
-  return options.server_minor_version >= 5
+  return options.server_caps.has_partial_replay
 
 def server_enforces_UTF8_fspaths_in_verify():
-  return options.server_minor_version >= 6
+  return options.server_caps.enforces_UTF8_fspaths_in_verify
 
 def server_enforces_date_syntax():
-  return options.server_minor_version >= 5
+  return options.server_caps.enforces_date_syntax
 
 def server_has_atomic_revprop():
-  return options.server_minor_version >= 7
+  return options.server_caps.has_atomic_revprop
 
 def server_has_reverse_get_file_revs():
-  return options.server_minor_version >= 8
+  return options.server_caps.has_reverse_get_file_revs
 
 def is_plaintext_password_storage_disabled():
   try:
@@ -2176,6 +2176,19 @@ def _create_parser(usage=None):
 
   return parser
 
+class ServerCaps():
+  """A simple struct that contains the actual server capabilities that don't
+     depend on other settings like FS versions."""
+
+  def __init__(self, options):
+    self.has_revprop_commit = options.server_minor_version >= 5
+    self.authz_has_aliases = options.server_minor_version >= 5
+    self.gets_client_capabilities = options.server_minor_version >= 5
+    self.has_partial_replay = options.server_minor_version >= 5
+    self.enforces_UTF8_fspaths_in_verify = options.server_minor_version >= 6
+    self.enforces_date_syntax = options.server_minor_version >= 5
+    self.has_atomic_revprop = options.server_minor_version >= 7
+    self.has_reverse_get_file_revs = options.server_minor_version >= 8
 
 def parse_options(arglist=sys.argv[1:], usage=None):
   """Parse the arguments in arg_list, and set the global options object with
@@ -2186,6 +2199,12 @@ def parse_options(arglist=sys.argv[1:],
   parser = _create_parser(usage)
   (options, args) = parser.parse_args(arglist)
 
+  # Peg the actual server capabilities.
+  # We tweak the server_minor_version later to accommodate FS restrictions,
+  # but we don't want them to interfere with expectations towards the "pure"
+  # server code.
+  options.server_caps = ServerCaps(options)
+
   # If there are no logging handlers registered yet, then install our
   # own with our custom formatter. (anything currently installed *is*
   # our handler as tested above, in _create_parser)
@@ -2217,8 +2236,16 @@ def parse_options(arglist=sys.argv[1:],
     parser.error("test harness only supports server minor versions 3-%d"
                  % SVN_VER_MINOR)
 
-  # Make sure the server-minor-version matches the fsfs-version parameter.
-  #
+  pass
+
+  return (parser, args)
+
+def tweak_options_for_precooked_repos():
+  """Make sure the server-minor-version matches the fsfs-version parameter
+     for pre-cooked repositories."""
+
+  global options
+
   # Server versions that introduced the respective FSFS formats:
   introducing_version = { 1:1, 2:4, 3:5, 4:6, 6:8, 7:9 }
   if options.fsfs_version:
@@ -2230,12 +2257,8 @@ def parse_options(arglist=sys.argv[1:],
         parser.error("--fsfs-version=%d requires --server-minor-version=%d" \
                      % (options.fsfs_version, introduced_in))
       options.server_minor_version = introduced_in
-    pass
     # ### Add more tweaks here if and when we support pre-cooked versions
     # ### of FSFS repositories.
-  pass
-
-  return (parser, args)
 
 
 def run_tests(test_list, serial_only = False):
@@ -2331,6 +2354,7 @@ def execute_tests(test_list, serial_only
   if not options:
     # Override which tests to run from the commandline
     (parser, args) = parse_options()
+    tweak_options_for_precooked_repos()
     test_selection = args
   else:
     parser = _create_parser()