subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ne...@apache.org
Subject svn commit: r906121 - in /subversion/trunk/subversion/tests/cmdline: svntest/actions.py switch_tests.py update_tests.py
Date Wed, 03 Feb 2010 16:44:14 GMT
Author: neels
Date: Wed Feb  3 16:44:14 2010
New Revision: 906121

URL: http://svn.apache.org/viewvc?rev=906121&view=rev
Log:
Make the tree conflict cmdline tests for 'update' and 'switch' also verify the
'svn info' output on tree conflicts.

* subversion/tests/cmdline/svntest/actions.py:
  (DeepTreesTestCase):
    Add EXPECTED_INFO Argument, to passing an expected 'svn info' output.
  (deep_trees_run_tests_scheme_for_update,
   deep_trees_run_tests_scheme_for_switch):
    If EXPECTED_INFO is supplied, call run_and_verify_info() with it.

* subversion/tests/cmdline/switch_tests.py
  (tree_conflicts_on_switch_1_1,  
   tree_conflicts_on_switch_1_2,  
   tree_conflicts_on_switch_2_1,  
   tree_conflicts_on_switch_2_2,  
   tree_conflicts_on_switch_3):
    Supply an expected info output.

* subversion/tests/cmdline/update_tests.py
  (tree_conflicts_on_update_1_1,  
   tree_conflicts_on_update_1_2,  
   tree_conflicts_on_update_2_1,  
   tree_conflicts_on_update_2_2,  
   tree_conflicts_on_update_2_3,  
   tree_conflicts_on_update_3): 
    Supply an expected info output.


Modified:
    subversion/trunk/subversion/tests/cmdline/svntest/actions.py
    subversion/trunk/subversion/tests/cmdline/switch_tests.py
    subversion/trunk/subversion/tests/cmdline/update_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/actions.py?rev=906121&r1=906120&r2=906121&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/actions.py Wed Feb  3 16:44:14 2010
@@ -2167,6 +2167,24 @@
 
   The expected_* and error_re_string arguments are described in functions
   run_and_verify_[update|switch|merge]
+  except expected_info, which is a dict that has path keys with values
+  that are dicts as passed to run_and_verify_info():
+    expected_info = {
+      'F/alpha' : {
+        'Revision' : '3',
+        'Tree conflict' : 
+          '^local delete, incoming edit upon update'
+          + ' Source  left: .file.*/F/alpha@2'
+          + ' Source right: .file.*/F/alpha@3$',
+      },
+      'DF/D1' : {
+        'Tree conflict' : 
+          '^local delete, incoming edit upon update'
+          + ' Source  left: .dir.*/DF/D1@2'
+          + ' Source right: .dir.*/DF/D1@3$',
+      },
+      ...
+    }
 
   Note: expected_skip is only used in merge, i.e. using
   deep_trees_run_tests_scheme_for_merge.
@@ -2176,7 +2194,8 @@
                 expected_output = None, expected_disk = None,
                 expected_status = None, expected_skip = None,
                 error_re_string = None,
-                commit_block_string = ".*remains in conflict.*"):
+                commit_block_string = ".*remains in conflict.*",
+                expected_info = None):
     self.name = name
     self.local_action = local_action
     self.incoming_action = incoming_action
@@ -2186,6 +2205,7 @@
     self.expected_skip = expected_skip
     self.error_re_string = error_re_string
     self.commit_block_string = commit_block_string
+    self.expected_info = expected_info
 
 
 
@@ -2314,6 +2334,11 @@
                             error_re_string = test_case.error_re_string)
       if x_status:
         run_and_verify_unquiet_status(base, x_status)
+
+      x_info = test_case.expected_info or {}
+      for path in x_info:
+        run_and_verify_info([x_info[path]], j(base, path))
+
     except:
       print("ERROR IN: Tests scheme for update: "
           + "while verifying in '%s'" % test_case.name)
@@ -2549,6 +2574,10 @@
       run_and_verify_switch(local, local, incoming, x_out, x_disk, None,
                             error_re_string = test_case.error_re_string)
       run_and_verify_unquiet_status(local, x_status)
+
+      x_info = test_case.expected_info or {}
+      for path in x_info:
+        run_and_verify_info([x_info[path]], j(local, path))
     except:
       print("ERROR IN: Tests scheme for switch: "
           + "while verifying in '%s'" % test_case.name)

