Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/getopt_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/getopt_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/getopt_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/getopt_tests.py Fri Dec 6 13:59:05 2024 @@ -81,7 +81,7 @@ del_lines_res = [ re.compile(r"\* Plaintext cache.*"), re.compile(r"\* Gnome Keyring"), re.compile(r"\* GPG-Agent"), - re.compile(r"\* Mac OS X Keychain"), + re.compile(r"\* macOS Keychain"), re.compile(r"\* KWallet \(KDE\)"), ] @@ -94,7 +94,7 @@ rep_lines_res = [ 'version X.Y.Z '), # The copyright end date keeps changing; fix forever. (re.compile(r'Copyright \(C\) 20\d\d The Apache ' - 'Software Foundation\.'), + r'Software Foundation\.'), 'Copyright (C) YYYY The Apache Software Foundation'), # In 'svn --version --quiet', we print only the version # number in a single line. @@ -120,7 +120,7 @@ switched_del_lines_res = [ # seen switch_res_line. switched_rep_lines_res = [ # We don't care about the actual canonical host - (re.compile('^\* running on.*$'), '* running on'), + (re.compile(r'^\* running on.*$'), '* running on'), ] def process_lines(lines):
Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/info_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/info_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/info_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/info_tests.py Fri Dec 6 13:59:05 2024 @@ -96,7 +96,7 @@ def match_xml_element(str, exprs): atttribute_re = re.compile( r"\s+(?P<key>[\w-]+)\s*=\s*(['\"])(?P<val>[^'\"]*)\2", re.M) self_closing_re = re.compile(r"\s*/>", re.M) - content_re_str = "\\s*>(?P<content>.*?)</%s\s*>" + content_re_str = r"\s*>(?P<content>.*?)</%s\s*>" m = start_tag_re.match(str) if not m: @@ -402,7 +402,7 @@ def info_repos_root_url(sbox): 'Path' : re.escape(os.path.basename(sbox.repo_dir)), 'Repository Root' : re.escape(sbox.repo_url), 'URL' : re.escape(sbox.repo_url), - 'Relative URL' : '\^/', # escape ^ -- this isn't a regexp + 'Relative URL' : r'\^/', # escape ^ -- this isn't a regexp 'Revision' : '1', 'Node Kind' : 'directory', 'Last Changed Rev' : '1', @@ -412,7 +412,7 @@ def info_repos_root_url(sbox): 'Name' : 'iota', 'Repository Root' : re.escape(sbox.repo_url), 'URL' : re.escape(sbox.repo_url + '/iota'), - 'Relative URL' : '\^/iota', # escape ^ -- this isn't a regexp + 'Relative URL' : r'\^/iota', # escape ^ -- this isn't a regexp 'Revision' : '1', 'Node Kind' : 'file', 'Last Changed Rev' : '1', Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/legacy/utf8_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/legacy/utf8_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/legacy/utf8_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/legacy/utf8_tests.py Fri Dec 6 13:59:05 2024 @@ -143,7 +143,7 @@ else: # Also check that the environment contains the expected locale settings # either by default, or because we set them above. if localematch: - localeregex = re.compile('^en_US\.ISO-?8859-1$', re.I) + localeregex = re.compile(r'^en_US\.ISO-?8859-1$', re.I) for env in [ 'LC_ALL', 'LC_CTYPE', 'LANG' ]: env_value = os.getenv(env) if env_value: Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/lock_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/lock_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/lock_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/lock_tests.py Fri Dec 6 13:59:05 2024 @@ -91,8 +91,8 @@ def lock_file(sbox): '-m', '', file_path) # --- Meanwhile, in our other working copy... --- - err_re = "(svn\: E195022\: File '.*iota' is locked in another)|" + \ - "(svn\: E160039: User '?jconstant'? does not own lock on path.*iota')" + err_re = r"(svn\: E195022\: File '.*iota' is locked in another)|" + \ + r"(svn\: E160039: User '?jconstant'? does not own lock on path.*iota')" svntest.main.run_svn(None, 'update', wc_b) # -- Try to change a file -- @@ -112,8 +112,8 @@ def lock_file(sbox): # change the locked file's properties svntest.main.run_svn(None, 'propset', 'sneakyuser', 'Sally', file_path_b) - err_re = "(svn\: E195022\: File '.*iota' is locked in another)|" + \ - "(svn\: E160039\: User '?jconstant'? does not own lock on path)" + err_re = r"(svn\: E195022\: File '.*iota' is locked in another)|" + \ + r"(svn\: E160039\: User '?jconstant'? does not own lock on path)" # attempt (and fail) to commit as user Sally svntest.actions.run_and_verify_commit(wc_b, None, None, err_re, @@ -1275,8 +1275,8 @@ def ls_url_encoded(sbox): [], "lock", fname) # Make sure ls shows it being locked. - expected_output = " +2 " + re.escape(svntest.main.wc_author) + " +O .+f|" \ - " +2 " + re.escape(svntest.main.wc_author) + " .+\./" + expected_output = r" +2 %(author)s +O .+f| +2 %(author)s .+\./" % \ + {'author': re.escape(svntest.main.wc_author)} svntest.actions.run_and_verify_svn(expected_output, [], "list", "-v", dirname) Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/log_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/log_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/log_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/log_tests.py Fri Dec 6 13:59:05 2024 @@ -471,8 +471,7 @@ def parse_log_output(log_lines, with_dif # Regular expression to match the header line of a log message, with # these groups: (revision number), (author), (date), (num lines). - header_re = re.compile('^r([0-9]+) \| ' \ - + '([^|]*) \| ([^|]*) \| ([0-9]+) lines?') + header_re = re.compile(r'^r([0-9]+) \| ([^|]*) \| ([^|]*) \| ([0-9]+) lines?') # The log chain to return. chain = [] @@ -984,10 +983,10 @@ PROPS-END # Verify the output contains either the expected fuzzy escape # sequence, or the literal control char. - match_unescaped_ctrl_re = "This msg contains a Ctrl-T \(.\) " \ - "and a Ctrl-I \(\t\)\." - match_escaped_ctrl_re = "^This msg contains a Ctrl-T \(\?\\\\020\) " \ - "and a Ctrl-I \(\t\)\." + match_unescaped_ctrl_re = r"This msg contains a Ctrl-T \(.\) " \ + r"and a Ctrl-I \(\t\)\." + match_escaped_ctrl_re = r"^This msg contains a Ctrl-T \(\?\\020\) " \ + r"and a Ctrl-I \(\t\)\." matched = None for line in output: if re.match(match_unescaped_ctrl_re, line) \ @@ -1490,8 +1489,8 @@ def retrieve_revprops(sbox): # Can't set revprops with log. svntest.actions.run_and_verify_log_xml( - expected_stderr=(".*cannot assign with 'with-revprop' option" - " \(drop the '='\)"), + expected_stderr=(r".*cannot assign with 'with-revprop' option" + r" \(drop the '='\)"), args=['--with-revprop=foo=bar']) # basic test without revprop options @@ -2670,8 +2669,8 @@ def log_revision_move_copy(sbox): '-r2') expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r3\ .*\n', + r'-+\n', + r'r3 .*\n', re.escape('Changed paths:\n'), re.escape(' D /A/B/E\n'), re.escape(' A /E (from /A/B/E:2)\n'), # Patched - Direct move @@ -2680,7 +2679,7 @@ def log_revision_move_copy(sbox): re.escape(' D /iota\n'), re.escape(' A /iotb (from /iota:2)\n'), # Patched - Direct move re.escape(' A /mutb (from /A/mu:1)\n'), # Copy (always r1) - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox.wc_dir, Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_authz_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_authz_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_authz_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_authz_tests.py Fri Dec 6 13:59:05 2024 @@ -773,7 +773,7 @@ def diff_unauth_parent(sbox): 'Added: k\n', '## -0,0 +1 ##\n', '+v\n', - '\ No newline at end of property\n' + '\\ No newline at end of property\n' ] svntest.actions.run_and_verify_svn(expected_output, [], 'diff', sbox.repo_url + '/A', '-c', '2') @@ -830,9 +830,9 @@ def diff_unauth_parent(sbox): 'Modified: this-is\n', '## -1 +1 ##\n', '-E\n', - '\ No newline at end of property\n', + '\\ No newline at end of property\n', '+G\n', - '\ No newline at end of property\n', + '\\ No newline at end of property\n', ] else: # ### We should also see a property deletion here! @@ -847,7 +847,7 @@ def diff_unauth_parent(sbox): 'Deleted: this-is\n', '## -1 +0,0 ##\n', '-E\n', - '\ No newline at end of property\n', + '\\ No newline at end of property\n', 'Index: .\n', '===================================================================\n', '--- .\t(nonexistent)\n', @@ -858,7 +858,7 @@ def diff_unauth_parent(sbox): 'Added: this-is\n', '## -0,0 +1 ##\n', '+G\n', - '\ No newline at end of property\n', + '\\ No newline at end of property\n', ] # Use two url diff, because 'svn diff url -c' uses copyfrom to diff against Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_automatic_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_automatic_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_automatic_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_automatic_tests.py Fri Dec 6 13:59:05 2024 @@ -1361,9 +1361,9 @@ def merge_delete_crlf_file(sbox): # Let commit fix the eols sbox.simple_add_text('with\rCRLF\rhere!', 'A/crlf') - sbox.simple_add_text('with\rnative\r\eol', 'A/native') - sbox.simple_add_text('with\rCR\r\eol', 'A/cr') - sbox.simple_add_text('with\rLF\r\eol', 'A/lf') + sbox.simple_add_text('with\rnative\r\\eol', 'A/native') + sbox.simple_add_text('with\rCR\r\\eol', 'A/cr') + sbox.simple_add_text('with\rLF\r\\eol', 'A/lf') # And apply the magic property sbox.simple_propset('svn:eol-style', 'CRLF', 'A/crlf') Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tests.py Fri Dec 6 13:59:05 2024 @@ -247,9 +247,9 @@ def textual_merges_galore(sbox): expected_skip = wc.State('', { }) - tau_conflict_support_files = ["tau\.working", - "tau\.merge-right\.r3", - "tau\.merge-left\.r1"] + tau_conflict_support_files = [r"tau\.working", + r"tau\.merge-right\.r3", + r"tau\.merge-left\.r1"] svntest.actions.run_and_verify_merge(other_wc, '1', '3', sbox.repo_url, None, @@ -2629,7 +2629,7 @@ def safe_property_merge(sbox): expected_skip = wc.State('', { }) # should have 3 'prej' files left behind, describing prop conflicts: - extra_files = ['alpha.*\.prej', 'beta.*\.prej', 'dir_conflicts.*\.prej'] + extra_files = [r'alpha.*\.prej', r'beta.*\.prej', r'dir_conflicts.*\.prej'] svntest.actions.run_and_verify_merge(B2_path, '3', '4', B_url, None, expected_output, @@ -2752,7 +2752,7 @@ def property_merge_from_branch(sbox): expected_skip = wc.State('', { }) # should have 2 'prej' files left behind, describing prop conflicts: - extra_files = ['alpha.*\.prej', 'dir_conflicts.*\.prej'] + extra_files = [r'alpha.*\.prej', r'dir_conflicts.*\.prej'] svntest.actions.run_and_verify_merge(B2_path, '3', '4', B_url, None, expected_output, @@ -2952,9 +2952,9 @@ def cherry_pick_text_conflict(sbox): expected_skip, expected_error, extra_files= - ["mu\.working", - "mu\.merge-right\.r4", - "mu\.merge-left\.r3"]) + [r"mu\.working", + r"mu\.merge-right\.r4", + r"mu\.merge-left\.r3"]) #---------------------------------------------------------------------- # Test for issue 2135 @@ -14517,9 +14517,9 @@ def merge_automatic_conflict_resolution( "=======\n" "New content>>>>>>> .merge-right.r3\n") expected_status.tweak('D/H/psi', status='C ') - psi_conflict_support_files = ["psi\.working", - "psi\.merge-right\.r3", - "psi\.merge-left\.r2"] + psi_conflict_support_files = [r"psi\.working", + r"psi\.merge-right\.r3", + r"psi\.merge-left\.r2"] svntest.actions.run_and_verify_merge(A_COPY_path, '2', '3', sbox.repo_url + '/A', None, expected_output, @@ -17301,7 +17301,7 @@ def merge_target_selection(sbox): # r4 svntest.main.file_write(sbox.ospath('dir/binary-file'), - '\9\8\7\6\5\4\3\2\1') + '\x09\x08\7\6\5\4\3\2\1') sbox.simple_commit() sbox.simple_update() Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tree_conflict_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tree_conflict_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/merge_tree_conflict_tests.py Fri Dec 6 13:59:05 2024 @@ -1856,9 +1856,9 @@ def merge_replace_causes_tree_conflict2( actions.run_and_verify_status(wc_dir, expected_status) # Check the tree conflict types: - expected_stdout = '(R.*)|(Summary of conflicts.*)|( Tree conflicts.*)' \ - '|(.*local delete, incoming replace upon merge.*)' \ - '|( \>.*)' + expected_stdout = r'(R.*)|(Summary of conflicts.*)|( Tree conflicts.*)' \ + r'|(.*local delete, incoming replace upon merge.*)' \ + r'|( \>.*)' tree_conflicted_path = [A_B_E, A_mu, A_D_G_pi, A_D_H] for path in tree_conflicted_path: actions.run_and_verify_svn2(expected_stdout, [], 0, 'st', Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/patch_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/patch_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/patch_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/patch_tests.py Fri Dec 6 13:59:05 2024 @@ -3433,7 +3433,7 @@ def patch_one_property(sbox, trailing_eo value = "v\n" else: value = "v" - unidiff_patch += ['\ No newline at end of property\n'] + unidiff_patch += ['\\ No newline at end of property\n'] svntest.main.file_write(patch_file_path, ''.join(unidiff_patch), 'wb') @@ -5807,7 +5807,7 @@ def patch_binary_file(sbox): 'Added: svn:mime-type\n', '## -0,0 +1 ##\n', '+application/binary\n', - '\ No newline at end of property\n', + '\\ No newline at end of property\n', ] _, diff_output, _ = svntest.actions.run_and_verify_svn(expected_output, [], @@ -6005,7 +6005,7 @@ def patch_final_eol(sbox): '@@ -1 +1 @@\n', '-This is the file \'mu\'.\n', '+This is the file \'mu\'.\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', 'Index: iota\n', '===================================================================\n', '--- iota\t(revision 1)\n', @@ -6013,7 +6013,7 @@ def patch_final_eol(sbox): '@@ -1 +1 @@\n', '-This is the file \'iota\'.\n', '+This is the file \'iota\'.\n', - '\ No newline at end of file' # Missing EOL + '\\ No newline at end of file' # Missing EOL ] patch = sbox.get_tempname('patch') @@ -6073,7 +6073,7 @@ def patch_final_eol(sbox): '+++ A/mu\t(working copy)\n', '@@ -1 +1 @@\n', '-This is the file \'mu\'.\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', '+This is the file \'mu\'.\n', 'Index: iota\n', '===================================================================\n', @@ -6081,7 +6081,7 @@ def patch_final_eol(sbox): '+++ iota\t(working copy)\n', '@@ -1 +1 @@\n', '-This is the file \'iota\'.\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', '+This is the file \'iota\'.' # Missing eol ] @@ -6746,9 +6746,9 @@ def patch_add_remove_executable(sbox): sbox.build() wc_dir = sbox.wc_dir - eicar_data = 'X5O!P%@AP[4\PZX54(P^)7CC)7}$' \ + eicar_data = 'X5O!P%@AP[4\\PZX54(P^)7CC)7}$' \ 'EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*\0' - other_data = 'X5O!P%@AP[4\PZX54(P^)7CC)7}$' \ + other_data = 'X5O!P%@AP[4\\PZX54(P^)7CC)7}$' \ 'SOME-LESS-INTERESTING-OTHER-TEXT!!!$H+H*\0' \ '\0\0\0\0\0\0\0\0' @@ -6912,7 +6912,7 @@ def patch_git_symlink(sbox): '+++ b/link-to-iota\n', '@@ -0,0 +1 @@\n', '+iota\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', ] patch_edit = [ @@ -6922,9 +6922,9 @@ def patch_git_symlink(sbox): '+++ b/link-to-iota\n', '@@ -1 +1 @@\n', '-iota\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', '+A/mu\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', ] patch_to_file = [ @@ -6935,7 +6935,7 @@ def patch_git_symlink(sbox): '+++ /dev/null\n', '@@ -1 +0,0 @@\n', '-A/mu\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', 'diff --git a/link-to-iota b/link-to-iota\n', 'new file mode 100644\n', 'index 0000000..1b130bf\n', @@ -7039,7 +7039,7 @@ def patch_like_git_symlink(sbox): '+++ b/link-to-iota\n', '@@ -0,0 +1 @@\n', '+iota\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', ] patch_edit = [ @@ -7049,9 +7049,9 @@ def patch_like_git_symlink(sbox): '+++ b/link-to-iota\n', '@@ -1 +1 @@\n', '-iota\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', '+A/mu\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', ] patch_to_file = [ @@ -7062,7 +7062,7 @@ def patch_like_git_symlink(sbox): '+++ /dev/null\n', '@@ -1 +0,0 @@\n', '-A/mu\n', - '\ No newline at end of file\n', + '\\ No newline at end of file\n', 'diff --git a/link-to-iota b/link-to-iota\n', 'new file mode 100644\n', 'index 0000000..1b130bf\n', @@ -7709,7 +7709,7 @@ def patch_merge(sbox): ' J\n' ' K\n' ' L\n' - '\ No newline at end of file', mode='wb') + '\\ No newline at end of file', mode='wb') expected_skip = wc.State('', { }) expected_output = wc.State(wc_dir, { @@ -7735,7 +7735,7 @@ def patch_merge(sbox): ' J\n' ' K\n' ' L\n' - '\ No newline at end of file', mode='wb') + '\\ No newline at end of file', mode='wb') svntest.actions.run_and_verify_patch(wc_dir, local_patch, expected_output, None, @@ -7871,7 +7871,7 @@ def patch_empty_prop(sbox): value = "v\n" else: value = "v" - unidiff_patch += ['\ No newline at end of property\n'] + unidiff_patch += ['\\ No newline at end of property\n'] patch_file_path = sbox.get_tempname('my.patch') svntest.main.file_write(patch_file_path, ''.join(unidiff_patch), 'wb') Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/prop_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/prop_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/prop_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/prop_tests.py Fri Dec 6 13:59:05 2024 @@ -349,7 +349,7 @@ def update_conflict_props(sbox): expected_status = svntest.actions.get_virginal_state(wc_dir, 2) expected_status.tweak('A/mu', 'A', status=' C') - extra_files = ['mu.*\.prej', 'dir_conflicts.*\.prej'] + extra_files = [r'mu.*\.prej', r'dir_conflicts.*\.prej'] # Do the update and check the results in three ways... INCLUDING PROPS svntest.actions.run_and_verify_update(wc_dir, expected_output, Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/special_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/special_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/special_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/special_tests.py Fri Dec 6 13:59:05 2024 @@ -71,7 +71,7 @@ def general_symlink(sbox): exit_code, stdout_lines, stderr_lines = svntest.main.run_svn(1, 'diff', wc_dir) - regex = '^\+link linktarget' + regex = r'^\+link linktarget' for line in stdout_lines: if re.match(regex, line): break Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/stat_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/stat_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/stat_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/stat_tests.py Fri Dec 6 13:59:05 2024 @@ -559,7 +559,7 @@ def status_uninvited_parent_directory(sb for line in out: # The "/?" is just to allow for an optional trailing slash. - if re.match("\\s+\\*.*\.other/?$", line): + if re.match(r"\s+\*.*\.other/?$", line): raise svntest.Failure @Issue(1289) Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/store_pristine_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/store_pristine_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/store_pristine_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/store_pristine_tests.py Fri Dec 6 13:59:05 2024 @@ -25,7 +25,7 @@ ###################################################################### # General modules -import os, logging, base64, functools +import os, logging, base64, functools, time # Our testing module import svntest @@ -351,6 +351,9 @@ def simple_diff_with_pristine(sbox): sbox.simple_add('file') sbox.simple_commit(message='r1') + # Sleep to ensure timestamps change + time.sleep(1.1) + sbox.simple_append('file', 'bar\n', truncate=True) diff_output = svntest.verify.make_diff_header( @@ -383,6 +386,9 @@ def simple_diff_without_pristine(sbox): sbox.simple_add('file') sbox.simple_commit(message='r1') + # Sleep to ensure timestamps change + time.sleep(1.1) + sbox.simple_append('file', 'bar\n', truncate=True) diff_output = svntest.verify.make_diff_header( @@ -415,6 +421,9 @@ def simple_revert_with_pristine(sbox): sbox.simple_add('file') sbox.simple_commit(message='r1') + # Sleep to ensure timestamps change + time.sleep(1.1) + sbox.simple_append('file', 'bar\n', truncate=True) svntest.actions.run_and_verify_revert([sbox.ospath('file')]) @@ -447,6 +456,9 @@ def simple_revert_without_pristine(sbox) sbox.simple_add('file') sbox.simple_commit(message='r1') + # Sleep to ensure timestamps change + time.sleep(1.1) + sbox.simple_append('file', 'bar\n', truncate=True) svntest.actions.run_and_verify_revert([sbox.ospath('file')]) Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnadmin_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnadmin_tests.py Fri Dec 6 13:59:05 2024 @@ -58,17 +58,20 @@ def read_rep_cache(repo_dir): """ db_path = os.path.join(repo_dir, 'db', 'rep-cache.db') db1 = svntest.sqlite3.connect(db_path) - schema1 = db1.execute("pragma user_version").fetchone()[0] - # Can't test newer rep-cache schemas with an old built-in SQLite; see the - # documentation of STMT_CREATE_SCHEMA_V2 in ../../libsvn_fs_fs/rep-cache-db.sql - if schema1 >= 2 and svntest.sqlite3.sqlite_version_info < (3, 8, 2): - raise svntest.Failure("Can't read rep-cache schema %d using old " - "Python-SQLite version %s < (3,8,2)" % - (schema1, - svntest.sqlite3.sqlite_version_info)) - - content = { row[0]: row[1:] for row in - db1.execute("select * from rep_cache") } + try: + schema1 = db1.execute("pragma user_version").fetchone()[0] + # Can't test newer rep-cache schemas with an old built-in SQLite; see the + # documentation of STMT_CREATE_SCHEMA_V2 in ../../libsvn_fs_fs/rep-cache-db.sql + if schema1 >= 2 and svntest.sqlite3.sqlite_version_info < (3, 8, 2): + raise svntest.Failure("Can't read rep-cache schema %d using old " + "Python-SQLite version %s < (3,8,2)" % + (schema1, + svntest.sqlite3.sqlite_version_info)) + + content = { row[0]: row[1:] for row in + db1.execute("select * from rep_cache") } + finally: + db1.close() return content def check_hotcopy_bdb(src, dst): @@ -1787,7 +1790,7 @@ def test_lslocks_and_rmlocks(sbox): "Owner: jrandom", "Created:.*", "Expires:.*", - "Comment \(1 line\):", + r"Comment \(1 line\):", "Locking files", "\n", # empty line ] @@ -3511,8 +3514,8 @@ def dump_exclude(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', # '/A/D/H' and '/A/B/E' is not added. re.escape('Changed paths:\n'), re.escape(' A /A\n'), @@ -3528,7 +3531,7 @@ def dump_exclude(sbox): re.escape(' A /A/D/gamma\n'), re.escape(' A /A/mu\n'), re.escape(' A /iota\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3564,18 +3567,18 @@ def dump_exclude_copysource(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r2\ .*\n', + r'-+\n', + r'r2 .*\n', re.escape('Changed paths:\n'), # Simple add, not copy. re.escape(' A /branches/branch1\n'), - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', # '/trunk' is not added. re.escape('Changed paths:\n'), re.escape(' A /branches\n'), re.escape(' A /tags\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3609,13 +3612,13 @@ def dump_include(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', # '/B' is not added. re.escape('Changed paths:\n'), re.escape(' A /A\n'), re.escape(' A /C\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3651,17 +3654,17 @@ def dump_not_include_copysource(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r2\ .*\n', + r'-+\n', + r'r2 .*\n', re.escape('Changed paths:\n'), # Simple add, not copy. re.escape(' A /branches/branch1\n'), - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', # Only '/branches' is added in r1. re.escape('Changed paths:\n'), re.escape(' A /branches\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3693,12 +3696,12 @@ def dump_exclude_by_pattern(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', re.escape('Changed paths:\n'), # Only '/bbc' is added in r1. re.escape(' A /bbc\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3730,14 +3733,14 @@ def dump_include_by_pattern(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r1\ .*\n', + r'-+\n', + r'r1 .*\n', # '/bbc' is not added. re.escape('Changed paths:\n'), re.escape(' A /aaa\n'), re.escape(' A /aab\n'), re.escape(' A /aac\n'), - '-+\\n' + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) @@ -3782,27 +3785,27 @@ def dump_exclude_all_rev_changes(sbox): # Check log. Revision properties ('svn:log' etc.) should be empty for r2. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r3 | jrandom | .* | 1 line\\n', + r'-+\n', + r'r3 \| jrandom \| .* \| 1 line\n', re.escape('Changed paths:'), re.escape(' A /r3a'), re.escape(' A /r3b'), re.escape(' A /r3c'), '', re.escape('Revision 3.'), - '-+\\n', + r'-+\n', re.escape('r2 | (no author) | (no date) | 1 line'), '', '', - '-+\\n', - 'r1 | jrandom | .* | 1 line\\n', + r'-+\n', + r'r1 | jrandom | .* | 1 line\n', re.escape('Changed paths:'), re.escape(' A /r1a'), re.escape(' A /r1b'), re.escape(' A /r1c'), '', re.escape('Revision 1.'), - '-+\\n', + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', sbox2.repo_url) @@ -3944,8 +3947,8 @@ def dump_include_copied_directory(sbox): # Check log. expected_output = svntest.verify.RegexListOutput([ - '-+\\n', - 'r2\ .*\n', + r'-+\n', + r'r2 .*\n', # Only '/COPY' is added re.escape('Changed paths:\n'), re.escape(' A /COPY'), @@ -3958,9 +3961,9 @@ def dump_include_copied_directory(sbox): re.escape(' A /COPY/H/omega'), re.escape(' A /COPY/H/psi'), re.escape(' A /COPY/gamma'), - '-+\\n', - 'r1\ .*\n', - '-+\\n' + r'-+\n', + r'r1 .*\n', + r'-+\n', ]) svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', '-q', sbox2.repo_url) Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnfsfs_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnfsfs_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnfsfs_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnfsfs_tests.py Fri Dec 6 13:59:05 2024 @@ -167,38 +167,38 @@ def test_stats(sbox): 'Histogram of directory property sizes:', 'Histogram of directory property representation sizes:'] patterns_to_find = { - 'Reading revisions' : ['\s+ 0[ 0-9]*'], - 'Global .*' : ['.*\d+ bytes in .*\d+ revisions', - '.*\d+ bytes in .*\d+ changes', - '.*\d+ bytes in .*\d+ node revision records', - '.*\d+ bytes in .*\d+ representations', - '.*\d+ bytes expanded representation size', - '.*\d+ bytes with rep-sharing off' ], - 'Noderev .*' : ['.*\d+ bytes in .*\d+ nodes total', - '.*\d+ bytes in .*\d+ directory noderevs', - '.*\d+ bytes in .*\d+ file noderevs' ], - 'Representation .*' : ['.*\d+ bytes in .*\d+ representations total', - '.*\d+ bytes in .*\d+ directory representations', - '.*\d+ bytes in .*\d+ file representations', - '.*\d+ bytes in .*\d+ representations of added file nodes', - '.*\d+ bytes in .*\d+ directory property representations', - '.*\d+ bytes in .*\d+ file property representations', - '.*\d+ average delta chain length', - '.*\d+ bytes in header & footer overhead' ], + 'Reading revisions' : [r'\s+ 0[ 0-9]*'], + 'Global .*' : [r'.*\d+ bytes in .*\d+ revisions', + r'.*\d+ bytes in .*\d+ changes', + r'.*\d+ bytes in .*\d+ node revision records', + r'.*\d+ bytes in .*\d+ representations', + r'.*\d+ bytes expanded representation size', + r'.*\d+ bytes with rep-sharing off' ], + 'Noderev .*' : [r'.*\d+ bytes in .*\d+ nodes total', + r'.*\d+ bytes in .*\d+ directory noderevs', + r'.*\d+ bytes in .*\d+ file noderevs' ], + 'Representation .*' : [r'.*\d+ bytes in .*\d+ representations total', + r'.*\d+ bytes in .*\d+ directory representations', + r'.*\d+ bytes in .*\d+ file representations', + r'.*\d+ bytes in .*\d+ representations of added file nodes', + r'.*\d+ bytes in .*\d+ directory property representations', + r'.*\d+ bytes in .*\d+ file property representations', + r'.*\d+ average delta chain length', + r'.*\d+ bytes in header & footer overhead' ], '.* representation statistics:' : - ['.*\d+ bytes in .*\d+ reps', - '.*\d+ bytes in .*\d+ shared reps', - '.*\d+ bytes expanded size', - '.*\d+ bytes expanded shared size', - '.*\d+ bytes with rep-sharing off', - '.*\d+ shared references', - '.*\d+ average delta chain length'], - 'Largest.*:' : ['.*\d+ r\d+ */\S*'], + [r'.*\d+ bytes in .*\d+ reps', + r'.*\d+ bytes in .*\d+ shared reps', + r'.*\d+ bytes expanded size', + r'.*\d+ bytes expanded shared size', + r'.*\d+ bytes with rep-sharing off', + r'.*\d+ shared references', + r'.*\d+ average delta chain length'], + 'Largest.*:' : [r'.*\d+ r\d+ */\S*'], 'Extensions by number .*:' : - ['.*\d+ \( ?\d+%\) representations'], + [r'.*\d+ \( ?\d+%\) representations'], 'Extensions by size .*:' : - ['.*\d+ \( ?\d+%\) bytes'], - 'Histogram of .*:' : ['.*\d+ \.\. < \d+.*\d+ \( ?\d+%\) bytes in *\d+ \( ?\d+%\) items'] + [r'.*\d+ \( ?\d+%\) bytes'], + 'Histogram of .*:' : [r'.*\d+ \.\. < \d+.*\d+ \( ?\d+%\) bytes in *\d+ \( ?\d+%\) items'] } # check that the output contains all sections Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnmucc_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnmucc_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnmucc_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svnmucc_tests.py Fri Dec 6 13:59:05 2024 @@ -49,7 +49,7 @@ def reject_bogus_mergeinfo(sbox): sbox.repo_url + '/A') _svnmucc_re = re.compile(b'^(r[0-9]+) committed by jrandom at (.*)$') -_log_re = re.compile('^ ([ADRM] /[^\(]+($| \(from .*:[0-9]+\)$))') +_log_re = re.compile(r'^ ([ADRM] /[^\(]+($| \(from .*:[0-9]+\)$))') _err_re = re.compile('^svnmucc: (.*)$') def test_svnmucc(repo_url, expected_path_changes, *varargs): Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/actions.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/actions.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/actions.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/actions.py Fri Dec 6 13:59:05 2024 @@ -432,27 +432,6 @@ def run_and_verify_svnrdump(dumpfile_con return output -def run_and_verify_svnmover(expected_stdout, expected_stderr, - *varargs): - """Run svnmover command and check its output""" - - expected_exit = 0 - if expected_stderr is not None and expected_stderr != []: - expected_exit = 1 - return run_and_verify_svnmover2(expected_stdout, expected_stderr, - expected_exit, *varargs) - -def run_and_verify_svnmover2(expected_stdout, expected_stderr, - expected_exit, *varargs): - """Run svnmover command and check its output and exit code.""" - - exit_code, out, err = main.run_svnmover(*varargs) - verify.verify_outputs("Unexpected output", out, err, - expected_stdout, expected_stderr) - verify.verify_exit_code("Unexpected return code", exit_code, expected_exit) - return exit_code, out, err - - def run_and_verify_svnmucc(expected_stdout, expected_stderr, *varargs): """Run svnmucc command and check its output""" @@ -1046,9 +1025,9 @@ def run_and_parse_info(*args): # normal line key, value = line.split(':', 1) - if re.search(' \(\d+ lines?\)$', key): + if re.search(r' \(\d+ lines?\)$', key): # numbered continuation lines - match = re.match('^(.*) \((\d+) lines?\)$', key) + match = re.match(r'^(.*) \((\d+) lines?\)$', key) key = match.group(1) lock_comment_lines = int(match.group(2)) elif len(value) > 1: Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/main.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/main.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/main.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/main.py Fri Dec 6 13:59:05 2024 @@ -140,10 +140,7 @@ else: if windows: svneditor_script = os.path.join(sys.path[0], 'svneditor.bat') else: - # This script is in the build tree, not in the source tree. - svneditor_script = os.path.join(os.path.dirname( - os.path.dirname(os.path.abspath('.'))), - 'tests/cmdline/svneditor.sh') + svneditor_script = os.path.join(sys.path[0], 'svneditor.sh') # Username and password used by the working copies wc_author = 'jrandom' @@ -209,7 +206,6 @@ svnauthz_binary = os.path.abspath('../.. svnauthz_validate_binary = os.path.abspath( '../../../tools/server-side/svnauthz-validate' + _exe ) -svnmover_binary = os.path.abspath('../../../tools/dev/svnmover/svnmover' + _exe) # Where to find the libtool script created during build libtool_script = os.path.abspath('../../../libtool') @@ -905,12 +901,6 @@ def run_svnversion(*varargs): as list of lines (including line terminators).""" return run_command(svnversion_binary, 1, False, *varargs) -def run_svnmover(*varargs): - """Run svnmover with VARARGS, returns exit code as int; stdout, stderr as - list of lines (including line terminators).""" - return run_command(svnmover_binary, 1, False, - *(_with_auth(_with_config_dir(varargs)))) - def run_svnmucc(*varargs): """Run svnmucc with VARARGS, returns exit code as int; stdout, stderr as list of lines (including line terminators). Use binary mode for output.""" @@ -1511,7 +1501,7 @@ def merge_notify_line(revstart=None, rev merge operation on revisions REVSTART through REVEND. Omit both REVSTART and REVEND for the case where the left and right sides of the merge are from different URLs.""" - from_foreign_phrase = foreign and "\(from foreign repository\) " or "" + from_foreign_phrase = foreign and r"\(from foreign repository\) " or "" if target: target_re = re.escape(target) else: @@ -1877,7 +1867,7 @@ class TestSpawningThread(threading.Threa class TestRunner: """Encapsulate a single test case (predicate), including logic for - runing the test and test list output.""" + running the test and test list output.""" def __init__(self, func, index): self.pred = svntest.testcase.create_test_case(func) @@ -2188,13 +2178,12 @@ def _create_parser(usage=None): if logger.getEffectiveLevel() == logging.NOTSET: logger.setLevel(logging.WARN) - def set_log_level(option, opt, value, parser, level=None): - if level: - # called from --verbose - logger.setLevel(level) + def set_log_level(option, opt, value, parser): + if value.isdigit(): + level = int(value) else: - # called from --set-log-level - logger.setLevel(getattr(logging, value, None) or int(value)) + level = getattr(logging, value) + logger.setLevel(level) # Set up the parser. # If you add new options, consider adding them in @@ -2213,10 +2202,10 @@ def _create_parser(usage=None): help='Print test doc strings instead of running them') parser.add_option('--milestone-filter', action='store', dest='milestone_filter', help='Limit --list to those with target milestone specified') - parser.add_option('-v', '--verbose', action='callback', - callback=set_log_level, callback_args=(logging.DEBUG, ), + parser.add_option('-v', '--verbose', action='store_const', + dest='set_log_level', const=logging.DEBUG, help='Print binary command-lines (same as ' + - '"--set-log-level logging.DEBUG")') + '"--set-log-level DEBUG")') parser.add_option('-q', '--quiet', action='store_true', help='Print only unexpected results (not with --verbose)') parser.add_option('-p', '--parallel', action='store_const', @@ -2501,10 +2490,15 @@ def execute_tests(test_list, serial_only global svnsync_binary global svndumpfilter_binary global svnversion_binary - global svnmover_binary global svnmucc_binary global svnauthz_binary global svnauthz_validate_binary + global svnfsfs_binary + global entriesdump_binary + global lock_helper_binary + global atomic_ra_revprop_change_binary + global wc_lock_tester_binary + global wc_incomplete_tester_binary global options if test_name: @@ -2606,12 +2600,20 @@ def execute_tests(test_list, serial_only 'svndumpfilter' + _exe) svnversion_binary = os.path.join(options.svn_bin, 'svnversion' + _exe) svnmucc_binary = os.path.join(options.svn_bin, 'svnmucc' + _exe) + svnfsfs_binary = os.path.join(options.svn_bin, 'svnfsfs' + _exe) if options.tools_bin: svnauthz_binary = os.path.join(options.tools_bin, 'svnauthz' + _exe) svnauthz_validate_binary = os.path.join(options.tools_bin, 'svnauthz-validate' + _exe) - svnmover_binary = os.path.join(options.tools_bin, 'svnmover' + _exe) + entriesdump_binary = os.path.join(options.tools_bin, 'entries-dump' + _exe) + lock_helper_binary = os.path.join(options.tools_bin, 'lock-helper' + _exe) + atomic_ra_revprop_change_binary = os.path.join(options.tools_bin, + 'atomic-ra-revprop-change' + _exe) + wc_lock_tester_binary = os.path.join(options.tools_bin, + 'wc-lock-tester' + _exe) + wc_incomplete_tester_binary = os.path.join(options.tools_bin, + 'wc-incomplete-tester' + _exe) ###################################################################### Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/verify.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/verify.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/verify.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/verify.py Fri Dec 6 13:59:05 2024 @@ -852,7 +852,8 @@ def compare_dump_files(label_expected, l print('DIFF of raw dumpfiles (including expected differences)') print('--- ' + (label_expected or 'expected')) print('+++ ' + (label_actual or 'actual')) - print(''.join(ndiff(expected, actual))) + print(''.join(ndiff([repr(line) for line in expected], + [repr(line) for line in actual]))) raise svntest.Failure('DIFF of parsed dumpfiles (ignoring expected differences)\n' + '\n'.join(ndiff( pprint.pformat(parsed_expected).splitlines(), @@ -1024,7 +1025,7 @@ def make_diff_prop_added(pname, pval): ] + make_diff_prop_val("+", pval) def make_diff_prop_modified(pname, pval1, pval2): - """Return a property diff for modification of property PNAME, old value + r"""Return a property diff for modification of property PNAME, old value PVAL1, new value PVAL2. PVAL is a single string with no embedded newlines. A newline at the Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/wc.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/wc.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/wc.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/svntest/wc.py Fri Dec 6 13:59:05 2024 @@ -93,30 +93,30 @@ _re_parse_status = re.compile('^([?!MACD '([KOBT ])' '([C ]) ' '([* ]) +' - '((?P<wc_rev>\d+|-|\?) +(\d|-|\?)+ +(\S+) +)?' + r'((?P<wc_rev>\d+|-|\?) +(\d|-|\?)+ +(\S+) +)?' '(?P<path>.+)$') _re_parse_status_ex = re.compile('^ (' - '( \> moved (from (?P<moved_from>.+)|to (?P<moved_to>.*)))' - '|( \> swapped places with (?P<swapped_with>.+).*)' - '|(\> (?P<tc>.+))' + r'( \> moved (from (?P<moved_from>.+)|to (?P<moved_to>.*)))' + r'|( \> swapped places with (?P<swapped_with>.+).*)' + r'|(\> (?P<tc>.+))' ')$') _re_parse_skipped = re.compile("^(Skipped[^']*) '(.+)'( --.*)?\n") _re_parse_summarize = re.compile("^([MAD ][M ]) (.+)\n") -_re_parse_checkout = re.compile('^([RMAGCUDE_ B][MAGCUDE_ ])' - '([B ])' - '([CAUD ])\s+' - '(.+)') -_re_parse_co_skipped = re.compile('^(Restored|Skipped|Removed external)' - '\s+\'(.+)\'(( --|: ).*)?') -_re_parse_co_restored = re.compile('^(Restored)\s+\'(.+)\'') +_re_parse_checkout = re.compile(r'^([RMAGCUDE_ B][MAGCUDE_ ])' + r'([B ])' + r'([CAUD ])\s+' + r'(.+)') +_re_parse_co_skipped = re.compile(r'^(Restored|Skipped|Removed external)' + r'\s+\'(.+)\'(( --|: ).*)?') +_re_parse_co_restored = re.compile(r'^(Restored)\s+\'(.+)\'') # Lines typically have a verb followed by whitespace then a path. -_re_parse_commit_ext = re.compile('^(([A-Za-z]+( [a-z]+)*)) \'(.+)\'( --.*)?') -_re_parse_commit = re.compile('^(\w+( \(bin\))?)\s+(.+)') +_re_parse_commit_ext = re.compile("^(([A-Za-z]+( [a-z]+)*)) '(.+)'( --.*)?") +_re_parse_commit = re.compile(r'^(\w+( \(bin\))?)\s+(.+)') #rN: eids 0 15 branches 4 _re_parse_eid_header = re.compile('^r(-1|[0-9]+): eids ([0-9]+) ([0-9]+) ' Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/trans_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/trans_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/trans_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/trans_tests.py Fri Dec 6 13:59:05 2024 @@ -304,7 +304,7 @@ def keywords_from_birth(sbox): fp = open(url_unexp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://", + and (re.match(r"\$URL: (http|https|file|svn|svn\+ssh)://", lines[0]))): logger.warn("URL expansion failed for %s", url_unexp_path) raise svntest.Failure @@ -314,7 +314,7 @@ def keywords_from_birth(sbox): fp = open(url_exp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://", + and (re.match(r"\$URL: (http|https|file|svn|svn\+ssh)://", lines[0]))): logger.warn("URL expansion failed for %s", url_exp_path) raise svntest.Failure @@ -324,7 +324,7 @@ def keywords_from_birth(sbox): fp = open(id_unexp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Id: id_unexp", lines[0]))): + and (re.match(r"\$Id: id_unexp", lines[0]))): logger.warn("Id expansion failed for %s", id_exp_path) raise svntest.Failure fp.close() @@ -333,7 +333,7 @@ def keywords_from_birth(sbox): fp = open(id_exp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Id: id_exp", lines[0]))): + and (re.match(r"\$Id: id_exp", lines[0]))): logger.warn("Id expansion failed for %s", id_exp_path) raise svntest.Failure fp.close() @@ -342,7 +342,7 @@ def keywords_from_birth(sbox): fp = open(header_unexp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Header: (https?|file|svn|svn\\+ssh)://.* jrandom", + and (re.match(r"\$Header: (https?|file|svn|svn\+ssh)://.* jrandom", lines[0]))): logger.warn("Header expansion failed for %s", header_unexp_path) raise svntest.Failure @@ -352,7 +352,7 @@ def keywords_from_birth(sbox): fp = open(header_exp_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Header: (https?|file|svn|svn\\+ssh)://.* jrandom", + and (re.match(r"\$Header: (https?|file|svn|svn\+ssh)://.* jrandom", lines[0]))): logger.warn("Header expansion failed for %s", header_exp_path) raise svntest.Failure @@ -409,7 +409,7 @@ def keywords_from_birth(sbox): fp = open(id_with_space_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Id: .*id with space", lines[0]))): + and (re.match(r"\$Id: .*id with space", lines[0]))): logger.warn("Id expansion failed for %s", id_with_space_path) raise svntest.Failure fp.close() @@ -418,7 +418,7 @@ def keywords_from_birth(sbox): fp = open(id_exp_with_dollar_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$Id: .*id_exp with_\$_sign [^$]* jrandom \$", + and (re.match(r"\$Id: .*id_exp with_\$_sign [^$]* jrandom \$", lines[0]))): logger.warn("Id expansion failed for %s", id_exp_with_dollar_path) @@ -645,7 +645,7 @@ def keyword_expanded_on_checkout(sbox): fp = open(other_url_path, 'r') lines = fp.readlines() if not ((len(lines) == 1) - and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://", + and (re.match(r"\$URL: (http|https|file|svn|svn\+ssh)://", lines[0]))): logger.warn("URL expansion failed for %s", other_url_path) raise svntest.Failure Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/update_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/update_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/update_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/update_tests.py Fri Dec 6 13:59:05 2024 @@ -620,8 +620,8 @@ def update_to_resolve_text_conflicts(sbo # "Extra" files that we expect to result from the conflicts. # These are expressed as list of regexps. What a cool system! :-) - extra_files = ['mu.*\.r1', 'mu.*\.r2', 'mu.*\.mine', - 'rho.*\.r1', 'rho.*\.r2', 'rho.*\.mine', 'rho.*\.prej'] + extra_files = [r'mu.*\.r1', r'mu.*\.r2', r'mu.*\.mine', + r'rho.*\.r1', r'rho.*\.r2', r'rho.*\.mine', r'rho.*\.prej'] # Do the update and check the results in three ways. # All "extra" files are passed to detect_conflict_files(). @@ -2700,10 +2700,10 @@ def update_with_obstructing_additions(sb }) # "Extra" files that we expect to result from the conflicts. - extra_files = ['eta\.r0', 'eta\.r2', 'eta\.mine', - 'kappa\.r0', 'kappa\.r2', 'kappa\.mine', - 'epsilon\.r0', 'epsilon\.r2', 'epsilon\.mine', - 'kappa.prej', 'zeta.prej', 'dir_conflicts.prej'] + extra_files = [r'eta\.r0', r'eta\.r2', r'eta\.mine', + r'kappa\.r0', r'kappa\.r2', r'kappa\.mine', + r'epsilon\.r0', r'epsilon\.r2', r'epsilon\.mine', + r'kappa.prej', r'zeta.prej', r'dir_conflicts.prej'] # Perform forced update and check the results in three # ways (including props). @@ -3826,9 +3826,9 @@ def update_accept_conflicts(sbox): 'foo\n')) # Set the expected extra files for the test - extra_files = ['iota.*\.r2', 'iota.*\.r3', 'iota.*\.mine', - 'lambda.*\.r2', 'lambda.*\.r3', 'lambda.*\.mine', - 'rho.*\.r2', 'rho.*\.r3', 'rho.*\.mine'] + extra_files = [r'iota.*\.r2', r'iota.*\.r3', r'iota.*\.mine', + r'lambda.*\.r2', r'lambda.*\.r3', r'lambda.*\.mine', + r'rho.*\.r2', r'rho.*\.r3', r'rho.*\.mine'] # Set the expected status for the test expected_status = svntest.actions.get_virginal_state(wc_backup, 3) Modified: subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/upgrade_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/upgrade_tests.py?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/upgrade_tests.py (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/cmdline/upgrade_tests.py Fri Dec 6 13:59:05 2024 @@ -51,7 +51,7 @@ Issues = svntest.testcase.Issues_deco Issue = svntest.testcase.Issue_deco Wimp = svntest.testcase.Wimp_deco -wc_is_too_old_regex = (".*is too old \(format \d+.*\).*") +wc_is_too_old_regex = (r".*is too old \(format \d+.*\).*") def get_current_format(): Modified: subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_ra/ra-test.c URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_ra/ra-test.c?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_ra/ra-test.c (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_ra/ra-test.c Fri Dec 6 13:59:05 2024 @@ -208,6 +208,50 @@ check_tunnel(void *tunnel_baton, const c static void close_tunnel(void *tunnel_context, void *tunnel_baton); +#ifdef WIN32 +#define EXE_EXTENSION ".exe" +#else +#define EXE_EXTENSION "" +#endif + +static svn_error_t * +find_svnserve(const char **svnserve, apr_pool_t *pool) +{ + const char *abspath_build_layout; + const char *abspath_install_layout; + svn_node_kind_t kind; + + /* try build layout first */ + SVN_ERR(svn_dirent_get_absolute(&abspath_build_layout, + "../../svnserve/svnserve" EXE_EXTENSION, + pool)); + + SVN_ERR(svn_io_check_path(abspath_build_layout, &kind, pool)); + if (kind == svn_node_file) + { + *svnserve = abspath_build_layout; + return SVN_NO_ERROR; + } + + /* otherwise, try install layout */ + SVN_ERR(svn_dirent_get_absolute(&abspath_install_layout, + "svnserve" EXE_EXTENSION, pool)); + + SVN_ERR(svn_io_check_path(abspath_install_layout, &kind, pool)); + if (kind == svn_node_file) + { + *svnserve = abspath_install_layout; + return SVN_NO_ERROR; + } + + return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, + "Could not find svnserve. Checked paths:\n" + " %s\n" + " %s", + svn_dirent_local_style(abspath_build_layout, pool), + svn_dirent_local_style(abspath_install_layout, pool)); +} + static svn_error_t * open_tunnel(svn_stream_t **request, svn_stream_t **response, svn_ra_close_tunnel_func_t *close_func, void **close_baton, @@ -217,7 +261,6 @@ open_tunnel(svn_stream_t **request, svn_ svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) { - svn_node_kind_t kind; apr_proc_t *proc; apr_procattr_t *attr; apr_status_t status; @@ -228,15 +271,7 @@ open_tunnel(svn_stream_t **request, svn_ SVN_TEST_ASSERT(b->magic == TUNNEL_MAGIC); - SVN_ERR(svn_dirent_get_absolute(&svnserve, "../../svnserve/svnserve", pool)); -#ifdef WIN32 - svnserve = apr_pstrcat(pool, svnserve, ".exe", SVN_VA_NULL); -#endif - SVN_ERR(svn_io_check_path(svnserve, &kind, pool)); - if (kind != svn_node_file) - return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, - "Could not find svnserve at %s", - svn_dirent_local_style(svnserve, pool)); + SVN_ERR(find_svnserve(&svnserve, pool)); status = apr_procattr_create(&attr, pool); if (status == APR_SUCCESS) Propchange: subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_subr/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Fri Dec 6 13:59:05 2024 @@ -29,6 +29,7 @@ string-test string-test.tmp subst-test target-test +task-test time-test translate-test utf-test Modified: subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_subr/opt-test.c URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_subr/opt-test.c?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_subr/opt-test.c (original) +++ subversion/branches/pristine-checksum-kind/subversion/tests/libsvn_subr/opt-test.c Fri Dec 6 13:59:05 2024 @@ -27,6 +27,7 @@ #include "../svn_test.h" #include "svn_opt.h" +#include "private/svn_opt_private.h" static svn_error_t * @@ -190,6 +191,78 @@ test_svn_opt_args_to_target_array2(apr_p return SVN_NO_ERROR; } +static const char * +revision_ranges_to_string(apr_array_header_t *ranges, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool) +{ + svn_stringbuf_t *result = svn_stringbuf_create_empty(result_pool); + int i; + + for (i = 0; i < ranges->nelts; i++) + { + svn_opt_revision_range_t *range = + APR_ARRAY_IDX(ranges, i, svn_opt_revision_range_t *); + + if (i > 0) + { + svn_stringbuf_appendcstr(result, ","); + } + + svn_stringbuf_appendcstr(result, + svn_opt__revision_to_string(&range->start, + scratch_pool)); + svn_stringbuf_appendcstr(result, ":"); + + svn_stringbuf_appendcstr(result, + svn_opt__revision_to_string(&range->end, + scratch_pool)); + } + + return result->data; +} + +static svn_error_t* +test_svn_opt_parse_change_to_range(apr_pool_t *pool) +{ + int i; + static struct { + const char *input; + const int expected_rv; + const char *expected_range; + } const tests[] = { + { "123", 0, "122:123"}, + { "r123", 0, "122:123"}, + { "-123", 0, "123:122"}, + { "-r123", 0, "123:122"}, + { "r-123", 0, "123:122"}, + { "--123", -1, ""}, + { "-r-123", -1, ""}, + { "123-456", 0, "122:456"}, + { "r123-r456", 0, "122:456"}, + { "--r123", -1, ""}, + { "123--456", -1, ""}, + { "1-0", -1, ""}, + { "0-1", -1, ""}, + }; + + for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) + { + apr_array_header_t *ranges = + apr_array_make(pool, 0, sizeof(svn_opt_revision_range_t *)); + + SVN_TEST_INT_ASSERT( + svn_opt_parse_change_to_range(ranges, tests[i].input, pool), + tests[i].expected_rv); + + SVN_TEST_STRING_ASSERT( + revision_ranges_to_string(ranges, pool, pool), + tests[i].expected_range); + } + + return SVN_NO_ERROR; +} + /* The test table. */ @@ -202,6 +275,8 @@ static struct svn_test_descriptor_t test "test svn_opt_parse_path"), SVN_TEST_PASS2(test_svn_opt_args_to_target_array2, "test svn_opt_args_to_target_array2"), + SVN_TEST_PASS2(test_svn_opt_parse_change_to_range, + "test svn_opt_parse_change_to_range"), SVN_TEST_NULL }; Modified: subversion/branches/pristine-checksum-kind/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c (original) +++ subversion/branches/pristine-checksum-kind/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c Fri Dec 6 13:59:05 2024 @@ -408,7 +408,10 @@ svn_min__check_cancel(void *baton) * return SVN_NO_ERROR. */ static svn_error_t * -sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool) +sub_main(int *exit_code, + int argc, + const svn_cmdline__argv_char_t *cmdline_argv[], + apr_pool_t *pool) { svn_error_t *err; int opt_id; @@ -425,12 +428,15 @@ sub_main(int *exit_code, int argc, const svn_boolean_t force_interactive = FALSE; apr_hash_t *cfg_hash; svn_boolean_t read_pass_from_stdin = FALSE; + const char **argv; received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int)); /* Check library versions */ SVN_ERR(check_lib_versions()); + SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool)); + #if defined(WIN32) || defined(__CYGWIN__) /* Set the working copy administrative directory name. */ if (getenv("SVN_ASP_DOT_NET_HACK")) @@ -946,7 +952,7 @@ sub_main(int *exit_code, int argc, const } int -main(int argc, const char *argv[]) +SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[]) { apr_pool_t *pool; int exit_code = EXIT_SUCCESS; Modified: subversion/branches/pristine-checksum-kind/tools/client-side/svnconflict/svnconflict.c URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/tools/client-side/svnconflict/svnconflict.c?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/tools/client-side/svnconflict/svnconflict.c (original) +++ subversion/branches/pristine-checksum-kind/tools/client-side/svnconflict/svnconflict.c Fri Dec 6 13:59:05 2024 @@ -632,7 +632,10 @@ svnconflict_resolve_tree(apr_getopt_t *o * return SVN_NO_ERROR. */ static svn_error_t * -sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool) +sub_main(int *exit_code, + int argc, + const svn_cmdline__argv_char_t *cmdline_argv[], + apr_pool_t *pool) { svn_error_t *err; int opt_id; @@ -647,12 +650,15 @@ sub_main(int *exit_code, int argc, const svn_config_t *cfg_config; apr_hash_t *cfg_hash; svn_boolean_t read_pass_from_stdin = FALSE; + const char **argv; received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int)); /* Check library versions */ SVN_ERR(check_lib_versions()); + SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool)); + #if defined(WIN32) || defined(__CYGWIN__) /* Set the working copy administrative directory name. */ if (getenv("SVN_ASP_DOT_NET_HACK")) @@ -949,7 +955,7 @@ sub_main(int *exit_code, int argc, const } int -main(int argc, const char *argv[]) +SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[]) { apr_pool_t *pool; int exit_code = EXIT_SUCCESS; Modified: subversion/branches/pristine-checksum-kind/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c URL: http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-kind/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c?rev=1922345&r1=1922344&r2=1922345&view=diff ============================================================================== --- subversion/branches/pristine-checksum-kind/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c (original) +++ subversion/branches/pristine-checksum-kind/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c Fri Dec 6 13:59:05 2024 @@ -302,7 +302,10 @@ check_lib_versions(void) * return SVN_NO_ERROR. */ static svn_error_t * -sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool) +sub_main(int *exit_code, + int argc, + const svn_cmdline__argv_char_t *cmdline_argv[], + apr_pool_t *pool) { apr_getopt_t *os; const apr_getopt_option_t options[] = @@ -313,10 +316,13 @@ sub_main(int *exit_code, int argc, const {0, 0, 0, 0} }; apr_array_header_t *remaining_argv; + const char **argv; /* Check library versions */ SVN_ERR(check_lib_versions()); + SVN_ERR(svn_cmdline__get_cstring_argv(&argv, argc, cmdline_argv, pool)); + #if defined(WIN32) || defined(__CYGWIN__) /* Set the working copy administrative directory name. */ if (getenv("SVN_ASP_DOT_NET_HACK")) @@ -383,7 +389,7 @@ sub_main(int *exit_code, int argc, const } int -main(int argc, const char *argv[]) +SVN_CMDLINE__MAIN(int argc, const svn_cmdline__argv_char_t *argv[]) { apr_pool_t *pool; int exit_code = EXIT_SUCCESS;
