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.
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);
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 '..'. */