summaryrefslogtreecommitdiff
path: root/subversion/tests/cmdline/shelf_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/tests/cmdline/shelf_tests.py')
-rwxr-xr-xsubversion/tests/cmdline/shelf_tests.py56
1 files changed, 55 insertions, 1 deletions
diff --git a/subversion/tests/cmdline/shelf_tests.py b/subversion/tests/cmdline/shelf_tests.py
index fe6108a..6be2099 100755
--- a/subversion/tests/cmdline/shelf_tests.py
+++ b/subversion/tests/cmdline/shelf_tests.py
@@ -46,6 +46,10 @@ Issue = svntest.testcase.Issue_deco
Wimp = svntest.testcase.Wimp_deco
Item = wc.StateItem
+def shelf3_enabled():
+ v = os.getenv('SVN_EXPERIMENTAL_COMMANDS')
+ return v is not None and v.find('shelf3') >= 0
+
#----------------------------------------------------------------------
def state_from_status(wc_dir,
@@ -126,6 +130,12 @@ def shelve_unshelve_verify(sbox, modifier, cannot_shelve=False):
])
svntest.actions.run_and_verify_svn(expected_output, [], 'x-shelves')
+ # Diff; ensure something comes out and it doesn't crash
+ svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [],
+ 'x-shelf-diff', 'foo')
+ svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [],
+ 'x-shelf-diff', '--summarize', 'foo')
+
# Unshelve; check the original modifications are here again
svntest.actions.run_and_verify_svn(None, [],
'x-unshelve', 'foo')
@@ -153,6 +163,7 @@ def shelve_unshelve(sbox, modifier, cannot_shelve=False):
#
# Each test must return on success or raise on failure.
+@SkipUnless(shelf3_enabled)
def shelve_text_mods(sbox):
"shelve text mods"
@@ -163,6 +174,7 @@ def shelve_text_mods(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_prop_changes(sbox):
"shelve prop changes"
@@ -174,6 +186,7 @@ def shelve_prop_changes(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_adds(sbox):
"shelve adds"
@@ -187,6 +200,7 @@ def shelve_adds(sbox):
#----------------------------------------------------------------------
@Issue(4709)
+@SkipUnless(shelf3_enabled)
def shelve_deletes(sbox):
"shelve deletes"
@@ -197,6 +211,7 @@ def shelve_deletes(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_replace(sbox):
"shelve replace"
@@ -209,6 +224,7 @@ def shelve_replace(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_empty_adds(sbox):
"shelve empty adds"
sbox.build(empty=True)
@@ -222,6 +238,7 @@ def shelve_empty_adds(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_empty_deletes(sbox):
"shelve empty deletes"
sbox.build(empty=True)
@@ -237,6 +254,7 @@ def shelve_empty_deletes(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_from_inner_path(sbox):
"shelve from inner path"
@@ -297,6 +315,7 @@ def save_revert_restore(sbox, modifier1, modifier2):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def checkpoint_basic(sbox):
"checkpoint basic"
@@ -312,6 +331,7 @@ def checkpoint_basic(sbox):
#----------------------------------------------------------------------
@Issue(3747)
+@SkipUnless(shelf3_enabled)
def shelve_mergeinfo(sbox):
"shelve mergeinfo"
@@ -323,6 +343,7 @@ def shelve_mergeinfo(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def unshelve_refuses_if_conflicts(sbox):
"unshelve refuses if conflicts"
@@ -366,6 +387,7 @@ def unshelve_refuses_if_conflicts(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_binary_file_mod(sbox):
"shelve binary file mod"
@@ -387,6 +409,7 @@ def shelve_binary_file_mod(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_binary_file_add(sbox):
"shelve binary file add"
@@ -408,6 +431,7 @@ def shelve_binary_file_add(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_binary_file_del(sbox):
"shelve binary file del"
@@ -429,6 +453,7 @@ def shelve_binary_file_del(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_binary_file_replace(sbox):
"shelve binary file replace"
@@ -451,6 +476,7 @@ def shelve_binary_file_replace(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_with_log_message(sbox):
"shelve with log message"
@@ -500,6 +526,7 @@ def run_and_verify_shelf_status(wc_dir, expected_status, shelf):
run_and_verify_status(wc_dir, expected_status,
changelists=['svn:shelf:' + shelf])
+@SkipUnless(shelf3_enabled)
def shelf_status(sbox):
"shelf status"
@@ -526,6 +553,7 @@ def shelf_status(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def shelve_mkdir(sbox):
"shelve mkdir"
@@ -539,6 +567,7 @@ def shelve_mkdir(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_rmdir(sbox):
"shelve rmdir"
@@ -554,6 +583,7 @@ def shelve_rmdir(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def shelve_replace_dir(sbox):
"shelve replace dir"
@@ -569,6 +599,7 @@ def shelve_replace_dir(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_file_copy(sbox):
"shelve file copy"
@@ -582,6 +613,7 @@ def shelve_file_copy(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def shelve_dir_copy(sbox):
"shelve dir copy"
@@ -595,6 +627,7 @@ def shelve_dir_copy(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def list_shelves(sbox):
"list_shelves"
@@ -637,6 +670,7 @@ def list_shelves(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def refuse_to_shelve_conflict(sbox):
"refuse to shelve conflict"
@@ -704,6 +738,7 @@ def unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
os.chdir(was_cwd)
@XFail()
+@SkipUnless(shelf3_enabled)
def unshelve_text_mod_merge(sbox):
"unshelve text mod merge"
@@ -729,6 +764,7 @@ def unshelve_text_mod_merge(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def unshelve_text_mod_conflict(sbox):
"unshelve text mod conflict"
@@ -760,6 +796,7 @@ def unshelve_text_mod_conflict(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def unshelve_undeclared_binary_mod_conflict(sbox):
"unshelve undeclared binary mod conflict"
@@ -791,6 +828,7 @@ def unshelve_undeclared_binary_mod_conflict(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def unshelve_binary_mod_conflict(sbox):
"unshelve binary mod conflict"
@@ -820,6 +858,7 @@ def unshelve_binary_mod_conflict(sbox):
#----------------------------------------------------------------------
+@SkipUnless(shelf3_enabled)
def unshelve_text_prop_merge(sbox):
"unshelve text prop merge"
@@ -842,6 +881,7 @@ def unshelve_text_prop_merge(sbox):
#----------------------------------------------------------------------
@XFail()
+@SkipUnless(shelf3_enabled)
def unshelve_text_prop_conflict(sbox):
"unshelve text prop conflict"
@@ -903,6 +943,7 @@ def run_and_verify_shelf_diff_summarize(output_tree, shelf, *args):
#----------------------------------------------------------------------
# Exercise a very basic case of shelf-diff.
+@SkipUnless(shelf3_enabled)
def shelf_diff_simple(sbox):
"shelf diff simple"
@@ -917,6 +958,8 @@ def shelf_diff_simple(sbox):
sbox.simple_propset('p2', 'v', 'A/mu')
def modifier1(sbox):
+ sbox.simple_rm('A/B/lambda')
+ sbox.simple_add_text('This is a new file.\n', 'A/B/new')
sbox.simple_append('A/mu', 'New line.\n')
sbox.simple_propset('p1', 'changed', 'A/mu')
@@ -932,7 +975,15 @@ def shelf_diff_simple(sbox):
'x-shelf-save', 'foo')
# basic svn-style diff
- expected_output = make_diff_header('A/mu', 'revision 2', 'working copy') + [
+ expected_output = make_diff_header('A/B/lambda', 'revision 2', 'nonexistent') + [
+ "@@ -1 +0,0 @@\n",
+ "-This is the file 'lambda'.\n"
+ ]
+ expected_output += make_diff_header('A/B/new', 'nonexistent', 'working copy') + [
+ "@@ -0,0 +1 @@\n",
+ "+This is a new file.\n"
+ ]
+ expected_output += make_diff_header('A/mu', 'revision 2', 'working copy') + [
"@@ -1 +1,2 @@\n",
" This is the file 'mu'.\n",
"+New line.\n",
@@ -943,6 +994,8 @@ def shelf_diff_simple(sbox):
# basic summary diff
expected_diff = svntest.wc.State(wc_dir, {
+ 'A/B/lambda': Item(status='D '),
+ 'A/B/new': Item(status='A '),
'A/mu': Item(status='MM'),
})
run_and_verify_shelf_diff_summarize(expected_diff, 'foo')
@@ -951,6 +1004,7 @@ def shelf_diff_simple(sbox):
@XFail()
@Issue(4827)
+@SkipUnless(shelf3_enabled)
def shelve_with_kw_translation(sbox):
"shelve with kw translation"
sbox.build(empty=True)