diff --git a/tests/hghave.py b/tests/hghave.py --- a/tests/hghave.py +++ b/tests/hghave.py @@ -346,6 +346,21 @@ def has_hardlink(): 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') diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t --- a/tests/test-rebase-scenario-global.t +++ b/tests/test-rebase-scenario-global.t @@ -756,12 +756,19 @@ Test that rebase is not confused by $CWD $ 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) diff --git a/tests/test-update-names.t b/tests/test-update-names.t --- a/tests/test-update-names.t +++ b/tests/test-update-names.t @@ -73,6 +73,8 @@ Test update when two commits have symlin #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 @@ Test that warning is printed if cwd is d $ hg up -q null current directory was removed (consider changing to repo root: $TESTTMP/r1/r4) + +#endif