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 2020/07/16 14:40:27 UTC

svn commit: r1879959 - /subversion/trunk/subversion/tests/cmdline/merge_tests.py

Author: julianfoad
Date: Thu Jul 16 14:40:27 2020
New Revision: 1879959

URL: http://svn.apache.org/viewvc?rev=1879959&view=rev
Log:
In recent merge tests, verify the merge result as well as success.

For issue #4859 "Merge removing a folder with non-inheritable mergeinfo ->
E155023: can't set properties: invalid status for updating properties".

* subversion/tests/cmdline/merge_tests.py
  (merge_deleted_folder_with_mergeinfo,
   merge_deleted_folder_with_mergeinfo_2): Verify the merge result.

Modified:
    subversion/trunk/subversion/tests/cmdline/merge_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=1879959&r1=1879958&r2=1879959&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Thu Jul 16 14:40:27 2020
@@ -18508,6 +18508,10 @@ def merge_deleted_folder_with_mergeinfo(
 
   sbox.build()
 
+  was_cwd = os.getcwd()
+  os.chdir(sbox.wc_dir)
+  sbox.wc_dir = ''
+
   # Some non-inheritable mergeinfo
   sbox.simple_propset('svn:mergeinfo', '/A/C:1*', 'A/D')
   sbox.simple_commit() # r2
@@ -18523,8 +18527,32 @@ def merge_deleted_folder_with_mergeinfo(
   sbox.simple_update()
 
   # A merge that removes that folder
-  svntest.actions.run_and_verify_svn(None, [],
-                                     'merge', '-c4', '^/branch_A', sbox.ospath('A'))
+  # (merge revision 4 only from 'branch_A' to 'A')
+  expected_output = wc.State(sbox.ospath(''), {
+    'A/D'    : Item(status='D '),
+    })
+  expected_mergeinfo_output = wc.State(sbox.ospath(''), {
+    'A'      : Item(status=' U'),
+    })
+  expected_status = svntest.actions.get_virginal_state(sbox.ospath('A'), 4).subtree('A')
+  expected_status.add({ '': Item(status=' M', wc_rev=4) })
+  expected_status.tweak_some(
+    lambda path, item: [True] if path.split('/')[0] == 'D' else [],
+    status='D ')
+  svntest.actions.run_and_verify_merge(sbox.ospath('A'), 3, 4,
+                                       '^/branch_A', None,
+                                       expected_output,
+                                       expected_mergeinfo_output,
+                                       None,
+                                       None,
+                                       expected_status,
+                                       wc.State('', {}),
+                                       [],
+                                       check_props=False,
+                                       dry_run=False  # as dry run is broken
+                                       )
+
+  os.chdir(was_cwd)
 
 # Issue #4859: Merge removing a folder with non-inheritable mergeinfo ->
 # E155023: can't set properties: invalid status for updating properties
@@ -18539,6 +18567,10 @@ def merge_deleted_folder_with_mergeinfo_
 
   sbox.build()
 
+  was_cwd = os.getcwd()
+  os.chdir(sbox.wc_dir)
+  sbox.wc_dir = ''
+
   # Some non-inheritable mergeinfo
   sbox.simple_propset('svn:mergeinfo', '/A/C:1*', 'A/D')
   sbox.simple_commit() # r2
@@ -18571,9 +18603,42 @@ def merge_deleted_folder_with_mergeinfo_
   sbox.simple_update()
 
   # A merge that removes that folder
-  svntest.actions.run_and_verify_svn(None, [],
-                                     'merge', '^/branch_A', sbox.ospath('A'))
-  ### TODO: verify that mergeinfo is set/changed on A/D, A/D/G, A/D/G2.
+  expected_output = wc.State(sbox.ospath(''), {
+    'A/D'    : Item(status='A ', prev_status='D '),
+    'A/D/G'  : Item(status='A '),
+    'A/D/G2' : Item(status='A '),
+    })
+  # verify that mergeinfo is set/changed on A/D, A/D/G, A/D/G2.
+  #expected_mergeinfo_output = wc.State(sbox.ospath(''), {
+  #  'A'      : Item(status=' U'),
+  #  'A/D'    : Item(status=' G'),
+  #  'A/D/G'  : Item(status=' G'),  # varies, G or U: see issue #4862
+  #  'A/D/G2' : Item(status=' G'),  # varies, G or U: see issue #4862
+  #  })
+  expected_status = svntest.actions.get_virginal_state(sbox.ospath('A'), 7).subtree('A')
+  expected_status.tweak_some(
+    lambda path, item: [True] if path.split('/')[0] == 'D' else [],
+    status='D ')
+  expected_status.add({
+    ''     : Item(status=' M', wc_rev=7),
+    'D'    : Item(status='RM', copied='+', wc_rev='-'),
+    'D/G'  : Item(status=' M', copied='+', wc_rev='-'),
+    'D/G2' : Item(status=' M', copied='+', wc_rev='-'),
+    })
+  svntest.actions.run_and_verify_merge(sbox.ospath('A'), None, None,
+                                       '^/branch_A', None,
+                                       expected_output,
+                                       None, #expected_mergeinfo_output
+                                       None,
+                                       None,
+                                       expected_status,
+                                       wc.State('', {}),
+                                       [],
+                                       check_props=False,
+                                       dry_run=False  # as dry run is broken
+                                       )
+
+  os.chdir(was_cwd)
 
 ########################################################################
 # Run the tests