From 7fd36dc1852f42a56f1aaa28772b246d4e728249 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 20 Sep 2011 21:58:23 +0200 Subject: [PATCH] fchdir tests: EBADF tests. * tests/test-fchdir.c (main): Add more tests for EBADF. --- ChangeLog | 3 +++ tests/test-fchdir.c | 24 ++++++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 87aa4a252..0bcb5ef44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-09-20 Bruno Haible + 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. diff --git a/tests/test-fchdir.c b/tests/test-fchdir.c index 0375c317d..2e6b06760 100644 --- a/tests/test-fchdir.c +++ b/tests/test-fchdir.c @@ -34,14 +34,29 @@ SIGNATURE_CHECK (fchdir, int, (int)); 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 @@ main (void) 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 '..'. */ -- 2.11.0