X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-renameat.c;h=9ca17876537505c75ae8181768316fcbe49fa6b4;hb=9e30dc1496f3b844fc6b309373cfc5d255b3dce5;hp=f9a561106bfe8c49b44ff78b566037865674e10d;hpb=cf3b6a11724d87837830e3e5390a6cacf6af1cd4;p=gnulib.git diff --git a/tests/test-renameat.c b/tests/test-renameat.c index f9a561106..9ca178765 100644 --- a/tests/test-renameat.c +++ b/tests/test-renameat.c @@ -1,5 +1,5 @@ /* Tests of renameat. - 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 @@ -33,7 +33,6 @@ SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *)); #include #include "filenamecat.h" -#include "xgetcwd.h" #include "ignore-value.h" #include "macros.h" @@ -62,6 +61,29 @@ main (void) /* Clean up any trash from prior testsuite runs. */ ignore_value (system ("rm -rf " BASE "*")); + /* Test behaviour for invalid file descriptors. */ + { + errno = 0; + ASSERT (renameat (-1, "foo", AT_FDCWD, "bar") == -1); + ASSERT (errno == EBADF); + } + { + errno = 0; + ASSERT (renameat (99, "foo", AT_FDCWD, "bar") == -1); + ASSERT (errno == EBADF); + } + ASSERT (close (creat (BASE "oo", 0600)) == 0); + { + errno = 0; + ASSERT (renameat (AT_FDCWD, BASE "oo", -1, "bar") == -1); + ASSERT (errno == EBADF); + } + { + errno = 0; + ASSERT (renameat (AT_FDCWD, BASE "oo", 99, "bar") == -1); + ASSERT (errno == EBADF); + } + /* Test basic rename functionality, using current directory. */ result = test_rename (do_rename, false); dfd1 = open (".", O_RDONLY); @@ -79,7 +101,8 @@ main (void) dfd = creat (BASE "00", 0600); ASSERT (0 <= dfd); ASSERT (close (dfd) == 0); - cwd = xgetcwd (); + cwd = getcwd (NULL, 0); + ASSERT (cwd); dfd = open (BASE "sub1", O_RDONLY); ASSERT (0 <= dfd); @@ -130,10 +153,10 @@ main (void) errno = 0; ASSERT (renameat (dfd, BASE "sub2", dfd, BASE "sub1/.") == -1); ASSERT (errno == EINVAL || errno == EISDIR || errno == EBUSY - || errno == ENOTEMPTY); + || errno == ENOTEMPTY || errno == EEXIST); errno = 0; ASSERT (renameat (dfd, BASE "sub2/.", dfd, BASE "sub1") == -1); - ASSERT (errno == EINVAL || errno == EBUSY); + ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST); errno = 0; ASSERT (renameat (dfd, BASE "17", dfd, BASE "sub1") == -1); ASSERT (errno == EISDIR);