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 2012/05/02 18:56:49 UTC

svn commit: r1333108 - /subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py

Author: julianfoad
Date: Wed May  2 16:56:48 2012
New Revision: 1333108

URL: http://svn.apache.org/viewvc?rev=1333108&view=rev
Log:
Add symmetric merge tests for some more of the planned cherry-pick scenarios.

* subversion/tests/cmdline/merge_symmetric_tests.py
  (get_mergeinfo_change): Fix a bug in parsing the mergeinfo diff: it was
    not picking up multiple ranges separated by a comma.
  (expected_symmetric_merge_output): Allow a 'Recording mergeinfo'
    notification line to contain any pair of end revision numbers.
  (cherry1_fwd, cherry3_fwd): New tests.
  (test_list): Add the new tests.

Modified:
    subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py?rev=1333108&r1=1333107&r2=1333108&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py Wed May  2 16:56:48 2012
@@ -178,7 +178,7 @@ def get_mergeinfo_change(sbox, target):
                                               sbox.ospath(target))
   merged_revs = []
   for line in out:
-    match = re.match(r'   Merged /(\w+):r([0-9-]+)', line)
+    match = re.match(r'   Merged /(\w+):r(.*)', line)
     if match:
       for r_range in match.group(2).split(','):
         if '-' in r_range:
@@ -263,6 +263,7 @@ def expected_symmetric_merge_output(targ
   # differences between repository URLs' notifications when it need not
   # or should not; so expect that.
   lines += ["--- Merging differences between repository URLs into '%s':\n" % (target,),
+            "--- Recording mergeinfo for merge of r.* through r.* into '%s':\n" % (target,),
             "--- Recording mergeinfo for merge between repository URLs into '%s':\n" % (target,)]
 
   return expected_merge_output(rev_ranges, lines, target=target)
@@ -664,17 +665,37 @@ def merge_to_and_fro_4_2(sbox):
 
 #----------------------------------------------------------------------
 
-# Cherry2, fwd
+# Cherry-pick scenarios
+
+@SkipUnless(server_has_mergeinfo)
+def cherry1_fwd(sbox):
+  """cherry1_fwd"""
+
+  #   A (--o------o--[o]----o---
+  #     (     \         \     \
+  #   B (---o--x---------c-----x
+  #     2  34  5  67  8  9  0  1
+
+  init_mod_merge_mod(sbox, mod_6=True, mod_7=False)
+  modify_branch(sbox, 'A', 8)
+  cherry_pick(sbox, 8, 'A', 'B')
+  modify_branch(sbox, 'A', 10)
+
+  symmetric_merge(sbox, 'A', 'B',
+                  expect_changes=['A6', 'A10'],  # and NOT A8
+                  expect_mi=[5, 6, 7, 9, 10],
+                  expect_3ways=[three_way_merge('A4', 'A7'),
+                                three_way_merge('A8', 'A10')])
 
 @SkipUnless(server_has_mergeinfo)
 @XFail()
 def cherry2_fwd(sbox):
   """cherry2_fwd"""
 
-  #   A (--o------------c--o---
-  #     (    \         /     \
-  #   B (--o--x---o-[o]-------x
-  #     2 34  5  67  8  9  0  1
+  #   A (--o-------------c--o---
+  #     (     \         /     \
+  #   B (---o--x---o-[o]-------x
+  #     2  34  5  67  8  9  0  1
 
   init_mod_merge_mod(sbox, mod_6=False, mod_7=True)
   modify_branch(sbox, 'B', 8)
@@ -686,6 +707,36 @@ def cherry2_fwd(sbox):
                   expect_mi=[5, 6, 7, 8, 9, 10],
                   expect_3ways=[three_way_merge('A9', 'A10')])
 
+@SkipUnless(server_has_mergeinfo)
+@XFail()
+def cherry3_fwd(sbox):
+  """cherry3_fwd"""
+
+  #   A (--o--------------c--o----
+  #     (          \     /     \
+  #     (           \   /       \
+  #   B (---o--o-[o]-x-/---------x
+  #               \__/
+  #     2  34  5  6  7    8  9   0
+
+  make_branches(sbox)
+  modify_branch(sbox, 'A', 3)
+  modify_branch(sbox, 'B', 4)
+  modify_branch(sbox, 'B', 5)
+  modify_branch(sbox, 'B', 6)
+
+  symmetric_merge(sbox, 'A', 'B',
+                  expect_changes=['A3'],
+                  expect_mi=[2, 3, 4, 5, 6],
+                  expect_3ways=[three_way_merge('A1', 'A6')])
+
+  cherry_pick(sbox, 6, 'B', 'A')
+  modify_branch(sbox, 'A', 9)
+
+  symmetric_merge(sbox, 'A', 'B',
+                  expect_changes=['A9'],  # and NOT A8
+                  expect_mi=[7, 8, 9],
+                  expect_3ways=[three_way_merge('A8', 'A9')])
 
 ########################################################################
 # Run the tests
@@ -707,7 +758,9 @@ test_list = [ None,
               merge_to_and_fro_3_2,
               merge_to_and_fro_4_1,
               merge_to_and_fro_4_2,
+              cherry1_fwd,
               cherry2_fwd,
+              cherry3_fwd,
              ]
 
 if __name__ == '__main__':