changeset 15707:b9ce5dc1f411

renameat tests: EBADF tests. * tests/test-renameat.c (main): Add tests for EBADF.
author Bruno Haible <bruno@clisp.org>
date Tue, 20 Sep 2011 22:48:42 +0200
parents 3f289df7b6a1
children 7eaba4a7b6f5
files ChangeLog tests/test-renameat.c
diffstat 2 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-09-20  Bruno Haible  <bruno@clisp.org>
 
+	renameat tests: EBADF tests.
+	* tests/test-renameat.c (main): Add tests for EBADF.
+
 	mkfifoat tests: EBADF tests.
 	* tests/test-mkfifoat.c (main): Add tests for EBADF.
 
--- a/tests/test-renameat.c
+++ b/tests/test-renameat.c
@@ -61,6 +61,29 @@
   /* 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);