You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2016/02/21 14:05:59 UTC

svn commit: r1731525 - /subversion/trunk/subversion/tests/cmdline/patch_tests.py

Author: rhuijben
Date: Sun Feb 21 13:05:59 2016
New Revision: 1731525

URL: http://svn.apache.org/viewvc?rev=1731525&view=rev
Log:
Add testcase based upon a test on the users@s.a.o list on a merge that is
reported to include certain lines multiple times.

Somehow this test isn't able to replicate the result reported on the list
(yet).

* subversion/tests/cmdline/patch_tests.py
  (patch_merge): New test.
  (test_list): Add patch_merge.

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

Modified: subversion/trunk/subversion/tests/cmdline/patch_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/patch_tests.py?rev=1731525&r1=1731524&r2=1731525&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/patch_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/patch_tests.py Sun Feb 21 13:05:59 2016
@@ -7679,6 +7679,88 @@ def patch_missed_trail(sbox):
                                        expected_output, expected_disk,
                                        expected_status, expected_skip)
 
+def patch_merge(sbox):
+  "patching a specific merge"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  sbox.simple_add_text('A\n'
+                       'B\n'
+                       'C\n'
+                       'J\n'
+                       'K\n'
+                       'L', 'new.txt')
+  sbox.simple_commit()
+
+  remote_patch = sbox.get_tempname('remote.patch')
+  svntest.main.file_write(remote_patch,
+      '--- new.txt\t(revision 6)\n'
+      '+++ new.txt\t(revision 7)\n'
+      '@@ -1,6 +1,9 @@\n'
+      ' A\n'
+      ' B\n'
+      '-C\n'
+      '+ C\n'
+      '+D\n'
+      '+E\n'
+      '+F\n'
+      ' J\n'
+      ' K\n'
+      ' L\n'
+      '\ No newline at end of file', mode='wb')
+
+  expected_skip = wc.State('', { })
+  expected_output = wc.State(wc_dir, {
+      'new.txt' : Item(status='U '),
+    })
+  svntest.actions.run_and_verify_patch(wc_dir, remote_patch,
+                                       expected_output, None,
+                                       None, expected_skip)
+  sbox.simple_commit()
+  sbox.simple_update(revision=2)
+
+  local_patch = sbox.get_tempname('local.patch')
+  svntest.main.file_write(local_patch,
+      '--- new.txt\t(revision 3)\n'
+      '+++ new.txt\t(revision 4)\n'
+      '@@ -1,6 +1,9 @@\n'
+      ' A\n'
+      ' B\n'
+      ' C\n'
+      '+D\n'
+      '+E\n'
+      '+F\n'
+      ' J\n'
+      ' K\n'
+      ' L\n'
+      '\ No newline at end of file', mode='wb')
+
+  svntest.actions.run_and_verify_patch(wc_dir, local_patch,
+                                       expected_output, None,
+                                       None, expected_skip)
+
+  expected_disk = svntest.main.greek_state.copy()
+  expected_disk.add({
+    'new.txt' : Item(contents='A\n'
+                              'B\n'
+                              ' C\n'
+                              'D\n'
+                              'E\n'
+                              'F\n'
+                              'D\n'
+                              'E\n'
+                              'F\n'
+                              'J\n'
+                              'K\n'
+                              'L')})
+  expected_output = wc.State(wc_dir, {
+    'new.txt'           : Item(status='G '),
+  })
+
+  svntest.actions.run_and_verify_update(wc_dir, expected_output, expected_disk,
+                                        None, [])
+
 ########################################################################
 #Run the tests
 
@@ -7761,6 +7843,7 @@ test_list = [ None,
               patch_move_and_change,
               missing_trailing_context,
               patch_missed_trail,
+              patch_merge,
             ]
 
 if __name__ == '__main__':