You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/11/17 12:16:03 UTC
svn commit: r1203151 - in /subversion/trunk/subversion/tests/cmdline:
merge_tests.py merge_tree_conflict_tests.py resolve_tests.py
Author: julianfoad
Date: Thu Nov 17 11:16:03 2011
New Revision: 1203151
URL: http://svn.apache.org/viewvc?rev=1203151&view=rev
Log:
More tweaks to the way some merge output is tested.
* subversion/tests/cmdline/merge_tests.py
(svn_merge): Support specifying mergeinfo elision paths. Automatically
expect a mergeinfo change on the target path.
(del_identical_file, del_sched_add_hist_file,
merge_two_edits_to_same_prop): Supply the expected output lines in full
detail for better checking. Don't tell svn_merge() about mergeinfo paths.
* subversion/tests/cmdline/merge_tree_conflict_tests.py
(del_differing_file): Don't tell svn_merge() about mergeinfo paths.
* subversion/tests/cmdline/resolve_tests.py
(automatic_conflict_resolution): Use expected_merge_output().
Modified:
subversion/trunk/subversion/tests/cmdline/merge_tests.py
subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
subversion/trunk/subversion/tests/cmdline/resolve_tests.py
Modified: subversion/trunk/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tests.py?rev=1203151&r1=1203150&r2=1203151&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Thu Nov 17 11:16:03 2011
@@ -12535,7 +12535,7 @@ def svn_copy(s_rev, path1, path2):
svntest.actions.run_and_verify_svn(None, None, [], 'copy', '--parents',
'-r', s_rev, path1, path2)
-def svn_merge(rev_range, source, target, lines=None,
+def svn_merge(rev_range, source, target, lines=None, elides=[],
text_conflicts=0, prop_conflicts=0, tree_conflicts=0, args=[]):
"""Merge a single change from path SOURCE to path TARGET and verify the
output and that there is no error. (The changes made are not verified.)
@@ -12546,6 +12546,8 @@ def svn_merge(rev_range, source, target,
LINES is a list of regular expressions to match other lines of output; if
LINES is 'None' then match all normal (non-conflicting) merges.
+ ELIDES is a list of paths on which mergeinfo elision should be reported.
+
TEXT_CONFLICTS, PROP_CONFLICTS and TREE_CONFLICTS specify the number of
each kind of conflict to expect.
@@ -12553,6 +12555,7 @@ def svn_merge(rev_range, source, target,
source = local_path(source)
target = local_path(target)
+ elides = [local_path(p) for p in elides]
if isinstance(rev_range, int):
mi_rev_range = [rev_range]
rev_arg = '-c' + str(rev_range)
@@ -12561,7 +12564,12 @@ def svn_merge(rev_range, source, target,
rev_arg = '-r' + str(rev_range[0] - 1) + ':' + str(rev_range[1])
if lines is None:
lines = ["(A |D |[UG] | [UG]|[UG][UG]) " + target + ".*\n"]
+ else:
+ # Expect mergeinfo on the target; caller must supply matches for any
+ # subtree mergeinfo paths.
+ lines.append(" [UG] " + target + "\n")
exp_out = expected_merge_output([mi_rev_range], lines, target=target,
+ elides=elides,
text_conflicts=text_conflicts,
prop_conflicts=prop_conflicts,
tree_conflicts=tree_conflicts)
@@ -12598,7 +12606,8 @@ def del_identical_file(sbox):
svn_copy(s_rev_mod, source, target)
sbox.simple_commit(target)
# Should be deleted quietly.
- svn_merge(s_rev_del, source, target, ['D ', ' U'])
+ svn_merge(s_rev_del, source, target,
+ ['D %s\n' % local_path('A/D/G2/tau')])
# Make a differing copy, locally modify it so it's the same,
# and merge a deletion to it.
@@ -12607,7 +12616,8 @@ def del_identical_file(sbox):
sbox.simple_commit(target)
svn_modfile(target+"/tau")
# Should be deleted quietly.
- svn_merge(s_rev_del, source, target, ['D ', ' U'])
+ svn_merge(s_rev_del, source, target,
+ ['D %s\n' % local_path('A/D/G3/tau')])
os.chdir(saved_cwd)
@@ -12634,9 +12644,11 @@ def del_sched_add_hist_file(sbox):
svn_copy(s_rev_orig, source, target)
sbox.simple_commit(target)
s_rev = 3
- svn_merge(s_rev_add, source, target, ['A ', ' U'])
+ svn_merge(s_rev_add, source, target,
+ ['A %s\n' % local_path('A/D/G2/file')])
# Should be deleted quietly.
- svn_merge(-s_rev_add, source, target, ['D ', ' U', ' G', '--- Eliding'])
+ svn_merge(-s_rev_add, source, target,
+ ['D %s\n' % local_path('A/D/G2/file')], elides=['A/D/G2'])
os.chdir(saved_cwd)
@@ -13093,7 +13105,6 @@ def merge_two_edits_to_same_prop(sbox):
# Merge the two changes together to source.
svn_merge([rev3, rev4], A_COPY_path, A_path, [
" C %s\n" % mu_path,
- " U A\n",
], prop_conflicts=1, args=['--allow-mixed-revisions'])
# Revert changes to source wc, to test next scenario of #3250
@@ -13103,11 +13114,9 @@ def merge_two_edits_to_same_prop(sbox):
# Merge the first change, then the second, to source.
svn_merge(rev3, A_COPY_path, A_path, [
" C %s\n" % mu_path,
- " U A\n",
], prop_conflicts=1, args=['--allow-mixed-revisions'])
svn_merge(rev4, A_COPY_path, A_path, [
" C %s\n" % mu_path,
- " G A\n",
], prop_conflicts=1, args=['--allow-mixed-revisions'])
os.chdir(was_cwd)
Modified: subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1203151&r1=1203150&r2=1203151&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py Thu Nov 17 11:16:03 2011
@@ -681,18 +681,15 @@ def del_differing_file(sbox):
'newprop', 'v', target+"/pi")
dir_D = os.path.join('A','D')
- dir_G2 = os.path.join(dir_D, 'G2')
tau = os.path.join(dir_D,'G2','tau')
pi = os.path.join(dir_D, 'G2', 'pi')
# Should complain and "skip" it.
svn_merge(s_rev_tau, source, target, [
" C %s\n" % tau, # merge
- " U %s\n" % (dir_G2), # mergeinfo
], tree_conflicts=1)
svn_merge(s_rev_pi, source, target, [
" C %s\n" % pi, # merge
- " G %s\n" % (dir_G2), # mergeinfo
], tree_conflicts=1)
@@ -705,19 +702,16 @@ def del_differing_file(sbox):
sbox.simple_commit(target)
- dir_G3 = os.path.join(dir_D, 'G3')
tau = os.path.join(dir_D,'G3','tau')
pi = os.path.join(dir_D, 'G3', 'pi')
# Should complain and "skip" it.
svn_merge(s_rev_tau, source, target, [
- " C %s\n" % tau, # merge
- " U %s\n" % (dir_G3), # mergeinfo
+ " C %s\n" % tau,
], tree_conflicts=1)
svn_merge(s_rev_pi, source, target, [
- " C %s\n" % pi, # merge
- " G %s\n" % (dir_G3), # mergeinfo
+ " C %s\n" % pi,
], tree_conflicts=1)
os.chdir(saved_cwd)
Modified: subversion/trunk/subversion/tests/cmdline/resolve_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/resolve_tests.py?rev=1203151&r1=1203150&r2=1203151&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/resolve_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/resolve_tests.py Thu Nov 17 11:16:03 2011
@@ -42,6 +42,7 @@ Issue = svntest.testcase.Issue_deco
Wimp = svntest.testcase.Wimp_deco
from merge_tests import set_up_branch
+from merge_tests import expected_merge_output
# 'svn resolve --accept [ base | mine-full | theirs-full ]' was segfaulting
# on 1.6.x. Prior to this test, the bug was only caught by the Ruby binding
@@ -69,12 +70,10 @@ def automatic_conflict_resolution(sbox):
'revert', '--recursive', A_COPY_path)
svntest.actions.run_and_verify_svn(
None,
- "(--- Merging r3 into .*A_COPY':\n)|"
- "(C .*psi\n)|"
- "(--- Recording mergeinfo for merge of r3 into .*A_COPY':\n)|"
- "( U .*A_COPY\n)|"
- "(Summary of conflicts:\n)|"
- "( Text conflicts: 1\n)",
+ expected_merge_output([[3]], [
+ "C %s\n" % psi_COPY_path,
+ " U %s\n" % A_COPY_path],
+ target=A_COPY_path, text_conflicts=1),
[], 'merge', '-c3', '--allow-mixed-revisions',
sbox.repo_url + '/A',
A_COPY_path)