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)