Modified: subversion/trunk/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/switch_tests.py?rev=906121&r1=906120&r2=906121&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/switch_tests.py Wed Feb  3 16:44:14 2010
@@ -2332,13 +2332,53 @@
   # Update to the target rev.
   expected_status.tweak(wc_rev=3)
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .file.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .dir.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .dir.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .dir.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .dir.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .dir.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_switch(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_leaf_edit",
                         tree_del,
                         leaf_edit,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_switch_1_2(sbox):
@@ -2384,13 +2424,53 @@
                        'DD/D1/D2',
                        'DDD/D1/D2/D3')
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .dir.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .dir.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .dir.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon switch'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .dir.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_switch(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_leaf_del",
                         tree_del,
                         leaf_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_switch_2_1(sbox):
@@ -2425,13 +2505,54 @@
     'DDF/D1/D2/gamma',
     copied='+', wc_rev='-')
   expected_status.tweak('', switched='S')
+
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_switch(sbox,
     [ DeepTreesTestCase("local_leaf_edit_incoming_tree_del",
                         leaf_edit,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_switch_2_2(sbox):
@@ -2479,13 +2600,53 @@
                        'DDF/D1',
                        'DDF/D1/D2',)
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_switch(sbox,
     [ DeepTreesTestCase("local_leaf_del_incoming_tree_del",
                         leaf_del,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_switch_3(sbox):
@@ -2528,13 +2689,53 @@
                        'DDF/D1',
                        'DDF/D1/D2',)
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon switch'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_switch(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_tree_del",
                         tree_del,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def single_file_relocate(sbox):

Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/update_tests.py?rev=906121&r1=906120&r2=906121&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/update_tests.py Wed Feb  3 16:44:14 2010
@@ -4090,13 +4090,53 @@
   # Update to the target rev.
   expected_status.tweak(wc_rev=3)
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .file.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .dir.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .dir.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .dir.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .dir.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .dir.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_update(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_leaf_edit",
                         tree_del,
                         leaf_edit,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_update_1_2(sbox):
@@ -4141,13 +4181,53 @@
                        'DD/D1/D2',
                        'DDD/D1/D2/D3')
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .dir.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .dir.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .dir.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming edit upon update'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .dir.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_update(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_leaf_del",
                         tree_del,
                         leaf_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 def tree_conflicts_on_update_2_1(sbox):
@@ -4183,13 +4263,54 @@
     'DDF/D1/D2',
     'DDF/D1/D2/gamma',
     copied='+', wc_rev='-')
+
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local edit, incoming delete upon update'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_update(sbox,
     [ DeepTreesTestCase("local_leaf_edit_incoming_tree_del",
                         leaf_edit,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 
@@ -4244,13 +4365,54 @@
                        'DDD/D1/D2/D3',
                        'DDF/D1',
                        'DDF/D1/D2',)
+
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_update(sbox,
     [ DeepTreesTestCase("local_leaf_del_incoming_tree_del",
                         leaf_del,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 
 #----------------------------------------------------------------------
@@ -4315,7 +4477,7 @@
   # information is stored in the parent of a victim directory.
 
   svntest.actions.deep_trees_skipping_on_update(sbox,
-    DeepTreesTestCase("local_leaf_edit_incoming_tree_del",
+    DeepTreesTestCase("local_leaf_edit_incoming_tree_del_skipping",
                       leaf_edit,
                       tree_del,
                       expected_output,
@@ -4364,13 +4526,53 @@
                        'DDF/D1',
                        'DDF/D1/D2',)
 
+  expected_info = {
+    'F/alpha' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .file.*/F/alpha@2'
+        + ' Source right: .none.*/F/alpha@3$',
+    },
+    'DF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DF/D1@2'
+        + ' Source right: .none.*/DF/D1@3$',
+    },
+    'DDF/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DDF/D1@2'
+        + ' Source right: .none.*/DDF/D1@3$',
+    },
+    'D/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/D/D1@2'
+        + ' Source right: .none.*/D/D1@3$',
+    },
+    'DD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DD/D1@2'
+        + ' Source right: .none.*/DD/D1@3$',
+    },
+    'DDD/D1' : {
+      'Tree conflict' : 
+        '^local delete, incoming delete upon update'
+        + ' Source  left: .dir.*/DDD/D1@2'
+        + ' Source right: .none.*/DDD/D1@3$',
+    },
+  }
+
   svntest.actions.deep_trees_run_tests_scheme_for_update(sbox,
     [ DeepTreesTestCase("local_tree_del_incoming_tree_del",
                         tree_del,
                         tree_del,
                         expected_output,
                         expected_disk,
-                        expected_status) ] )
+                        expected_status,
+                        expected_info = expected_info) ] )
 
 #----------------------------------------------------------------------
 # Test for issue #3354 'update fails when file with local mods is moved



Mime
View raw message