changeset 15685:e186705ad0d3

fchdir tests: EBADF tests. * tests/test-fchdir.c (main): Add more tests for EBADF.
author Bruno Haible <bruno@clisp.org>
date Tue, 20 Sep 2011 21:58:23 +0200
parents 0812be5c6a57
children 1a791c8d9039
files ChangeLog tests/test-fchdir.c
diffstat 2 files changed, 21 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-09-20  Bruno Haible  <bruno@clisp.org>
 
+	fchdir tests: EBADF tests.
+	* tests/test-fchdir.c (main): Add more tests for EBADF.
+
 	dup2 tests: EBADF tests.
 	* tests/test-dup2.c (main): Add more tests for EBADF.
 
--- a/tests/test-fchdir.c
+++ b/tests/test-fchdir.c
@@ -34,14 +34,29 @@
 int
 main (void)
 {
-  char *cwd = getcwd (NULL, 0);
-  int fd = open (".", O_RDONLY);
+  char *cwd;
+  int fd;
   int i;
 
+  cwd = getcwd (NULL, 0);
   ASSERT (cwd);
+
+  fd = open (".", O_RDONLY);
   ASSERT (0 <= fd);
 
-  /* Check for failure cases.  */
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    errno = 0;
+    ASSERT (fchdir (-1) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    errno = 0;
+    ASSERT (fchdir (99) == -1);
+    ASSERT (errno == EBADF);
+  }
+
+  /* Check for other failure cases.  */
   {
     int bad_fd = open ("/dev/null", O_RDONLY);
     ASSERT (0 <= bad_fd);
@@ -49,9 +64,6 @@
     ASSERT (fchdir (bad_fd) == -1);
     ASSERT (errno == ENOTDIR);
     ASSERT (close (bad_fd) == 0);
-    errno = 0;
-    ASSERT (fchdir (-1) == -1);
-    ASSERT (errno == EBADF);
   }
 
   /* Repeat test twice, once in '.' and once in '..'.  */