linkat tests: EBADF tests.
authorBruno Haible <bruno@clisp.org>
Tue, 20 Sep 2011 20:43:43 +0000 (22:43 +0200)
committerBruno Haible <bruno@clisp.org>
Tue, 20 Sep 2011 21:27:59 +0000 (23:27 +0200)
* tests/test-linkat.c (main): Add tests for EBADF.

ChangeLog
tests/test-linkat.c

index 38469e4..1c37270 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-09-20  Bruno Haible  <bruno@clisp.org>
 
+       linkat tests: EBADF tests.
+       * tests/test-linkat.c (main): Add tests for EBADF.
+
        Tests for module 'faccessat'.
        * modules/faccessat-tests: New file.
        * tests/test-faccessat.c: New file.
index 2aea565..40b8371 100644 (file)
@@ -95,6 +95,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 (linkat (-1, "foo", AT_FDCWD, "bar", 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    errno = 0;
+    ASSERT (linkat (99, "foo", AT_FDCWD, "bar", 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+  ASSERT (close (creat (BASE "oo", 0600)) == 0);
+  {
+    errno = 0;
+    ASSERT (linkat (AT_FDCWD, BASE "oo", -1, "bar", 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    errno = 0;
+    ASSERT (linkat (AT_FDCWD, BASE "oo", 99, "bar", 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+
   /* Test basic link functionality, without mentioning symlinks.  */
   result = test_link (do_link, true);
   dfd1 = open (".", O_RDONLY);