tests: run "cwd was removed" test only if cwd can actually be removed stable
authorYuya Nishihara <yuya@tcha.org>
Wed, 26 Oct 2016 22:50:06 +0900
branchstable
changeset 30230 46a0203dfb89
parent 30229 69ffbbe73dd0
child 30231 741e5d7f282d
tests: run "cwd was removed" test only if cwd can actually be removed On some platforms, cwd can't be removed. In which case, util.unlinkpath() continues with no error since the failure of directory removal isn't critical. So it doesn't make sense to run the test added by 90a6c18a7c1d on those platforms. OTOH, we need to run the test in test-rebase-scenario-global.t since the repository is referenced after that.
tests/hghave.py
tests/test-rebase-scenario-global.t
tests/test-update-names.t
--- a/tests/hghave.py	Tue Oct 25 21:01:53 2016 +0200
+++ b/tests/hghave.py	Wed Oct 26 22:50:06 2016 +0900
@@ -346,6 +346,21 @@
     finally:
         os.unlink(fn)
 
+@check("rmcwd", "can remove current working directory")
+def has_rmcwd():
+    ocwd = os.getcwd()
+    temp = tempfile.mkdtemp(dir='.', prefix=tempprefix)
+    try:
+        os.chdir(temp)
+        # On Linux, 'rmdir .' isn't allowed, but the other names are okay.
+        # On Solaris and Windows, the cwd can't be removed by any names.
+        os.rmdir(os.getcwd())
+        return True
+    except OSError:
+        return False
+    finally:
+        os.chdir(ocwd)
+
 @check("tla", "GNU Arch tla client")
 def has_tla():
     return matchoutput('tla --version 2>&1', br'The GNU Arch Revision')
--- a/tests/test-rebase-scenario-global.t	Tue Oct 25 21:01:53 2016 +0200
+++ b/tests/test-rebase-scenario-global.t	Wed Oct 26 22:50:06 2016 +0900
@@ -756,12 +756,19 @@
   $ touch subfile
   $ hg add subfile
   $ hg commit -m 'second source with subdir'
+#if rmcwd
   $ hg rebase -b . -d 1 --traceback
   rebasing 2:779a07b1b7a0 "first source commit"
   current directory was removed
   (consider changing to repo root: $TESTTMP/cwd-vanish)
   rebasing 3:a7d6f3a00bf3 "second source with subdir" (tip)
   saved backup bundle to $TESTTMP/cwd-vanish/.hg/strip-backup/779a07b1b7a0-853e0073-backup.hg (glob)
+#else
+  $ hg rebase -b . -d 1 --traceback
+  rebasing 2:779a07b1b7a0 "first source commit"
+  rebasing 3:a7d6f3a00bf3 "second source with subdir" (tip)
+  saved backup bundle to $TESTTMP/cwd-vanish/.hg/strip-backup/779a07b1b7a0-853e0073-backup.hg (glob)
+#endif
 
 Test that rebase is done in topo order (issue5370)
 
--- a/tests/test-update-names.t	Tue Oct 25 21:01:53 2016 +0200
+++ b/tests/test-update-names.t	Wed Oct 26 22:50:06 2016 +0900
@@ -73,6 +73,8 @@
 
 #endif
 
+#if rmcwd
+
 Test that warning is printed if cwd is deleted during update
   $ hg init r4 && cd r4
   $ mkdir dir
@@ -84,3 +86,5 @@
   $ hg up -q null
   current directory was removed
   (consider changing to repo root: $TESTTMP/r1/r4)
+
+#endif