Author: stefan2 Date: Mon Dec 18 14:38:21 2017 New Revision: 1818577 URL: http://svn.apache.org/viewvc?rev=1818577&view=rev Log: 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. Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1818577&r1=1818576&r2=1818577&view=diff ============================================================================== --- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original) +++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Mon Dec 18 14:38:21 2017 @@ -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)