You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/02/06 16:31:48 UTC
svn commit: r1067683 [5/6] - in /subversion/branches/performance: ./ build/
notes/ notes/commit-access-templates/ subversion/include/
subversion/include/private/ subversion/libsvn_client/
subversion/libsvn_delta/ subversion/libsvn_diff/ subversion/libs...
Modified: subversion/branches/performance/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/merge_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/merge_tests.py Sun Feb 6 15:31:45 2011
@@ -34,10 +34,12 @@ from svntest import main, wc, verify, ac
# (abbreviation)
Item = wc.StateItem
-XFail = svntest.testcase.XFail
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
exp_noop_up_out = svntest.actions.expected_noop_update_output
from svntest.main import SVN_PROP_MERGEINFO
@@ -110,6 +112,7 @@ def check_mergeinfo_recursively(root_pat
# Each test must return on success or raise on failure.
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def textual_merges_galore(sbox):
"performing a merge, with mixed results"
@@ -404,6 +407,7 @@ def textual_merges_galore(sbox):
#----------------------------------------------------------------------
# Merge should copy-with-history when adding files or directories
+@SkipUnless(server_has_mergeinfo)
def add_with_history(sbox):
"merge and add new files/dirs with history"
@@ -530,6 +534,8 @@ def add_with_history(sbox):
#----------------------------------------------------------------------
# Issue 953
+@SkipUnless(server_has_mergeinfo)
+@Issue(953)
def simple_property_merges(sbox):
"some simple property merges"
@@ -746,6 +752,7 @@ def simple_property_merges(sbox):
#----------------------------------------------------------------------
# This is a regression for issue #1176.
+@Issue(1176)
def merge_similar_unrelated_trees(sbox):
"merging similar trees ancestrally unrelated"
@@ -935,21 +942,27 @@ def merge_one_file_helper(sbox, arg_flav
svntest.actions.run_and_verify_status(wc_dir, expected_status)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(1150)
def merge_one_file_using_r(sbox):
- "merge one file (issue #1150) using the -r option"
+ "merge one file using the -r option"
merge_one_file_helper(sbox, 'r')
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(1150)
def merge_one_file_using_c(sbox):
- "merge one file (issue #1150) using the -c option"
+ "merge one file using the -c option"
merge_one_file_helper(sbox, 'c')
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_one_file_using_implicit_revs(sbox):
"merge one file without explicit revisions"
merge_one_file_helper(sbox, '*')
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_record_only(sbox):
"mark a revision range as merged"
merge_one_file_helper(sbox, 'r', 1)
@@ -1072,16 +1085,19 @@ def merge_with_implicit_target_helper(sb
(svntest.tree.get_text('mu'), orig_mu_text))
#----------------------------------------------------------------------
+@Issue(785)
def merge_with_implicit_target_using_r(sbox):
"merging a file w/no explicit target path using -r"
merge_with_implicit_target_helper(sbox, 'r')
#----------------------------------------------------------------------
+@Issue(785)
def merge_with_implicit_target_using_c(sbox):
"merging a file w/no explicit target path using -c"
merge_with_implicit_target_helper(sbox, 'c')
#----------------------------------------------------------------------
+@Issue(785)
def merge_with_implicit_target_and_revs(sbox):
"merging a file w/no explicit target path or revs"
merge_with_implicit_target_helper(sbox, '*')
@@ -1186,6 +1202,8 @@ def merge_with_prev(sbox):
# Regression test for issue #1319: 'svn merge' should *not* 'C' when
# merging a change into a binary file, unless it has local mods, or has
# different contents from the left side of the merge.
+@SkipUnless(server_has_mergeinfo)
+@Issue(1319)
def merge_binary_file(sbox):
"merge change into unchanged binary file"
@@ -1269,6 +1287,8 @@ def merge_binary_file(sbox):
# Regression test for Issue #1297:
# A merge that creates a new file followed by an immediate diff
# The diff should succeed.
+@SkipUnless(server_has_mergeinfo)
+@Issue(1297)
def merge_in_new_file_and_diff(sbox):
"diff after merge that creates a new file"
@@ -1355,6 +1375,8 @@ def merge_in_new_file_and_diff(sbox):
# Issue #1425: 'svn merge' should skip over any unversioned obstructions.
# This test involves tree conflicts. - but attempting to test for
# pre-tree-conflict behaviour
+@SkipUnless(server_has_mergeinfo)
+@Issue([1425, 2898])
def merge_skips_obstructions(sbox):
"merge should skip over unversioned obstructions"
@@ -1657,6 +1679,7 @@ def merge_skips_obstructions(sbox):
# copy locked and broken.
# This test involves tree conflicts.
+@SkipUnless(server_has_mergeinfo)
def merge_into_missing(sbox):
"merge into missing must not break working copy"
@@ -1824,6 +1847,8 @@ def merge_into_missing(sbox):
#----------------------------------------------------------------------
# A test for issue 1738
+@Issue(1738)
+@SkipUnless(server_has_mergeinfo)
def dry_run_adds_file_with_prop(sbox):
"merge --dry-run adding a new file with props"
@@ -1883,6 +1908,7 @@ def dry_run_adds_file_with_prop(sbox):
#----------------------------------------------------------------------
# Regression test for issue #1673
# Merge a binary file from two URL with a common ancestry
+@Issue(1673)
def merge_binary_with_common_ancestry(sbox):
"merge binary files with common ancestry"
@@ -2029,8 +2055,10 @@ def merge_binary_with_common_ancestry(sb
#----------------------------------------------------------------------
# A test for issue 1905
+@Issue(1905)
+@SkipUnless(server_has_mergeinfo)
def merge_funny_chars_on_path(sbox):
- "merge with funny characters (issue #1905)"
+ "merge with funny characters"
sbox.build()
wc_dir = sbox.wc_dir
@@ -2167,6 +2195,7 @@ def merge_funny_chars_on_path(sbox):
#-----------------------------------------------------------------------
# Regression test for issue #2064
+@Issue(2064)
def merge_keyword_expansions(sbox):
"merge changes to keyword expansion property"
@@ -2243,6 +2272,7 @@ def merge_keyword_expansions(sbox):
expected_skip)
#----------------------------------------------------------------------
+@Issue(2132)
def merge_prop_change_to_deleted_target(sbox):
"merge prop change into deleted target"
# For issue #2132.
@@ -2404,6 +2434,8 @@ def set_up_dir_replace(sbox):
#----------------------------------------------------------------------
# A merge that replaces a directory
# Tests for Issue #2144 and Issue #2607
+@SkipUnless(server_has_mergeinfo)
+@Issue(2144)
def merge_dir_replace(sbox):
"merge a replacement of a directory"
@@ -2517,6 +2549,7 @@ def merge_dir_replace(sbox):
#----------------------------------------------------------------------
# A merge that replaces a directory and one of its children
# Tests for Issue #2690
+@Issue(2690)
def merge_dir_and_file_replace(sbox):
"replace both dir and one of its children"
@@ -2634,6 +2667,7 @@ def merge_dir_and_file_replace(sbox):
new_file_3_url)
#----------------------------------------------------------------------
+@Issue(2144)
def merge_file_with_space_in_its_name(sbox):
"merge a file whose name contains a space"
# For issue #2144
@@ -2666,8 +2700,9 @@ def merge_file_with_space_in_its_name(sb
# A merge between two branches using no revision number with the dir being
# created already existing as an unversioned directory.
# Tests for Issue #2222
+@Issue(2222)
def merge_dir_branches(sbox):
- "merge between branches (Issue #2222)"
+ "merge between branches"
sbox.build()
wc_dir = sbox.wc_dir
@@ -2850,6 +2885,8 @@ def safe_property_merge(sbox):
#----------------------------------------------------------------------
# Test for issue 2035, whereby 'svn merge' wouldn't always mark
# property conflicts when it should.
+@Issue(2035)
+@SkipUnless(server_has_mergeinfo)
def property_merge_from_branch(sbox):
"property merge conflict even without local mods"
@@ -2978,6 +3015,7 @@ def property_merge_from_branch(sbox):
#----------------------------------------------------------------------
# Another test for issue 2035, whereby sometimes 'svn merge' marked
# property conflicts when it shouldn't!
+@Issue(2035)
def property_merge_undo_redo(sbox):
"undo, then redo a property merge"
@@ -3068,6 +3106,7 @@ def property_merge_undo_redo(sbox):
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def cherry_pick_text_conflict(sbox):
"cherry-pick a dependent change, get conflict"
@@ -3176,6 +3215,7 @@ def cherry_pick_text_conflict(sbox):
#----------------------------------------------------------------------
# Test for issue 2135
+@Issue(2135)
def merge_file_replace(sbox):
"merge a replacement of a file"
@@ -3267,6 +3307,7 @@ def merge_file_replace(sbox):
#----------------------------------------------------------------------
# Test for issue 2522
# Same as merge_file_replace, but without update before merge.
+@Issue(2522)
def merge_file_replace_to_mixed_rev_wc(sbox):
"merge a replacement of a file to mixed rev wc"
@@ -3382,6 +3423,7 @@ def merge_file_replace_to_mixed_rev_wc(s
#----------------------------------------------------------------------
# use -x -w option for ignoring whitespace during merge
+@SkipUnless(server_has_mergeinfo)
def merge_ignore_whitespace(sbox):
"ignore whitespace when merging"
@@ -3454,6 +3496,7 @@ def merge_ignore_whitespace(sbox):
#----------------------------------------------------------------------
# use -x --ignore-eol-style option for ignoring eolstyle during merge
+@SkipUnless(server_has_mergeinfo)
def merge_ignore_eolstyle(sbox):
"ignore eolstyle when merging"
@@ -3541,6 +3584,7 @@ def merge_ignore_eolstyle(sbox):
#
# This test for 'svn update' can be found in update_tests.py as
# conflict_markers_matching_eol.
+@SkipUnless(server_has_mergeinfo)
def merge_conflict_markers_matching_eol(sbox):
"conflict markers should match the file's eol style"
@@ -3680,6 +3724,7 @@ def merge_conflict_markers_matching_eol(
#
# This test for 'svn update' can be found in update_tests.py as
# update_eolstyle_handling.
+@SkipUnless(server_has_mergeinfo)
def merge_eolstyle_handling(sbox):
"handle eol-style propchange during merge"
@@ -3893,6 +3938,7 @@ def create_deep_trees(wc_dir):
return expected_status
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def avoid_repeated_merge_using_inherited_merge_info(sbox):
"use inherited mergeinfo to avoid repeated merge"
@@ -4006,6 +4052,8 @@ def avoid_repeated_merge_using_inherited
expected_status)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(2821)
def avoid_repeated_merge_on_subtree_with_merge_info(sbox):
"use subtree's mergeinfo to avoid repeated merge"
# Create deep trees A/B/F/E and A/B/F/E1 and copy A/B to A/copy-of-B
@@ -4264,6 +4312,7 @@ def tweak_src_then_merge_to_dest(sbox, s
return new_rev
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def obey_reporter_api_semantics_while_doing_subtree_merges(sbox):
"drive reporter api in depth first order"
@@ -4540,6 +4589,8 @@ def set_up_branch(sbox, branch_only = Fa
return expected_disk, expected_status
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue([2733,2734])
def mergeinfo_inheritance(sbox):
"target inherits mergeinfo from nearest ancestor"
@@ -4886,6 +4937,7 @@ def mergeinfo_inheritance(sbox):
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def mergeinfo_elision(sbox):
"mergeinfo elides to ancestor with identical info"
@@ -5137,6 +5189,7 @@ def mergeinfo_elision(sbox):
beta_COPY_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def mergeinfo_inheritance_and_discontinuous_ranges(sbox):
"discontinuous merges produce correct mergeinfo"
@@ -5232,7 +5285,7 @@ def mergeinfo_inheritance_and_discontinu
# Wipe the memory of a portion of the previous merge...
### It'd be nice to use 'merge --record-only' here, but we can't (yet)
- ### wipe all ranges for a file due to the bug pointed out in r24645.
+ ### wipe all ranges for a file due to the bug pointed out in r864719.
mu_copy_path = os.path.join(A_COPY_path, 'mu')
svntest.actions.run_and_verify_svn(None,
["property '" + SVN_PROP_MERGEINFO
@@ -5254,6 +5307,8 @@ def mergeinfo_inheritance_and_discontinu
SVN_PROP_MERGEINFO, mu_copy_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(2754)
def merge_to_target_with_copied_children(sbox):
"merge works when target has copied children"
@@ -5336,6 +5391,8 @@ def merge_to_target_with_copied_children
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(3188)
def merge_to_switched_path(sbox):
"merge to switched path does not inherit or elide"
@@ -5510,6 +5567,8 @@ def merge_to_switched_path(sbox):
#
# 3188: Mergeinfo on switched targets/subtrees should
# elide to repos
+@SkipUnless(server_has_mergeinfo)
+@Issue([2823,2839,3187,3188])
def merge_to_path_with_switched_children(sbox):
"merge to path with switched children"
@@ -6034,6 +6093,7 @@ def merge_to_path_with_switched_children
#----------------------------------------------------------------------
# Test for issue 2047: Merge from parent dir fails while it succeeds from
# the direct dir
+@Issue(2047)
def merge_with_implicit_target_file(sbox):
"merge a change to a file, using relative path"
@@ -6069,6 +6129,8 @@ def merge_with_implicit_target_file(sbox
#----------------------------------------------------------------------
# Test practical application of issue #2769 fix, empty rev range elision,
# and elision to the repos.
+@Issue(2769)
+@SkipUnless(server_has_mergeinfo)
def empty_mergeinfo(sbox):
"mergeinfo can explicitly be empty"
@@ -6219,6 +6281,8 @@ def empty_mergeinfo(sbox):
A_COPY_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(2781)
def prop_add_to_child_with_mergeinfo(sbox):
"merge adding prop to child of merge target works"
@@ -6301,6 +6365,7 @@ def prop_add_to_child_with_mergeinfo(sbo
None, 1)
#----------------------------------------------------------------------
+@Issue([2788,3383])
def foreign_repos_does_not_update_mergeinfo(sbox):
"set no mergeinfo when merging from foreign repos"
@@ -6410,6 +6475,8 @@ def foreign_repos_does_not_update_mergei
#----------------------------------------------------------------------
# This test involves tree conflicts.
+@XFail()
+@Issue(2897)
def avoid_reflected_revs(sbox):
"avoid repeated merges for cyclic merging"
@@ -6662,6 +6729,7 @@ def avoid_reflected_revs(sbox):
None, None, None, None, None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def update_loses_mergeinfo(sbox):
"update does not merge mergeinfo"
@@ -6780,6 +6848,8 @@ def update_loses_mergeinfo(sbox):
#----------------------------------------------------------------------
# Tests part of issue# 2829.
+@Issue(2829)
+@SkipUnless(server_has_mergeinfo)
def merge_loses_mergeinfo(sbox):
"merge should merge mergeinfo"
@@ -6895,6 +6965,7 @@ def merge_loses_mergeinfo(sbox):
check_props=1)
#----------------------------------------------------------------------
+@Issue(2853)
def single_file_replace_style_merge_capability(sbox):
"replace-style merge capability for a single file"
@@ -6935,6 +7006,8 @@ def single_file_replace_style_merge_capa
#----------------------------------------------------------------------
# Test for issue 2786 fix.
+@Issue(2786)
+@SkipUnless(server_has_mergeinfo)
def merge_to_out_of_date_target(sbox):
"merge to ood path can lead to inaccurate mergeinfo"
@@ -7049,6 +7122,7 @@ def merge_to_out_of_date_target(sbox):
check_props=1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_with_depth_files(sbox):
"merge test for --depth files"
@@ -7175,6 +7249,8 @@ def merge_with_depth_files(sbox):
# non-inheritable mergeinfo.
#
# Test issue #3407 'Shallow merges incorrectly set mergeinfo on children'.
+@SkipUnless(server_has_mergeinfo)
+@Issues([2976,3392,3407])
def merge_away_subtrees_noninheritable_ranges(sbox):
"subtrees can lose non-inheritable ranges"
@@ -7605,6 +7681,8 @@ def merge_away_subtrees_noninheritable_r
#----------------------------------------------------------------------
# Test for issue #2827
# Handle merge info for sparsely-populated directories
+@Issue(2827)
+@SkipUnless(server_has_mergeinfo)
def merge_to_sparse_directories(sbox):
"merge to sparse directories"
@@ -7896,6 +7974,7 @@ def merge_to_sparse_directories(sbox):
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_old_and_new_revs_from_renamed_dir(sbox):
"merge -rold(before rename):head renamed dir"
@@ -8051,6 +8130,7 @@ def merge_old_and_new_revs_from_renamed_
True, False)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_with_child_having_different_rev_ranges_to_merge(sbox):
"child having different rev ranges to merge"
#Modify A/mu to 30 lines with a content 'line1'...'line30' commit it at r2.
@@ -8309,6 +8389,7 @@ def merge_with_child_having_different_re
None, None, None, None, None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_old_and_new_revs_from_renamed_file(sbox):
"merge -rold(before rename):head renamed file"
@@ -8377,6 +8458,7 @@ def merge_old_and_new_revs_from_renamed_
mu_COPY_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_with_auto_rev_range_detection(sbox):
"merge with auto detection of revision ranges"
@@ -8505,6 +8587,8 @@ def merge_with_auto_rev_range_detection(
#----------------------------------------------------------------------
# Test for issue 2818: Provide a 'merge' API which allows for merging of
# arbitrary revision ranges (e.g. '-c 3,5,7')
+@Issue(2818)
+@SkipUnless(server_has_mergeinfo)
def cherry_picking(sbox):
"command line supports cherry picked merge ranges"
@@ -8686,6 +8770,8 @@ def cherry_picking(sbox):
D_COPY_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(2969)
def propchange_of_subdir_raises_conflict(sbox):
"merge of propchange on subdir raises conflict"
@@ -8802,6 +8888,8 @@ def propchange_of_subdir_raises_conflict
#----------------------------------------------------------------------
# Test for issue #2971: Reverse merge of prop add segfaults if
# merging to parent of first merge
+@Issue(2971)
+@SkipUnless(server_has_mergeinfo)
def reverse_merge_prop_add_on_child(sbox):
"reverse merge of prop add on child"
@@ -8908,6 +8996,8 @@ def reverse_merge_prop_add_on_child(sbox
None, 1)
#----------------------------------------------------------------------
+@XFail()
+@Issue([2970,3642])
def merge_target_with_non_inheritable_mergeinfo(sbox):
"merge target with non inheritable mergeinfo"
@@ -9024,6 +9114,7 @@ def merge_target_with_non_inheritable_me
1, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def self_reverse_merge(sbox):
"revert a commit on a target"
@@ -9100,6 +9191,7 @@ def self_reverse_merge(sbox):
None, None, None, None, None, 1, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def ignore_ancestry_and_mergeinfo(sbox):
"--ignore-ancestry also ignores mergeinfo"
@@ -9206,6 +9298,7 @@ def ignore_ancestry_and_mergeinfo(sbox):
'--ignore-ancestry', A_COPY_B_path)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_from_renamed_branch_fails_while_avoiding_repeat_merge(sbox):
"merge from renamed branch"
#Copy A/C to A/COPY_C results in r2.
@@ -9309,6 +9402,8 @@ def merge_from_renamed_branch_fails_whil
#----------------------------------------------------------------------
# Test for part of issue #2877: 'do subtree merge only if subtree has
# explicit mergeinfo set and exists in the merge source'
+@SkipUnless(server_has_mergeinfo)
+@Issue(2877)
def merge_source_normalization_and_subtree_merges(sbox):
"normalized mergeinfo is recorded on subtrees"
@@ -9461,6 +9556,8 @@ def merge_source_normalization_and_subtr
#----------------------------------------------------------------------
# Tests for issue #3067: 'subtrees with intersecting mergeinfo, that don't
# exist at the start of a merge range shouldn't break the merge'
+@SkipUnless(server_has_mergeinfo)
+@Issue(3067)
def new_subtrees_should_not_break_merge(sbox):
"subtrees added after start of merge range are ok"
@@ -9892,6 +9989,7 @@ def new_subtrees_should_not_break_merge(
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def dont_add_mergeinfo_from_own_history(sbox):
"cyclic merges don't add mergeinfo from own history"
@@ -10371,8 +10469,9 @@ def dont_add_mergeinfo_from_own_history(
None, 1)
#----------------------------------------------------------------------
+@Issue(3094)
def merge_range_predates_history(sbox):
- "merge range predates history (issue #3094)"
+ "merge range predates history"
sbox.build()
wc_dir = sbox.wc_dir
@@ -10413,6 +10512,7 @@ def merge_range_predates_history(sbox):
trunk_url, branch_path)
#----------------------------------------------------------------------
+@Issue(3623)
def foreign_repos(sbox):
"merge from a foreign repository"
@@ -10698,6 +10798,8 @@ def foreign_repos_2_url(sbox):
svntest.actions.verify_disk(wc_dir2, expected_disk, True)
#----------------------------------------------------------------------
+@XFail()
+@Issue(1962)
def merge_added_subtree(sbox):
"merge added subtree"
@@ -10797,6 +10899,8 @@ def merge_added_subtree(sbox):
#----------------------------------------------------------------------
# Issue #3138
+@SkipUnless(server_has_mergeinfo)
+@Issue(3138)
def merge_unknown_url(sbox):
"merging an unknown url should return error"
@@ -10816,6 +10920,7 @@ def merge_unknown_url(sbox):
"merge", url, wc_dir)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def reverse_merge_away_all_mergeinfo(sbox):
"merges that remove all mergeinfo work"
@@ -10913,6 +11018,8 @@ def reverse_merge_away_all_mergeinfo(sbo
# that don't exist at the start of a merge range shouldn't break the
# merge'. Specifically see
# http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc5
+@SkipUnless(server_has_mergeinfo)
+@Issue([3138,3067])
def dont_merge_revs_into_subtree_that_predate_it(sbox):
"dont merge revs into a subtree that predate it"
@@ -11151,6 +11258,8 @@ def set_up_renamed_subtree(sbox):
#----------------------------------------------------------------------
# Test for issue #3174: 'Merge algorithm chokes on subtrees needing
# special attention that have been renamed'
+@SkipUnless(server_has_mergeinfo)
+@Issue(3174)
def merge_chokes_on_renamed_subtrees(sbox):
"merge fails with renamed subtrees with mergeinfo"
@@ -11182,6 +11291,8 @@ def merge_chokes_on_renamed_subtrees(sbo
#----------------------------------------------------------------------
# Issue #3157
+@SkipUnless(server_has_mergeinfo)
+@Issue(3157)
def dont_explicitly_record_implicit_mergeinfo(sbox):
"don't explicitly record implicit mergeinfo"
@@ -11549,6 +11660,7 @@ def dont_explicitly_record_implicit_merg
#----------------------------------------------------------------------
# Test for issue where merging a change to a broken link fails
+@SkipUnless(svntest.main.is_posix_os)
def merge_broken_link(sbox):
"merge with broken symlinks in target"
@@ -11578,6 +11690,8 @@ def merge_broken_link(sbox):
#----------------------------------------------------------------------
# Test for issue #3199 'Subtree merges broken when required ranges
# don't intersect with merge target'
+@SkipUnless(server_has_mergeinfo)
+@Issue(3199)
def subtree_merges_dont_intersect_with_targets(sbox):
"subtree ranges might not intersect with target"
@@ -11892,6 +12006,8 @@ def subtree_merges_dont_intersect_with_t
#----------------------------------------------------------------------
# Some more tests for issue #3067 'subtrees that don't exist at the start
# or end of a merge range shouldn't break the merge'
+@Issue(3067)
+@SkipUnless(server_has_mergeinfo)
def subtree_source_missing_in_requested_range(sbox):
"subtree merge source might not exist"
@@ -12227,6 +12343,8 @@ def subtree_source_missing_in_requested_
# or end of a merge range shouldn't break the merge'
#
# See http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc34
+@Issue(3067)
+@SkipUnless(server_has_mergeinfo)
def subtrees_with_empty_mergeinfo(sbox):
"mergeinfo not set on subtree with empty mergeinfo"
@@ -12278,6 +12396,7 @@ def subtrees_with_empty_mergeinfo(sbox):
#----------------------------------------------------------------------
# Test for issue #3240 'commits to subtrees added by merge
# corrupt working copy and repos'.
+@Issue(3240)
def commit_to_subtree_added_by_merge(sbox):
"commits to subtrees added by merge wreak havoc"
@@ -12519,6 +12638,7 @@ def del_sched_add_hist_file(sbox):
os.chdir(saved_cwd)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def subtree_merges_dont_cause_spurious_conflicts(sbox):
"subtree merges dont cause spurious conflicts"
@@ -12745,6 +12865,8 @@ def subtree_merges_dont_cause_spurious_c
#----------------------------------------------------------------------
# Test for yet another variant of issue #3067.
+@Issue(3067)
+@SkipUnless(server_has_mergeinfo)
def merge_target_and_subtrees_need_nonintersecting_ranges(sbox):
"target and subtrees need nonintersecting revs"
@@ -12912,6 +13034,7 @@ def merge_target_and_subtrees_need_nonin
None, 1)
#----------------------------------------------------------------------
+@Issue(3250)
def merge_two_edits_to_same_prop(sbox):
"merge two successive edits to the same property"
@@ -13050,6 +13173,7 @@ def merge_an_eol_unification_and_set_svn
# nor even raise a conflict.
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_adds_mergeinfo_correctly(sbox):
"merge adds mergeinfo to subtrees correctly"
@@ -13314,6 +13438,7 @@ def merge_adds_mergeinfo_correctly(sbox)
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def natural_history_filtering(sbox):
"natural history filtering permits valid mergeinfo"
@@ -13598,6 +13723,8 @@ def natural_history_filtering(sbox):
None, 1)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(3067)
def subtree_gets_changes_even_if_ultimately_deleted(sbox):
"subtree gets changes even if ultimately deleted"
@@ -13730,6 +13857,7 @@ def subtree_gets_changes_even_if_ultimat
None, None, None, None, None, 1, 0)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def no_self_referential_filtering_on_added_path(sbox):
"no self referential filtering on added path"
@@ -13878,6 +14006,8 @@ def no_self_referential_filtering_on_add
#----------------------------------------------------------------------
# Test for issue #3324
# http://subversion.tigris.org/issues/show_bug.cgi?id=3324
+@Issue(3324)
+@SkipUnless(server_has_mergeinfo)
def merge_range_prior_to_rename_source_existence(sbox):
"merge prior to rename src existence still dels src"
@@ -14291,6 +14421,7 @@ def set_up_natural_history_gap(sbox):
return wc_disk, wc_status
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def dont_merge_gaps_in_history(sbox):
"mergeinfo aware merges ignore natural history gaps"
@@ -14383,6 +14514,8 @@ def dont_merge_gaps_in_history(sbox):
#----------------------------------------------------------------------
# Test for issue #3432 'Merge can record mergeinfo from natural history
# gaps'. See http://subversion.tigris.org/issues/show_bug.cgi?id=3432
+@Issue(3432)
+@SkipUnless(server_has_mergeinfo)
def handle_gaps_in_implicit_mergeinfo(sbox):
"correctly consider natural history gaps"
@@ -14519,6 +14652,8 @@ def handle_gaps_in_implicit_mergeinfo(sb
#----------------------------------------------------------------------
# Test for issue #3323 'Mergeinfo deleted by a merge should disappear'
+@Issue(3323)
+@SkipUnless(server_has_mergeinfo)
def mergeinfo_deleted_by_a_merge_should_disappear(sbox):
"mergeinfo deleted by a merge should disappear"
@@ -14641,6 +14776,7 @@ def mergeinfo_deleted_by_a_merge_should_
# File merge optimization caused segfault during noop file merge
# when multiple ranges are eligible for merge, see
# http://svn.haxx.se/dev/archive-2009-05/0363.shtml
+@SkipUnless(server_has_mergeinfo)
def noop_file_merge(sbox):
"noop file merge does not segfault"
@@ -14689,6 +14825,7 @@ def noop_file_merge(sbox):
chi_COPY_path)
#----------------------------------------------------------------------
+@Issue(2690)
def copy_then_replace_via_merge(sbox):
"copy then replace via merge"
# Testing issue #2690 with deleted/added/replaced files and subdirs.
@@ -14788,6 +14925,7 @@ def copy_then_replace_via_merge(sbox):
None, branch_J)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def record_only_merge(sbox):
"record only merge applies mergeinfo diffs"
@@ -14980,6 +15118,7 @@ def record_only_merge(sbox):
# doesn't work'
#
# This test is marked as XFail until issue #3514 is fixed.
+@Issue(3514)
def merge_automatic_conflict_resolution(sbox):
"automatic conflict resolutions work with merge"
@@ -15167,6 +15306,7 @@ def merge_automatic_conflict_resolution(
#----------------------------------------------------------------------
# Test for issue #3440 'Skipped paths get incorrect override mergeinfo
# during merge'.
+@Issue(3440)
def skipped_files_get_correct_mergeinfo(sbox):
"skipped files get correct mergeinfo set"
@@ -15282,6 +15422,7 @@ def skipped_files_get_correct_mergeinfo(
#----------------------------------------------------------------------
# Test for issue #3115 'Case only renames resulting from merges don't
# work or break the WC on case-insensitive file systems'.
+@Issue(3115)
def committed_case_only_move_and_revert(sbox):
"committed case only move causes revert to fail"
@@ -15439,6 +15580,7 @@ def committed_case_only_move_and_revert(
#----------------------------------------------------------------------
# This is a test for issue #3221 'Unable to merge into working copy of
# deleted branch'.
+@Issue(3221)
def merge_into_wc_for_deleted_branch(sbox):
"merge into WC of deleted branch should work"
@@ -15633,6 +15775,7 @@ def foreign_repos_del_and_props(sbox):
#----------------------------------------------------------------------
# Test for issue #3642 'immediate depth merges don't create proper subtree
# mergeinfo'. See http://subversion.tigris.org/issues/show_bug.cgi?id=3642
+@Issue(3642)
def immediate_depth_merge_creates_minimal_subtree_mergeinfo(sbox):
"no spurious mergeinfo from immediate depth merges"
@@ -15698,6 +15841,7 @@ def immediate_depth_merge_creates_minima
#----------------------------------------------------------------------
# Test for issue #3646 'cyclic --record-only merges create self-referential
# mergeinfo'
+@Issue(3646)
def record_only_merge_creates_self_referential_mergeinfo(sbox):
"merge creates self referential mergeinfo"
@@ -15792,6 +15936,7 @@ def record_only_merge_creates_self_refer
#----------------------------------------------------------------------
# Test for issue #3657 'dav update report handler in skelta mode can cause
# spurious conflicts'.
+@Issue(3657)
def dav_skelta_mode_causes_spurious_conflicts(sbox):
"dav skelta mode can cause spurious conflicts"
@@ -16047,6 +16192,7 @@ def merge_into_locally_added_directory(s
#----------------------------------------------------------------------
# Test for issue #2915 'Handle mergeinfo for subtrees missing due to removal
# by non-svn command'
+@Issue(2915)
def merge_with_os_deleted_subtrees(sbox):
"merge tracking fails if target missing subtrees"
@@ -16129,6 +16275,7 @@ def merge_with_os_deleted_subtrees(sbox)
# Test for issue #3668 'inheritance can result in self-referential
# mergeinfo' and issue #3669 'inheritance can result in mergeinfo
# describing nonexistent sources'
+@Issue(3668)
def no_self_referential_or_nonexistent_inherited_mergeinfo(sbox):
"don't inherit bogus mergeinfo"
@@ -16255,6 +16402,8 @@ def no_self_referential_or_nonexistent_i
#----------------------------------------------------------------------
# Test for issue #3756 'subtree merge can inherit invalid working mergeinfo'.
+@XFail()
+@Issue(3756)
def subtree_merges_inherit_invalid_working_mergeinfo(sbox):
"don't inherit bogus working mergeinfo"
@@ -16320,6 +16469,9 @@ def subtree_merges_inherit_invalid_worki
#----------------------------------------------------------------------
# Test for issue #3686 'executable flag not correctly set on merge'
# See http://subversion.tigris.org/issues/show_bug.cgi?id=3686
+@XFail()
+@Issue(3686)
+@SkipUnless(svntest.main.is_posix_os)
def merge_change_to_file_with_executable(sbox):
"executable flag is maintained during binary merge"
@@ -16408,178 +16560,108 @@ def merge_change_to_file_with_executable
# list all tests here, starting with None:
test_list = [ None,
- SkipUnless(textual_merges_galore,
- server_has_mergeinfo),
- SkipUnless(add_with_history,
- server_has_mergeinfo),
- SkipUnless(simple_property_merges,
- server_has_mergeinfo),
+ textual_merges_galore,
+ add_with_history,
+ simple_property_merges,
merge_with_implicit_target_using_r,
merge_with_implicit_target_using_c,
merge_with_implicit_target_and_revs,
merge_similar_unrelated_trees,
merge_with_prev,
- SkipUnless(merge_binary_file,
- server_has_mergeinfo),
- SkipUnless(merge_one_file_using_r,
- server_has_mergeinfo),
- SkipUnless(merge_one_file_using_c,
- server_has_mergeinfo),
- SkipUnless(merge_one_file_using_implicit_revs,
- server_has_mergeinfo),
- SkipUnless(merge_record_only,
- server_has_mergeinfo),
- SkipUnless(merge_in_new_file_and_diff,
- server_has_mergeinfo),
- SkipUnless(merge_skips_obstructions,
- server_has_mergeinfo),
- SkipUnless(merge_into_missing,
- server_has_mergeinfo),
- SkipUnless(dry_run_adds_file_with_prop,
- server_has_mergeinfo),
+ merge_binary_file,
+ merge_one_file_using_r,
+ merge_one_file_using_c,
+ merge_one_file_using_implicit_revs,
+ merge_record_only,
+ merge_in_new_file_and_diff,
+ merge_skips_obstructions,
+ merge_into_missing,
+ dry_run_adds_file_with_prop,
merge_binary_with_common_ancestry,
- SkipUnless(merge_funny_chars_on_path,
- server_has_mergeinfo),
+ merge_funny_chars_on_path,
merge_keyword_expansions,
merge_prop_change_to_deleted_target,
merge_file_with_space_in_its_name,
merge_dir_branches,
- SkipUnless(safe_property_merge,
- server_has_mergeinfo),
- SkipUnless(property_merge_from_branch,
- server_has_mergeinfo),
+ safe_property_merge,
+ property_merge_from_branch,
property_merge_undo_redo,
- SkipUnless(cherry_pick_text_conflict,
- server_has_mergeinfo),
+ cherry_pick_text_conflict,
merge_file_replace,
- SkipUnless(merge_dir_replace,
- server_has_mergeinfo),
+ merge_dir_replace,
merge_dir_and_file_replace,
merge_file_replace_to_mixed_rev_wc,
- SkipUnless(merge_ignore_whitespace,
- server_has_mergeinfo),
- SkipUnless(merge_ignore_eolstyle,
- server_has_mergeinfo),
- SkipUnless(merge_conflict_markers_matching_eol,
- server_has_mergeinfo),
- SkipUnless(merge_eolstyle_handling,
- server_has_mergeinfo),
- SkipUnless(avoid_repeated_merge_using_inherited_merge_info,
- server_has_mergeinfo),
- SkipUnless(avoid_repeated_merge_on_subtree_with_merge_info,
- server_has_mergeinfo),
- SkipUnless(obey_reporter_api_semantics_while_doing_subtree_merges,
- server_has_mergeinfo),
- SkipUnless(mergeinfo_inheritance,
- server_has_mergeinfo),
- SkipUnless(mergeinfo_elision,
- server_has_mergeinfo),
- SkipUnless(mergeinfo_inheritance_and_discontinuous_ranges,
- server_has_mergeinfo),
- SkipUnless(merge_to_target_with_copied_children,
- server_has_mergeinfo),
- SkipUnless(merge_to_switched_path,
- server_has_mergeinfo),
- SkipUnless(merge_to_path_with_switched_children,
- server_has_mergeinfo),
+ merge_ignore_whitespace,
+ merge_ignore_eolstyle,
+ merge_conflict_markers_matching_eol,
+ merge_eolstyle_handling,
+ avoid_repeated_merge_using_inherited_merge_info,
+ avoid_repeated_merge_on_subtree_with_merge_info,
+ obey_reporter_api_semantics_while_doing_subtree_merges,
+ mergeinfo_inheritance,
+ mergeinfo_elision,
+ mergeinfo_inheritance_and_discontinuous_ranges,
+ merge_to_target_with_copied_children,
+ merge_to_switched_path,
+ merge_to_path_with_switched_children,
merge_with_implicit_target_file,
- SkipUnless(empty_mergeinfo,
- server_has_mergeinfo),
- SkipUnless(prop_add_to_child_with_mergeinfo,
- server_has_mergeinfo),
+ empty_mergeinfo,
+ prop_add_to_child_with_mergeinfo,
foreign_repos_does_not_update_mergeinfo,
- XFail(avoid_reflected_revs),
- SkipUnless(update_loses_mergeinfo,
- server_has_mergeinfo),
- SkipUnless(merge_loses_mergeinfo,
- server_has_mergeinfo),
+ avoid_reflected_revs,
+ update_loses_mergeinfo,
+ merge_loses_mergeinfo,
single_file_replace_style_merge_capability,
- SkipUnless(merge_to_out_of_date_target,
- server_has_mergeinfo),
- SkipUnless(merge_with_depth_files,
- server_has_mergeinfo),
- SkipUnless(merge_away_subtrees_noninheritable_ranges,
- server_has_mergeinfo),
- SkipUnless(merge_to_sparse_directories,
- server_has_mergeinfo),
- SkipUnless(merge_old_and_new_revs_from_renamed_dir,
- server_has_mergeinfo),
- SkipUnless(merge_with_child_having_different_rev_ranges_to_merge,
- server_has_mergeinfo),
- SkipUnless(merge_old_and_new_revs_from_renamed_file,
- server_has_mergeinfo),
- SkipUnless(merge_with_auto_rev_range_detection,
- server_has_mergeinfo),
- SkipUnless(cherry_picking,
- server_has_mergeinfo),
- SkipUnless(propchange_of_subdir_raises_conflict,
- server_has_mergeinfo),
- SkipUnless(reverse_merge_prop_add_on_child,
- server_has_mergeinfo),
- XFail(merge_target_with_non_inheritable_mergeinfo),
- SkipUnless(self_reverse_merge,
- server_has_mergeinfo),
- SkipUnless(ignore_ancestry_and_mergeinfo,
- server_has_mergeinfo),
- SkipUnless(merge_from_renamed_branch_fails_while_avoiding_repeat_merge,
- server_has_mergeinfo),
- SkipUnless(merge_source_normalization_and_subtree_merges,
- server_has_mergeinfo),
- SkipUnless(new_subtrees_should_not_break_merge,
- server_has_mergeinfo),
- SkipUnless(dont_add_mergeinfo_from_own_history,
- server_has_mergeinfo),
+ merge_to_out_of_date_target,
+ merge_with_depth_files,
+ merge_away_subtrees_noninheritable_ranges,
+ merge_to_sparse_directories,
+ merge_old_and_new_revs_from_renamed_dir,
+ merge_with_child_having_different_rev_ranges_to_merge,
+ merge_old_and_new_revs_from_renamed_file,
+ merge_with_auto_rev_range_detection,
+ cherry_picking,
+ propchange_of_subdir_raises_conflict,
+ reverse_merge_prop_add_on_child,
+ merge_target_with_non_inheritable_mergeinfo,
+ self_reverse_merge,
+ ignore_ancestry_and_mergeinfo,
+ merge_from_renamed_branch_fails_while_avoiding_repeat_merge,
+ merge_source_normalization_and_subtree_merges,
+ new_subtrees_should_not_break_merge,
+ dont_add_mergeinfo_from_own_history,
merge_range_predates_history,
foreign_repos,
foreign_repos_uuid,
foreign_repos_2_url,
- XFail(merge_added_subtree),
- SkipUnless(merge_unknown_url,
- server_has_mergeinfo),
- SkipUnless(reverse_merge_away_all_mergeinfo,
- server_has_mergeinfo),
- SkipUnless(dont_merge_revs_into_subtree_that_predate_it,
- server_has_mergeinfo),
- SkipUnless(merge_chokes_on_renamed_subtrees,
- server_has_mergeinfo),
- SkipUnless(dont_explicitly_record_implicit_mergeinfo,
- server_has_mergeinfo),
- SkipUnless(merge_broken_link, svntest.main.is_posix_os),
- SkipUnless(subtree_merges_dont_intersect_with_targets,
- server_has_mergeinfo),
- SkipUnless(subtree_source_missing_in_requested_range,
- server_has_mergeinfo),
- SkipUnless(subtrees_with_empty_mergeinfo, server_has_mergeinfo),
+ merge_added_subtree,
+ merge_unknown_url,
+ reverse_merge_away_all_mergeinfo,
+ dont_merge_revs_into_subtree_that_predate_it,
+ merge_chokes_on_renamed_subtrees,
+ dont_explicitly_record_implicit_mergeinfo,
+ merge_broken_link,
+ subtree_merges_dont_intersect_with_targets,
+ subtree_source_missing_in_requested_range,
+ subtrees_with_empty_mergeinfo,
commit_to_subtree_added_by_merge,
del_identical_file,
del_sched_add_hist_file,
- SkipUnless(subtree_merges_dont_cause_spurious_conflicts,
- server_has_mergeinfo),
- SkipUnless(merge_target_and_subtrees_need_nonintersecting_ranges,
- server_has_mergeinfo),
+ subtree_merges_dont_cause_spurious_conflicts,
+ merge_target_and_subtrees_need_nonintersecting_ranges,
merge_two_edits_to_same_prop,
merge_an_eol_unification_and_set_svn_eol_style,
- SkipUnless(merge_adds_mergeinfo_correctly,
- server_has_mergeinfo),
- SkipUnless(natural_history_filtering,
- server_has_mergeinfo),
- SkipUnless(subtree_gets_changes_even_if_ultimately_deleted,
- server_has_mergeinfo),
- SkipUnless(no_self_referential_filtering_on_added_path,
- server_has_mergeinfo),
- SkipUnless(merge_range_prior_to_rename_source_existence,
- server_has_mergeinfo),
- SkipUnless(dont_merge_gaps_in_history,
- server_has_mergeinfo),
- SkipUnless(mergeinfo_deleted_by_a_merge_should_disappear,
- server_has_mergeinfo),
- SkipUnless(noop_file_merge,
- server_has_mergeinfo),
- SkipUnless(handle_gaps_in_implicit_mergeinfo,
- server_has_mergeinfo),
+ merge_adds_mergeinfo_correctly,
+ natural_history_filtering,
+ subtree_gets_changes_even_if_ultimately_deleted,
+ no_self_referential_filtering_on_added_path,
+ merge_range_prior_to_rename_source_existence,
+ dont_merge_gaps_in_history,
+ mergeinfo_deleted_by_a_merge_should_disappear,
+ noop_file_merge,
+ handle_gaps_in_implicit_mergeinfo,
copy_then_replace_via_merge,
- SkipUnless(record_only_merge,
- server_has_mergeinfo),
+ record_only_merge,
merge_automatic_conflict_resolution,
skipped_files_get_correct_mergeinfo,
committed_case_only_move_and_revert,
@@ -16592,9 +16674,8 @@ test_list = [ None,
merge_into_locally_added_directory,
merge_with_os_deleted_subtrees,
no_self_referential_or_nonexistent_inherited_mergeinfo,
- XFail(subtree_merges_inherit_invalid_working_mergeinfo),
- XFail(SkipUnless(merge_change_to_file_with_executable,
- svntest.main.is_posix_os)),
+ subtree_merges_inherit_invalid_working_mergeinfo,
+ merge_change_to_file_with_executable,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/merge_tree_conflict_tests.py Sun Feb 6 15:31:45 2011
@@ -34,10 +34,12 @@ from svntest import main, wc, verify, ac
# (abbreviation)
Item = wc.StateItem
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
from svntest.main import SVN_PROP_MERGEINFO
from svntest.main import server_has_mergeinfo
@@ -48,6 +50,7 @@ from merge_tests import svn_copy
from merge_tests import svn_merge
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def delete_file_and_dir(sbox):
"merge that deletes items"
@@ -160,6 +163,8 @@ def delete_file_and_dir(sbox):
#----------------------------------------------------------------------
# This is a regression for issue #1176.
+@Issue(1176)
+@SkipUnless(server_has_mergeinfo)
def merge_catches_nonexistent_target(sbox):
"merge should not die if a target file is absent"
@@ -262,6 +267,7 @@ def merge_catches_nonexistent_target(sbo
svntest.actions.run_and_verify_unquiet_status('', expected_status)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
def merge_tree_deleted_in_target(sbox):
"merge on deleted directory in target"
@@ -338,6 +344,8 @@ def merge_tree_deleted_in_target(sbox):
#----------------------------------------------------------------------
# Regression test for issue #2403: Incorrect 3-way merge of "added"
# binary file which already exists (unmodified) in the WC
+@SkipUnless(server_has_mergeinfo)
+@Issue(2403)
def three_way_merge_add_of_existing_binary_file(sbox):
"3-way merge of 'file add' into existing binary"
@@ -421,6 +429,7 @@ def three_way_merge_add_of_existing_bina
#----------------------------------------------------------------------
# Issue #2515
+@Issue(2515)
def merge_added_dir_to_deleted_in_target(sbox):
"merge an added dir on a deleted dir in target"
@@ -480,6 +489,8 @@ def merge_added_dir_to_deleted_in_target
#----------------------------------------------------------------------
# Issue 2584
+@Issue(2584)
+@SkipUnless(server_has_mergeinfo)
def merge_add_over_versioned_file_conflicts(sbox):
"conflict from merge of add over versioned file"
@@ -537,6 +548,8 @@ def merge_add_over_versioned_file_confli
expected_skip)
#----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
+@Issue(2829)
def mergeinfo_recording_in_skipped_merge(sbox):
"mergeinfo recording in skipped merge"
@@ -722,6 +735,7 @@ def del_differing_file(sbox):
#----------------------------------------------------------------------
# This test used to involve tree conflicts, hence its name.
+@Issue(3146)
def tree_conflicts_and_obstructions(sbox):
"tree conflicts and obstructions"
@@ -895,6 +909,8 @@ def tree_conflicts_on_merge_local_ci_4_2
expected_skip) ], True)
#----------------------------------------------------------------------
+@XFail()
+@Issue(2282)
def tree_conflicts_on_merge_local_ci_5_1(sbox):
"tree conflicts 5.1: leaf edit, tree del"
@@ -946,6 +962,8 @@ def tree_conflicts_on_merge_local_ci_5_1
expected_skip) ], True)
#----------------------------------------------------------------------
+@XFail()
+@Issue(2282)
def tree_conflicts_on_merge_local_ci_5_2(sbox):
"tree conflicts 5.2: leaf del, tree del"
@@ -1173,6 +1191,8 @@ def tree_conflicts_on_merge_no_local_ci_
) ], False)
#----------------------------------------------------------------------
+@XFail()
+@Issue(2282)
def tree_conflicts_on_merge_no_local_ci_5_2(sbox):
"tree conflicts 5.2: leaf del (no ci), tree del"
@@ -1653,6 +1673,8 @@ def merge_replace_setup(sbox):
return expected_disk, expected_status
#----------------------------------------------------------------------
+# ra_serf causes duplicate notifications with this test:
+@XFail(svntest.main.is_ra_type_dav_serf)
def merge_replace_causes_tree_conflict(sbox):
"replace vs. edit tree-conflicts"
@@ -1727,6 +1749,7 @@ def merge_replace_causes_tree_conflict(s
actions.run_and_verify_status(wc_dir, expected_status)
#----------------------------------------------------------------------
+@XFail()
def merge_replace_causes_tree_conflict2(sbox):
"replace vs. delete tree-conflicts"
@@ -1876,37 +1899,29 @@ def merge_replace_causes_tree_conflict2(
# list all tests here, starting with None:
test_list = [ None,
- SkipUnless(delete_file_and_dir,
- server_has_mergeinfo),
- SkipUnless(merge_catches_nonexistent_target,
- server_has_mergeinfo),
- SkipUnless(merge_tree_deleted_in_target,
- server_has_mergeinfo),
- SkipUnless(three_way_merge_add_of_existing_binary_file,
- server_has_mergeinfo),
+ delete_file_and_dir,
+ merge_catches_nonexistent_target,
+ merge_tree_deleted_in_target,
+ three_way_merge_add_of_existing_binary_file,
merge_added_dir_to_deleted_in_target,
- SkipUnless(merge_add_over_versioned_file_conflicts,
- server_has_mergeinfo),
- SkipUnless(mergeinfo_recording_in_skipped_merge,
- server_has_mergeinfo),
+ merge_add_over_versioned_file_conflicts,
+ mergeinfo_recording_in_skipped_merge,
del_differing_file,
tree_conflicts_and_obstructions,
tree_conflicts_on_merge_local_ci_4_1,
tree_conflicts_on_merge_local_ci_4_2,
- XFail(tree_conflicts_on_merge_local_ci_5_1),
- XFail(tree_conflicts_on_merge_local_ci_5_2),
+ tree_conflicts_on_merge_local_ci_5_1,
+ tree_conflicts_on_merge_local_ci_5_2,
tree_conflicts_on_merge_local_ci_6,
tree_conflicts_on_merge_no_local_ci_4_1,
tree_conflicts_on_merge_no_local_ci_4_2,
tree_conflicts_on_merge_no_local_ci_5_1,
- XFail(tree_conflicts_on_merge_no_local_ci_5_2),
+ tree_conflicts_on_merge_no_local_ci_5_2,
tree_conflicts_on_merge_no_local_ci_6,
tree_conflicts_merge_edit_onto_missing,
tree_conflicts_merge_del_onto_missing,
- # ra_serf causes duplicate notifications with this test:
- XFail(merge_replace_causes_tree_conflict,
- svntest.main.is_ra_type_dav_serf),
- XFail(merge_replace_causes_tree_conflict2),
+ merge_replace_causes_tree_conflict,
+ merge_replace_causes_tree_conflict2,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/mergeinfo_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/mergeinfo_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/mergeinfo_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/mergeinfo_tests.py Sun Feb 6 15:31:45 2011
@@ -33,9 +33,12 @@ from svntest import wc
# (abbreviation)
Item = wc.StateItem
-XFail = svntest.testcase.XFail
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
exp_noop_up_out = svntest.actions.expected_noop_update_output
from svntest.main import SVN_PROP_MERGEINFO
@@ -80,6 +83,7 @@ def mergeinfo(sbox):
svntest.actions.run_and_verify_mergeinfo(adjust_error_for_server_version(""),
['1'], sbox.repo_url, wc_dir)
+@SkipUnless(server_has_mergeinfo)
def explicit_mergeinfo_source(sbox):
"'mergeinfo' with source selection"
@@ -109,6 +113,7 @@ def explicit_mergeinfo_source(sbox):
svntest.actions.run_and_verify_mergeinfo(adjust_error_for_server_version(""),
['1'], G_path, H_path)
+@SkipUnless(server_has_mergeinfo)
def mergeinfo_non_source(sbox):
"'mergeinfo' with uninteresting source selection"
@@ -130,10 +135,11 @@ def mergeinfo_non_source(sbox):
# Check on a source we haven't "merged" from.
svntest.actions.run_and_verify_mergeinfo(adjust_error_for_server_version(""),
- ['2'], H2_url, H_path)
+ [], H2_url, H_path)
#----------------------------------------------------------------------
# Issue #3138
+@Issue(3138)
def mergeinfo_on_unknown_url(sbox):
"mergeinfo of an unknown url should return error"
@@ -156,6 +162,7 @@ def mergeinfo_on_unknown_url(sbox):
# Test for issue #3126 'svn mergeinfo shows too few or too many
# eligible revisions'. Specifically
# http://subversion.tigris.org/issues/show_bug.cgi?id=3126#desc5.
+@Issue(3126)
def non_inheritable_mergeinfo(sbox):
"non-inheritable mergeinfo shows as merged"
@@ -226,6 +233,8 @@ def non_inheritable_mergeinfo(sbox):
#
# Test for issue #3242 'Subversion demands unnecessary access to parent
# directories of operations'
+@Issue(3242)
+@SkipUnless(server_has_mergeinfo)
def recursive_mergeinfo(sbox):
"test svn mergeinfo -R"
@@ -378,6 +387,7 @@ def recursive_mergeinfo(sbox):
'--show-revs', 'merged')
# Test for issue #3180 'svn mergeinfo ignores peg rev for WC target'.
+@SkipUnless(server_has_mergeinfo)
def mergeinfo_on_pegged_wc_path(sbox):
"svn mergeinfo on pegged working copy target"
@@ -487,13 +497,12 @@ def mergeinfo_on_pegged_wc_path(sbox):
test_list = [ None,
no_mergeinfo,
mergeinfo,
- SkipUnless(explicit_mergeinfo_source, server_has_mergeinfo),
- XFail(mergeinfo_non_source, server_has_mergeinfo),
+ explicit_mergeinfo_source,
+ mergeinfo_non_source,
mergeinfo_on_unknown_url,
non_inheritable_mergeinfo,
- SkipUnless(recursive_mergeinfo, server_has_mergeinfo),
- SkipUnless(mergeinfo_on_pegged_wc_path,
- server_has_mergeinfo),
+ recursive_mergeinfo,
+ mergeinfo_on_pegged_wc_path,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/obliterate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/obliterate_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/obliterate_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/obliterate_tests.py Sun Feb 6 15:31:45 2011
@@ -33,15 +33,26 @@ from svntest import main, actions, wc, o
# (abbreviation)
Item = wc.StateItem
-XFail = svntest.testcase.XFail
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
######################################################################
# Test utilities
#
+def supports_obliterate():
+ if svntest.main.is_ra_type_file() and not svntest.main.is_fs_type_fsfs():
+ code, output, error = svntest.main.run_svn(None, "help")
+ for line in output:
+ if line.find("obliterate") != -1:
+ return True
+ return False
+
#obliteration_dirs = ['f-mod', 'f-add', 'f-del', 'f-rpl', 'f-mov']
obliteration_dirs = ['f-mod']
@@ -118,6 +129,7 @@ def hook_enable(repo):
#----------------------------------------------------------------------
+@SkipUnless(supports_obliterate)
def obliterate_1(sbox):
"test svn obliterate"
@@ -155,6 +167,7 @@ def obliterate_1(sbox):
except:
pass
+@SkipUnless(supports_obliterate)
def pre_obliterate_hook(sbox):
"test the pre-obliterate hook"
@@ -200,19 +213,11 @@ def pre_obliterate_hook(sbox):
########################################################################
# Run the tests
-def supports_obliterate():
- if svntest.main.is_ra_type_file() and not svntest.main.is_fs_type_fsfs():
- code, output, error = svntest.main.run_svn(None, "help")
- for line in output:
- if line.find("obliterate") != -1:
- return True
- return False
-
# list all tests here, starting with None:
test_list = [ None,
- SkipUnless(obliterate_1, supports_obliterate),
- SkipUnless(pre_obliterate_hook, supports_obliterate),
+ obliterate_1,
+ pre_obliterate_hook,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/patch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/patch_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/patch_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/patch_tests.py Sun Feb 6 15:31:45 2011
@@ -41,10 +41,13 @@ from svntest import wc
from svntest.main import SVN_PROP_MERGEINFO, is_os_windows
# (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
Item = svntest.wc.StateItem
-XFail = svntest.testcase.XFail
def make_patch_path(sbox, name='my.patch'):
dir = sbox.add_wc_path('patches')
@@ -3424,11 +3427,14 @@ def patch_strip_cwd(sbox):
"patch --strip propchanges cwd"
return patch_one_property(sbox, True)
+@XFail()
def patch_set_prop_no_eol(sbox):
"patch doesn't append newline to properties"
return patch_one_property(sbox, False)
# Regression test for issue #3697
+@SkipUnless(svntest.main.is_posix_os)
+@Issue(3697)
def patch_add_symlink(sbox):
"patch that adds a symlink"
@@ -3511,8 +3517,8 @@ test_list = [ None,
patch_old_target_names,
patch_reverse_revert,
patch_strip_cwd,
- XFail(patch_set_prop_no_eol),
- SkipUnless(patch_add_symlink, svntest.main.is_posix_os),
+ patch_set_prop_no_eol,
+ patch_add_symlink,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/prop_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/prop_tests.py Sun Feb 6 15:31:45 2011
@@ -33,9 +33,12 @@ import svntest
from svntest.main import SVN_PROP_MERGEINFO
# (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
Item = svntest.wc.StateItem
def is_non_posix_and_non_windows_os():
@@ -373,6 +376,7 @@ def update_conflict_props(sbox):
svntest.actions.run_and_verify_status(wc_dir, expected_status)
#----------------------------------------------------------------------
+@Issue(2608)
def commit_conflict_dirprops(sbox):
"commit with conflicting dirprops"
@@ -406,7 +410,7 @@ def commit_conflict_dirprops(sbox):
# svn_wc_props_modified_p and svn_wc_transmit_prop_deltas to *ignore*
# leftover base-props when a file is scheduled for replacement. (When
# we svn_wc_add a file, it starts life with no working props.)
-
+@Issue(742)
def commit_replacement_props(sbox):
"props work when committing a replacement"
@@ -525,7 +529,7 @@ def revert_replacement_props(sbox):
1)
#----------------------------------------------------------------------
-
+@Issues([920,2065])
def inappropriate_props(sbox):
"try to set inappropriate props"
@@ -728,7 +732,7 @@ def inappropriate_props(sbox):
# Issue #976. When copying a file, do not determine svn:executable
# and svn:mime-type values as though the file is brand new, instead
# use the copied file's property values.
-
+@Issue(976)
def copy_inherits_special_props(sbox):
"file copies inherit (not re-derive) special props"
@@ -792,6 +796,12 @@ def copy_inherits_special_props(sbox):
#----------------------------------------------------------------------
# Test for issue #3086 'mod-dav-svn ignores pre-revprop-change failure
# on revprop delete'
+#
+# If we learn how to write a pre-revprop-change hook for
+# non-Posix platforms, we won't have to skip here:
+@Skip(is_non_posix_and_non_windows_os)
+@Issue(3086)
+@XFail(svntest.main.is_ra_type_dav)
def revprop_change(sbox):
"set, get, and delete a revprop change"
@@ -1043,6 +1053,7 @@ def verify_output(expected_out, output,
raise svntest.Failure
ln = ln + 1
+@Issue(1794)
def recursive_base_wc_ops(sbox):
"recursive property operations in BASE and WC"
@@ -1281,6 +1292,7 @@ def update_props_on_wc_root(sbox):
None, None, None, None, None, 1)
# test for issue 2743
+@Issue(2743)
def props_on_replaced_file(sbox):
"""test properties on replaced files"""
@@ -1451,8 +1463,10 @@ def invalid_propnames(sbox):
os.chdir(cwd)
+@SkipUnless(svntest.main.is_posix_os)
+@Issue(2581)
def perms_on_symlink(sbox):
- "issue #2581: propset shouldn't touch symlink perms"
+ "propset shouldn't touch symlink perms"
sbox.build()
# We can't just run commands on absolute paths in the usual way
# (e.g., os.path.join(sbox.wc_dir, 'newdir')), because for some
@@ -1609,6 +1623,10 @@ def props_over_time(sbox):
svntest.actions.run_and_verify_svn(None, plist_expected, [],
'proplist', '-v', peg_path)
+
+# XFail the same reason revprop_change() is.
+@SkipUnless(svntest.main.server_enforces_date_syntax)
+@XFail(svntest.main.is_ra_type_dav)
def invalid_propvalues(sbox):
"test handling invalid svn:* property values"
@@ -1624,6 +1642,7 @@ def invalid_propvalues(sbox):
'svn:date', 'Sat May 10 12:12:31 2008',
repo_url)
+@Issue(3282)
def same_replacement_props(sbox):
"commit replacement props when same as old props"
# issue #3282
@@ -1682,6 +1701,7 @@ def added_moved_file(sbox):
# Issue 2220, deleting a non-existent property should error
+@Issue(2220)
def delete_nonexistent_property(sbox):
"remove a property which doesn't exist"
@@ -1696,6 +1716,7 @@ def delete_nonexistent_property(sbox):
os.path.join(wc_dir, 'A', 'D', 'G'))
#----------------------------------------------------------------------
+@Issue(3553)
def post_revprop_change_hook(sbox):
"post-revprop-change hook"
@@ -2053,6 +2074,7 @@ def atomic_over_ra(sbox):
# Test for issue #3721 'redirection of svn propget output corrupted with
# large property values'
+@Issue(3721)
def propget_redirection(sbox):
"""pg of large text properties redirects properly"""
@@ -2352,10 +2374,7 @@ test_list = [ None,
revert_replacement_props,
inappropriate_props,
copy_inherits_special_props,
- # If we learn how to write a pre-revprop-change hook for
- # non-Posix platforms, we won't have to skip here:
- Skip(XFail(revprop_change, svntest.main.is_ra_type_dav),
- is_non_posix_and_non_windows_os),
+ revprop_change,
prop_value_conversions,
binary_props,
recursive_base_wc_ops,
@@ -2366,12 +2385,10 @@ test_list = [ None,
depthy_wc_proplist,
depthy_url_proplist,
invalid_propnames,
- SkipUnless(perms_on_symlink, svntest.main.is_posix_os),
+ perms_on_symlink,
remove_custom_ns_props,
props_over_time,
- # XFail the same reason revprop_change() is.
- SkipUnless(XFail(invalid_propvalues, svntest.main.is_ra_type_dav),
- svntest.main.server_enforces_date_syntax),
+ invalid_propvalues,
same_replacement_props,
added_moved_file,
delete_nonexistent_property,
Modified: subversion/branches/performance/subversion/tests/cmdline/redirect_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/redirect_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/redirect_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/redirect_tests.py Sun Feb 6 15:31:45 2011
@@ -31,10 +31,12 @@ import os, re
import svntest
# (abbreviations)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
# Regular expression which matches the redirection notification
redirect_regex = re.compile(r"^Redirecting to URL '.*'")
@@ -66,7 +68,7 @@ def verify_url(wc_path, url, wc_path_is_
# Each test must return on success or raise on failure.
#----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_ra_type_dav)
def temporary_redirect(sbox):
"temporary redirect should error out"
@@ -88,7 +90,7 @@ def temporary_redirect(sbox):
co_url + '/iota')
#----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_ra_type_dav)
def redirected_checkout(sbox):
"redirected checkout"
@@ -107,7 +109,7 @@ def redirected_checkout(sbox):
verify_url(wc_dir, sbox.repo_url)
#----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_ra_type_dav)
def redirected_update(sbox):
"redirected update"
@@ -144,12 +146,9 @@ def redirected_update(sbox):
# list all tests here, starting with None:
test_list = [ None,
- SkipUnless(temporary_redirect,
- svntest.main.is_ra_type_dav),
- SkipUnless(redirected_checkout,
- svntest.main.is_ra_type_dav),
- SkipUnless(redirected_update,
- svntest.main.is_ra_type_dav),
+ temporary_redirect,
+ redirected_checkout,
+ redirected_update,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/resolve_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/resolve_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/resolve_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/resolve_tests.py Sun Feb 6 15:31:45 2011
@@ -34,9 +34,12 @@ from svntest import wc
# (abbreviation)
Item = wc.StateItem
-XFail = svntest.testcase.XFail
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
from merge_tests import set_up_branch
@@ -103,6 +106,8 @@ def automatic_conflict_resolution(sbox):
#----------------------------------------------------------------------
# Test for issue #3707 'property conflicts not handled correctly by
# svn resolve'.
+@Issue(3707)
+@XFail()
def prop_conflict_resolution(sbox):
"resolving prop conflicts"
@@ -246,7 +251,7 @@ def prop_conflict_resolution(sbox):
# list all tests here, starting with None:
test_list = [ None,
automatic_conflict_resolution,
- XFail(prop_conflict_resolution),
+ prop_conflict_resolution,
]
if __name__ == '__main__':
Modified: subversion/branches/performance/subversion/tests/cmdline/resolved_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/resolved_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/resolved_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/resolved_tests.py Sun Feb 6 15:31:45 2011
@@ -32,9 +32,12 @@ import svntest
from svntest import wc
# (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
Item = svntest.wc.StateItem
from svntest.main import SVN_PROP_MERGEINFO, server_has_mergeinfo
Modified: subversion/branches/performance/subversion/tests/cmdline/revert_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/revert_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/revert_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/revert_tests.py Sun Feb 6 15:31:45 2011
@@ -34,9 +34,12 @@ from svntest.actions import run_and_veri
# (abbreviation)
-Skip = svntest.testcase.Skip
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
Item = svntest.wc.StateItem
@@ -229,6 +232,7 @@ def revert_from_wc_root(sbox):
svntest.actions.run_and_verify_status('', expected_output)
+@Issue(1663)
def revert_reexpand_keyword(sbox):
"revert reexpands manually contracted keyword"
@@ -289,6 +293,7 @@ def revert_reexpand_keyword(sbox):
#----------------------------------------------------------------------
# Regression test for issue #1775:
# Should be able to revert a file with no properties i.e. no prop-base
+@Issue(1775)
def revert_replaced_file_without_props(sbox):
"revert a replaced file with no properties"
@@ -340,6 +345,8 @@ def revert_replaced_file_without_props(s
#----------------------------------------------------------------------
# Regression test for issue #876:
# svn revert of an svn move'd file does not revert the file
+@XFail()
+@Issue(876)
def revert_moved_file(sbox):
"revert a moved file"
@@ -374,7 +381,7 @@ def revert_moved_file(sbox):
#
# It is like merge_file_replace (in merge_tests.py), but reverts file
# instead of commit.
-
+@Issue(2135)
def revert_file_merge_replace_with_history(sbox):
"revert a merge replacement of file with history"
@@ -537,7 +544,7 @@ def revert_after_second_replace(sbox):
# Tests for issue #2517.
#
# Manual conflict resolution leads to spurious revert report.
-
+@Issue(2517)
def revert_after_manual_conflict_resolution__text(sbox):
"revert after manual text-conflict resolution"
@@ -728,6 +735,7 @@ def revert_replaced_with_history_file_1(
#----------------------------------------------------------------------
# Test for issue #2804.
+@Issue(2804)
def status_of_missing_dir_after_revert(sbox):
"status after schedule-delete, revert, and local rm"
@@ -771,6 +779,7 @@ def status_of_missing_dir_after_revert(s
#----------------------------------------------------------------------
# Test for issue #2804 with replaced directory
+@Issue(2804)
def status_of_missing_dir_after_revert_replaced_with_history_dir(sbox):
"status after replace+, revert, and local rm"
@@ -878,6 +887,7 @@ def status_of_missing_dir_after_revert_r
wc_dir)
# Test for issue #2928.
+@Issue(2928)
def revert_replaced_with_history_file_2(sbox):
"reverted replace with history restores checksum"
@@ -1041,7 +1051,7 @@ test_list = [ None,
revert_from_wc_root,
revert_reexpand_keyword,
revert_replaced_file_without_props,
- XFail(revert_moved_file),
+ revert_moved_file,
revert_wc_to_wc_replace_with_props,
revert_file_merge_replace_with_history,
revert_repos_to_wc_replace_with_props,
Modified: subversion/branches/performance/subversion/tests/cmdline/schedule_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/cmdline/schedule_tests.py?rev=1067683&r1=1067682&r2=1067683&view=diff
==============================================================================
--- subversion/branches/performance/subversion/tests/cmdline/schedule_tests.py (original)
+++ subversion/branches/performance/subversion/tests/cmdline/schedule_tests.py Sun Feb 6 15:31:45 2011
@@ -32,10 +32,12 @@ import os
import svntest
# (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
Item = svntest.wc.StateItem
exp_noop_up_out = svntest.actions.expected_noop_update_output
@@ -319,7 +321,7 @@ def revert_nested_adds(sbox):
check_reversion(files, output)
#----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_posix_os)
def revert_add_executable(sbox):
"revert: add some executable files"
@@ -400,7 +402,7 @@ def revert_delete_dirs(sbox):
# revert' or 'svn rm' will make that happen by removing the entry from
# .svn/entries file. While 'svn revert' does with no error,
# 'svn rm' does it with error.
-
+@Issue(863)
def unschedule_missing_added(sbox):
"unschedule addition on missing items"
@@ -453,7 +455,7 @@ def unschedule_missing_added(sbox):
#
# Make sure 'rm foo; svn rm foo' works on files and directories.
# Also make sure that the deletion is committable.
-
+@Issue(962)
def delete_missing(sbox):
"schedule and commit deletion on missing items"
@@ -491,7 +493,7 @@ def delete_missing(sbox):
# Revert . inside an svn added empty directory should generate an error.
# Not anymore! wc-ng uses absolute paths for everything, which means we
# can handle this case without too much trouble.
-
+@Issue(854)
def revert_inside_newly_added_dir(sbox):
"revert inside a newly added dir"
@@ -508,7 +510,7 @@ def revert_inside_newly_added_dir(sbox):
#----------------------------------------------------------------------
# Regression test for issue #1609:
# 'svn status' should show a schedule-add directory as 'A' not '?'
-
+@Issue(1609)
def status_add_deleted_directory(sbox):
"status after add of deleted directory"
@@ -552,6 +554,7 @@ def status_add_deleted_directory(sbox):
#----------------------------------------------------------------------
# Regression test for issue #939:
# Recursive 'svn add' should still traverse already-versioned dirs.
+@Issue(939)
def add_recursive_already_versioned(sbox):
"'svn add' should traverse already-versioned dirs"
@@ -684,7 +687,7 @@ test_list = [ None,
revert_add_files,
revert_add_directories,
revert_nested_adds,
- SkipUnless(revert_add_executable, svntest.main.is_posix_os),
+ revert_add_executable,
revert_delete_files,
revert_delete_dirs,
unschedule_missing_added,