- ASSERT (func (BASE "dir", BASE "dir2/") == 0); /* Simple rename. */
- errno = 0;
- ASSERT (stat (BASE "dir", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (stat (BASE "dir2", &st) == 0);
- ASSERT (func (BASE "dir2/", BASE "dir") == 0);
- ASSERT (stat (BASE "dir", &st) == 0);
- errno = 0;
- ASSERT (stat (BASE "dir2", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (func (BASE "dir", BASE "dir2") == 0);
- errno = 0;
- ASSERT (stat (BASE "dir", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (stat (BASE "dir2", &st) == 0);
- ASSERT (mkdir (BASE "dir", 0700) == 0); /* Empty onto empty. */
- ASSERT (func (BASE "dir2", BASE "dir") == 0);
- ASSERT (mkdir (BASE "dir2", 0700) == 0);
- ASSERT (func (BASE "dir2", BASE "dir/") == 0);
- ASSERT (mkdir (BASE "dir2", 0700) == 0);
- ASSERT (func (BASE "dir2/", BASE "dir") == 0);
- ASSERT (mkdir (BASE "dir2", 0700) == 0);
- ASSERT (close (creat (BASE "dir/file", 0600)) == 0); /* Empty onto full. */
- errno = 0;
- ASSERT (func (BASE "dir2", BASE "dir") == -1);
- ASSERT (errno == EEXIST || errno == ENOTEMPTY);
- errno = 0;
- ASSERT (func (BASE "dir2/", BASE "dir") == -1);
- ASSERT (errno == EEXIST || errno == ENOTEMPTY);
- errno = 0;
- ASSERT (func (BASE "dir2", BASE "dir/") == -1);
- ASSERT (errno == EEXIST || errno == ENOTEMPTY);
- ASSERT (func (BASE "dir", BASE "dir2") == 0); /* Full onto empty. */
- errno = 0;
- ASSERT (stat (BASE "dir", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (stat (BASE "dir2/file", &st) == 0);
- ASSERT (mkdir (BASE "dir", 0700) == 0);
- ASSERT (func (BASE "dir2/", BASE "dir") == 0);
- ASSERT (stat (BASE "dir/file", &st) == 0);
- errno = 0;
- ASSERT (stat (BASE "dir2", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (mkdir (BASE "dir2", 0700) == 0);
- ASSERT (func (BASE "dir", BASE "dir2/") == 0);
- errno = 0;
- ASSERT (stat (BASE "dir", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (stat (BASE "dir2/file", &st) == 0);
- ASSERT (unlink (BASE "dir2/file") == 0);
- errno = 0; /* Reject trailing dot. */
- ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
- ASSERT (errno == EINVAL || errno == ENOENT);
- ASSERT (mkdir (BASE "dir", 0700) == 0);
- errno = 0;
- ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
- || errno == ENOTEMPTY);
- errno = 0;
- ASSERT (func (BASE "dir2/.", BASE "dir") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY);
- ASSERT (rmdir (BASE "dir") == 0);
- errno = 0;
- ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
- ASSERT (errno == EINVAL || errno == ENOENT);
- ASSERT (mkdir (BASE "dir", 0700) == 0);
- errno = 0;
- ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
- || errno == ENOTEMPTY);
- errno = 0;
- ASSERT (func (BASE "dir2/.//", BASE "dir") == -1);
- ASSERT (errno == EINVAL || errno == EBUSY);
- ASSERT (rmdir (BASE "dir2") == 0);
- errno = 0; /* Move into subdir. */
- ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
- ASSERT (errno == EINVAL || errno == EACCES);
- errno = 0;
- ASSERT (stat (BASE "dir/sub", &st) == -1);
- ASSERT (errno == ENOENT);
- ASSERT (mkdir (BASE "dir/sub", 0700) == 0);
- errno = 0;
- ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
- ASSERT (errno == EINVAL);
- ASSERT (stat (BASE "dir/sub", &st) == 0);
- ASSERT (rmdir (BASE "dir/sub") == 0);
+
+ { /* Simple rename. */
+ {
+ ASSERT (func (BASE "dir", BASE "dir2/") == 0);
+ errno = 0;
+ ASSERT (stat (BASE "dir", &st) == -1);
+ ASSERT (errno == ENOENT);
+ ASSERT (stat (BASE "dir2", &st) == 0);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ */
+ {
+ ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+ ASSERT (stat (BASE "dir", &st) == 0);
+ errno = 0;
+ ASSERT (stat (BASE "dir2", &st) == -1);
+ ASSERT (errno == ENOENT);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */
+ {
+ ASSERT (func (BASE "dir", BASE "dir2") == 0);
+ errno = 0;
+ ASSERT (stat (BASE "dir", &st) == -1);
+ ASSERT (errno == ENOENT);
+ ASSERT (stat (BASE "dir2", &st) == 0);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ */
+ { /* Empty onto empty. */
+ ASSERT (mkdir (BASE "dir", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ ASSERT (func (BASE "dir2", BASE "dir") == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */
+ ASSERT (mkdir (BASE "dir2", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ ASSERT (func (BASE "dir2", BASE "dir/") == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */
+ ASSERT (mkdir (BASE "dir2", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */
+ ASSERT (mkdir (BASE "dir2", 0700) == 0);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ { /* Empty onto full. */
+ ASSERT (close (creat (BASE "dir/file", 0600)) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir/file
+ {BASE}dir2/
+ */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir") == -1);
+ ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+ }
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2/", BASE "dir") == -1);
+ ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+ }
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir/") == -1);
+ ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+ }
+ }
+ { /* Full onto empty. */
+ ASSERT (func (BASE "dir", BASE "dir2") == 0);
+ assert_nonexistent (BASE "dir");
+ ASSERT (stat (BASE "dir2/file", &st) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ {BASE}dir2/file
+ */
+ ASSERT (mkdir (BASE "dir", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ {BASE}dir2/file
+ */
+ {
+ ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+ ASSERT (stat (BASE "dir/file", &st) == 0);
+ errno = 0;
+ ASSERT (stat (BASE "dir2", &st) == -1);
+ ASSERT (errno == ENOENT);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir/file
+ */
+ ASSERT (mkdir (BASE "dir2", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir/file
+ {BASE}dir2/
+ */
+ {
+ ASSERT (func (BASE "dir", BASE "dir2/") == 0);
+ assert_nonexistent (BASE "dir");
+ ASSERT (stat (BASE "dir2/file", &st) == 0);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ {BASE}dir2/file
+ */
+ ASSERT (unlink (BASE "dir2/file") == 0);
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ */
+ { /* Reject trailing dot. */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
+ ASSERT (errno == EINVAL || errno == ENOENT);
+ }
+ ASSERT (mkdir (BASE "dir", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
+ || errno == ENOTEMPTY || errno == EEXIST);
+ }
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2/.", BASE "dir") == -1);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST);
+ }
+ ASSERT (rmdir (BASE "dir") == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir2/
+ */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
+ ASSERT (errno == EINVAL || errno == ENOENT);
+ }
+ ASSERT (mkdir (BASE "dir", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir2/
+ */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
+ || errno == ENOTEMPTY || errno == EEXIST);
+ }
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir2/.//", BASE "dir") == -1);
+ ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST);
+ }
+ ASSERT (rmdir (BASE "dir2") == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */
+ }
+ { /* Move into subdir. */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
+ ASSERT (errno == EINVAL || errno == EACCES);
+ }
+ {
+ errno = 0;
+ ASSERT (stat (BASE "dir/sub", &st) == -1);
+ ASSERT (errno == ENOENT);
+ }
+ ASSERT (mkdir (BASE "dir/sub", 0700) == 0);
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ {BASE}dir/sub/
+ */
+ {
+ errno = 0;
+ ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
+ ASSERT (errno == EINVAL);
+ ASSERT (stat (BASE "dir/sub", &st) == 0);
+ }
+ ASSERT (rmdir (BASE "dir/sub") == 0);
+ }
+ }
+ /* Files present here:
+ {BASE}file
+ {BASE}dir/
+ */