[PATCH STABLE V2] tests: run "cwd was removed" test only if cwd can actually be removed
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Fri Oct 28 04:23:57 EDT 2016
On 10/27/2016 02:24 PM, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1477489806 -32400
> # Wed Oct 26 22:50:06 2016 +0900
> # Branch stable
> # Node ID e405867f4c8a3f77d81ac44aeb75b7b739222c64
> # Parent b9f7b0c10027764cee77f9c6d61877fcffea837f
> tests: run "cwd was removed" test only if cwd can actually be removed
I've pushed that one. Thanks.
>
> 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.
>
> 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)
>
> + at 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
Maybe we should check the errno here too? (as a followup)
Cheers,
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list