Author: jcorvel
Date: Wed May 18 21:23:42 2011
New Revision: 1124436

URL: http://svn.apache.org/viewvc?rev=1124436&view=rev
Log:
Add a regression test for issue #3865: 'svn' on Windows cannot address
scheduled-for-delete file, if another file differing only in case is
present on disk.

* subversion/tests/cmdline/copy_tests.py
  (deleted_file_with_case_clash): New test, marked XFail for 
   'is_fs_case_insensitive'.

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

Modified: subversion/trunk/subversion/tests/cmdline/copy_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/copy_tests.py?rev=1124436&r1=1124435&r2=1124436&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/copy_tests.py Wed May 18 21:23:42 
2011
@@ -5119,6 +5119,43 @@ def copy_url_shortcut(sbox):
 
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
+
+# Regression test for issue #3865: 'svn' on Windows cannot address
+# scheduled-for-delete file, if another file differing only in case is
+# present on disk
+@XFail(svntest.main.is_fs_case_insensitive)
+@Issue(3865)
+def deleted_file_with_case_clash(sbox):
+  """address a deleted file hidden by case clash"""
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+  
+  iota_path = os.path.join(wc_dir, 'iota')
+  iota2_path = os.path.join(wc_dir, 'iota2')
+  IOTA_path = os.path.join(wc_dir, 'IOTA')
+  
+  # Perform a case-only rename in two steps.
+  svntest.main.run_svn(None, 'move', iota_path, iota2_path)
+  svntest.main.run_svn(None, 'move', iota2_path, IOTA_path)
+  
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.add({
+    'iota' : Item(status='D ', wc_rev=1),
+    'IOTA' : Item(status='A ', copied='+', wc_rev='-'),
+    })
+
+  svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+  # Perform an 'info' call, where we expect to be able to see the 
+  # deleted file (which is hidden by the on-disk case-clashing file).
+  expected_info = {'Path' : re.escape(iota_path),
+                   'Schedule' : 'delete',
+                  }
+                  
+  svntest.actions.run_and_verify_info([expected_info], iota_path)
+
+
 ########################################################################
 # Run the tests
 
@@ -5224,6 +5261,7 @@ test_list = [ None,
               move_wc_and_repo_dir_to_itself,
               copy_wc_url_with_absent,
               copy_url_shortcut,
+              deleted_file_with_case_clash,
              ]
 
 if __name__ == '__main__':


Reply via email to