You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2018/11/09 05:51:21 UTC
svn commit: r1846211 -
/subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py
Author: brane
Date: Fri Nov 9 05:51:20 2018
New Revision: 1846211
URL: http://svn.apache.org/viewvc?rev=1846211&view=rev
Log:
Add some more peg revision parsing tests.
* subversion/tests/cmdline/pegrev_parse_tests.py
(do_remove): New helper function.
(remove_here_*_escape_peg, remove_here_*_no_escape_peg): New test cases.
(rename_to_subdir_2_dst_escape_peg): Renamed from move_file_subdir_2_dst_escape_peg.
(rename_to_subdir_2_no_dst_escape_peg): Renamed from move_file_subdir_2_no_dst_escape_peg.
Modified:
subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py
Modified: subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py?rev=1846211&r1=1846210&r2=1846211&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/pegrev_parse_tests.py Fri Nov 9 05:51:20 2018
@@ -116,6 +116,14 @@ def do_make_dir_e(sbox, dst, dst_cmdline
"like do_make_dir() but with an empty sandbox"
return do_make_dir(sbox, dst, dst_cmdline, expected_stderr, True)
+def do_remove(sbox, dst, dst_cmdline, expected_stderr=None):
+ expected_status = build_trojan_sandbox(sbox, expected_stderr)
+ if expected_status is not None:
+ expected_status.tweak(dst, status='D ')
+
+ run_svn(sbox, expected_status, expected_stderr,
+ 'remove', dst_cmdline)
+
def do_rename(sbox, src, src_cmdline, dst, dst_cmdline,
expected_stderr=None):
expected_status = build_trojan_sandbox(sbox, expected_stderr)
@@ -260,7 +268,6 @@ def add_file_subdir_7_no_escape_peg(sbox
"add file 'E/@' without pegrev escape"
do_add_file(sbox, 'E/@', 'E/@', "svn: E125001: 'E/@'")
-
#=====================================================================
# Tests for 'svn mkdir' in the current directory
@@ -385,11 +392,73 @@ def make_dir_subdir_7_no_escape_peg(sbox
do_make_dir(sbox, 'E/@', 'E/@', "svn: E125001: 'E/@'")
#=====================================================================
+# Tests for 'svn remove' in the current directory
+
+def remove_here_1_escape_peg(sbox):
+ "remove 'iota' with pegrev escape"
+ do_remove(sbox, 'iota', 'iota@')
+
+def remove_here_2_escape_peg(sbox):
+ "remove '@zeta' with pegrev escape"
+ do_remove(sbox, '@zeta', '@zeta@')
+
+def remove_here_3_escape_peg(sbox):
+ "remove '_@theta' with pegrev escape"
+ do_remove(sbox, '_@theta', '_@theta@')
+
+def remove_here_4_escape_peg(sbox):
+ "remove '.@kappa' with pegrev escape"
+ do_remove(sbox, '.@kappa', '.@kappa@')
+
+def remove_here_5_escape_peg(sbox):
+ "remove 'lambda@' with pegrev escape"
+ do_remove(sbox, 'lambda@', 'lambda@@')
+
+def remove_here_6_escape_peg(sbox):
+ "remove '@omicron@' with pegrev escape"
+ do_remove(sbox, '@omicron@', '@omicron@@')
+
+def remove_here_7_escape_peg(sbox):
+ "remove '@' with pegrev escape"
+ do_remove(sbox, '@', '@@')
+
+#---------------------------------------------------------------------
+
+def remove_here_1_no_escape_peg(sbox):
+ "remove 'iota' without pegrev escape"
+ do_remove(sbox, 'iota', 'iota')
+
+def remove_here_2_no_escape_peg(sbox):
+ "remove '@zeta' without pegrev escape"
+ do_remove(sbox, '@zeta', '@zeta', "svn: E125001: '@zeta'")
+
+def remove_here_3_no_escape_peg(sbox):
+ "remove '_@theta' without pegrev escape"
+ do_remove(sbox, '_@theta', '_@theta', "svn: E200009: '_@theta'")
+
+@Wimp("The error message mentions '@kappa' instead of '.@kappa'")
+def remove_here_4_no_escape_peg(sbox):
+ "remove '.@kappa' without pegrev escape"
+ do_remove(sbox, '.@kappa', '.@kappa', "svn: E200009: '.@kappa'")
+
+def remove_here_5_no_escape_peg(sbox):
+ "remove 'lambda@' without pegrev escape"
+ do_remove(sbox, 'lambda@', 'lambda@', 'svn: E200005: ')
+
+def remove_here_6_no_escape_peg(sbox):
+ "remove '@omicron@' without pegrev escape"
+ do_remove(sbox, '@omicron@', '@omicron@', 'svn: E200005: ')
+
+def remove_here_7_no_escape_peg(sbox):
+ "remove '@' without pegrev escape"
+ do_remove(sbox, '@', '@', "svn: E125001: '@'")
+
+#=====================================================================
# Test for 'svn move' to a subdirectory
@Wimp("Rename creates 'E/@tau@' instead of '@/@tau'")
@Issue(4530)
-def move_file_subdir_2_dst_escape_peg(sbox):
+def rename_to_subdir_2_dst_escape_peg(sbox):
"rename 'iota' to 'E/@tau with pegrev escape"
# NOTE: This rename succeeds, but creates E/@tau@ instead of E/@tau, even
# though it should strip away the pegrev escape from the target.
@@ -399,7 +468,7 @@ def move_file_subdir_2_dst_escape_peg(sb
@Wimp("Rename creates 'E@tau' instead of failing")
@Issue(4530)
-def move_file_subdir_2_no_dst_escape_peg(sbox):
+def rename_to_subdir_2_no_dst_escape_peg(sbox):
"rename 'iota' to 'E/@tau without pegrev escape"
# NOTE: This rename succeeds, but creates E@tau in the current directory,
# when instead it should fail with 'svn: E125001: ...'.
@@ -475,8 +544,24 @@ test_list = [ None,
# skipped: make_dir_subdir_6_no_escape_peg
make_dir_subdir_7_no_escape_peg,
- move_file_subdir_2_dst_escape_peg,
- move_file_subdir_2_no_dst_escape_peg,
+ remove_here_1_escape_peg,
+ remove_here_2_escape_peg,
+ remove_here_3_escape_peg,
+ remove_here_4_escape_peg,
+ remove_here_5_escape_peg,
+ remove_here_6_escape_peg,
+ remove_here_7_escape_peg,
+
+ remove_here_1_no_escape_peg,
+ remove_here_2_no_escape_peg,
+ remove_here_3_no_escape_peg,
+ remove_here_4_no_escape_peg,
+ remove_here_5_no_escape_peg,
+ remove_here_6_no_escape_peg,
+ remove_here_7_no_escape_peg,
+
+ rename_to_subdir_2_dst_escape_peg,
+ rename_to_subdir_2_no_dst_escape_peg,
]
if __name__ == '__main__':