Noorul Islam K M <noo...@collab.net> writes:

> Log 
>
> [[[
>
> New XFail tests for issue 3609.
>
> * subversion/tests/cmdline/mergeinfo_tests.py
>   (mergeinfo_url_special_characters, test_list),
>   subversion/tests/cmdline/prop_tests.py
>   (props_url_special_characters, test_list),
>   subversion/tests/cmdline/merge_tests.py
>   (merge_url_special_characters, test_list),
>   subversion/tests/cmdline/log_tests.py
>   (log_url_special_characters, test_list),
>   subversion/tests/cmdline/copy_tests.py
>   (copy_url_special_characters, test_list),
>   subversion/tests/cmdline/blame_tests.py
>   (blame_url_special_characters, test_list):
>     New XFail tests.
>
> Patch by: Noorul Islam K M <noorul{_AT_}collab.net>
> ]]]
>
> Index: subversion/tests/cmdline/mergeinfo_tests.py
> ===================================================================
> --- subversion/tests/cmdline/mergeinfo_tests.py       (revision 1062140)
> +++ subversion/tests/cmdline/mergeinfo_tests.py       (working copy)
> @@ -479,6 +479,18 @@
>      adjust_error_for_server_version(''),
>      ['4', '5'], A_path, A_COPY_path + '@PREV', '--show-revs', 'eligible')
>  
> +def mergeinfo_url_special_characters(sbox):
> +  """special characters in svn mergeinfo URL"""
> +
> +  sbox.build()
> +  wc_dir = sbox.wc_dir
> +  special_url = sbox.repo_url + '/%2E'
> +
> +  svntest.actions.run_and_verify_svn(None, None, [], 'ps', 
> SVN_PROP_MERGEINFO,
> +                                     '/:1', wc_dir)
> +  
> svntest.actions.run_and_verify_mergeinfo(adjust_error_for_server_version(""),
> +                                           ['1'], special_url, wc_dir)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -494,6 +506,7 @@
>                SkipUnless(recursive_mergeinfo, server_has_mergeinfo),
>                SkipUnless(mergeinfo_on_pegged_wc_path,
>                           server_has_mergeinfo),
> +              XFail(mergeinfo_url_special_characters),
>
>               ]
>  
>  if __name__ == '__main__':
> Index: subversion/tests/cmdline/prop_tests.py
> ===================================================================
> --- subversion/tests/cmdline/prop_tests.py    (revision 1062140)
> +++ subversion/tests/cmdline/prop_tests.py    (working copy)
> @@ -2335,6 +2335,31 @@
>    if ((len(expected_output) * 3) - 6) != len(pg_stdout_redir):
>      raise svntest.Failure("Redirected pg -vR has unexpected duplicates")
>  
> +def props_url_special_characters(sbox):
> +  "set/get/list/del with special characters in URL"
> +
> +  sbox.build()
> +  wc_dir = sbox.wc_dir
> +  special_url = sbox.repo_url + '/%2E'
> +  
> +  svntest.actions.enable_revprop_changes(sbox.repo_dir)
> +
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     'propset', '--revprop', '-r', '0',
> +                                     'cash-sound', 'cha-ching!', special_url)
> +
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     'propget', '--revprop', '-r', '0',
> +                                     'cash-sound', special_url)
> +
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     'proplist', '--revprop', '-r', '0',
> +                                     special_url)
> +
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     'propdel', '--revprop', '-r', '0',
> +                                     'cash-sound', special_url)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -2380,6 +2405,7 @@
>                obstructed_subdirs,
>                atomic_over_ra,
>                propget_redirection,
> +              XFail(props_url_special_characters),
>               ]
>  
>  if __name__ == '__main__':
> Index: subversion/tests/cmdline/merge_tests.py
> ===================================================================
> --- subversion/tests/cmdline/merge_tests.py   (revision 1062140)
> +++ subversion/tests/cmdline/merge_tests.py   (working copy)
> @@ -16402,6 +16402,33 @@
>    if not os.access(beta_path, os.X_OK):
>      raise svntest.Failure("beta is not marked as executable after commit")
>  
> +def merge_url_special_characters(sbox):
> +  """special characters in svn merge URL"""
> +
> +  sbox.build()
> +  wc_dir = sbox.wc_dir
> +  a_dir = os.path.join(wc_dir, 'A')
> +  new_file = os.path.join(a_dir, "new file")
> +
> +  # Make r2.
> +  svntest.main.file_append(new_file, "Initial text in the file.\n")
> +  svntest.main.run_svn(None, "add", new_file)
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     "ci", "-m", "r2", wc_dir)
> +
> +  # Make r3.
> +  svntest.main.file_append(new_file, "Next line of text in the file.\n")
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     "ci", "-m", "r3", wc_dir)
> +
> +  os.chdir(wc_dir)
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     "up")
> +
> +  special_url = sbox.repo_url + '/A' + '/%2E'
> +  svntest.actions.run_and_verify_svn(None, None, [],
> +                                     "merge", "-r3:2", special_url)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -16595,6 +16622,7 @@
>                XFail(subtree_merges_inherit_invalid_working_mergeinfo),
>                XFail(SkipUnless(merge_change_to_file_with_executable,
>                                      svntest.main.is_posix_os)),
> +              XFail(merge_url_special_characters),
>               ]
>  
>  if __name__ == '__main__':
> Index: subversion/tests/cmdline/log_tests.py
> ===================================================================
> --- subversion/tests/cmdline/log_tests.py     (revision 1062140)
> +++ subversion/tests/cmdline/log_tests.py     (working copy)
> @@ -1750,6 +1750,20 @@
>                            "differs from that on move source '%s'"
>                            % (psi_moved_path, psi_path))
>  
> +def log_url_special_characters(sbox):
> +  """special characters in svn log URL"""
> +  sbox.build(create_wc = False)
> +
> +  special_urls = [sbox.repo_url + '/A' + '/%2E',
> +                  sbox.repo_url + '%2F' + 'A']
> +
> +  for url in special_urls:
> +    exit_code, output, err = svntest.actions.run_and_verify_svn(None, None, 
> [],
> +                                                              'log', '-c',
> +                                                              1, url)
> +    log_chain = parse_log_output(output)
> +    check_log_chain(log_chain, [1])
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -1792,6 +1806,7 @@
>                SkipUnless(merge_sensitive_log_propmod_merge_inheriting_path,
>                           server_has_mergeinfo),
>                log_of_local_copy,
> +              XFail(log_url_special_characters),
>               ]
>  
>  if __name__ == '__main__':
> Index: subversion/tests/cmdline/copy_tests.py
> ===================================================================
> --- subversion/tests/cmdline/copy_tests.py    (revision 1062140)
> +++ subversion/tests/cmdline/copy_tests.py    (working copy)
> @@ -4958,6 +4958,23 @@
>                                       '.*Cannot move URL.* into itself.*',
>                                       'move', repo_url, repo_url)
>  
> +def copy_url_special_characters(sbox):
> +  """special characters in svn cp URL"""
> +  sbox.build()
> +  wc_dir = sbox.wc_dir
> +
> +  a_path = os.path.join(wc_dir, 'A')
> +  new_path1 = os.path.join(a_path, 'Folder1')
> +  os.mkdir(new_path1)
> +  new_path2 = os.path.join(a_path, 'Folder2')
> +  os.mkdir(new_path2)
> +  svntest.main.run_svn(None, "add", new_path1, new_path2)
> +  sbox.simple_commit()
> +  from_special_url = sbox.repo_url + '/A/Folder1' + '/%2E'
> +
> +  svntest.actions.run_and_verify_svn(None, None, [], 'copy',
> +                                     from_special_url, new_path2)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -5061,6 +5078,7 @@
>                copy_wc_over_deleted_same_kind,
>                copy_wc_over_deleted_other_kind,
>                move_wc_and_repo_dir_to_itself,
> +              XFail(copy_url_special_characters),
>               ]
>  
>  if __name__ == '__main__':
> Index: subversion/tests/cmdline/blame_tests.py
> ===================================================================
> --- subversion/tests/cmdline/blame_tests.py   (revision 1062140)
> +++ subversion/tests/cmdline/blame_tests.py   (working copy)
> @@ -703,7 +703,19 @@
>    svntest.actions.run_and_verify_svn(None, expected_output, [],
>                                      'blame', '-g', mu_path)
>  
> +def blame_url_special_characters(sbox):
> +  """special characters in svn blame URL"""
> +  sbox.build(create_wc = False)
>  
> +  special_urls = [sbox.repo_url + '/A' + '/%2E',
> +                  sbox.repo_url + '%2F' + 'A']
> +
> +  expected_err = "svn: '/A' is not a file in revision 1\n"
> +
> +  for url in special_urls:
> +    svntest.actions.run_and_verify_svn2(None, None, expected_err, 1,
> +                                        'blame', url)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -724,6 +736,7 @@
>                blame_peg_rev_file_not_in_head,
>                blame_file_not_in_head,
>                blame_output_after_merge,
> +              XFail(blame_url_special_characters)
>               ]
>  
>  if __name__ == '__main__':

It will be great if someone could review this patch.

Thanks and Regards
Noorul

Reply via email to