/* Test of rename() function.
- Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2009-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
if (stat (filename, &st) == -1)
ASSERT (errno == ENOENT);
else
- /* But after renaming a directory over an empty directory on an NFS-mounted
- file system, on Linux 2.6.18, for a period of 30 seconds the old
- directory name is "present" according to stat() but "nonexistent"
- according to dentry_exists(). */
- ASSERT (!dentry_exists (filename));
+ {
+ /* But after renaming a directory over an empty directory on an NFS-
+ mounted file system, on Linux 2.6.18, for a period of 30 seconds the
+ old directory name is "present" according to stat() but "nonexistent"
+ according to dentry_exists(). */
+ ASSERT (!dentry_exists (filename));
+ /* Remove the old directory name, so that subsequent mkdir calls
+ succeed. */
+ (void) rmdir (filename);
+ }
}
static int
{
errno = 0;
ASSERT (func (BASE "dir2/.", BASE "dir") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST);
}
ASSERT (rmdir (BASE "dir") == 0);
/* Files present here:
{
errno = 0;
ASSERT (func (BASE "dir2/.//", BASE "dir") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST);
}
ASSERT (rmdir (BASE "dir2") == 0);
/* Files present here:
if (result) /* GNU/Linux rejects attempts to use link2/. */
{
ASSERT (result == -1);
- ASSERT (errno == ENOTDIR);
+ ASSERT (errno == ENOTDIR || errno == EISDIR);
}
memset (&st, 0, sizeof st);
ASSERT (lstat (BASE "dir", &st) == 0);