From 0badc0619a5cf609d565d358350be36e142e2d79 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 20 Sep 2011 22:51:30 +0200 Subject: [PATCH] fcntl tests: EBADF tests. * tests/test-fcntl.c (main): Add more tests for EBADF. --- ChangeLog | 5 ++++ tests/test-fcntl.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b44a692ed..2d0a33473 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2011-09-20 Bruno Haible + fcntl tests: EBADF tests. + * tests/test-fcntl.c (main): Add more tests for EBADF. + +2011-09-20 Bruno Haible + utimensat tests: EBADF tests. * tests/test-utimensat.c (main): Add tests for EBADF. diff --git a/tests/test-fcntl.c b/tests/test-fcntl.c index 23a0dba0d..59b007719 100644 --- a/tests/test-fcntl.c +++ b/tests/test-fcntl.c @@ -312,7 +312,7 @@ main (void) ASSERT (is_mode (fd + 2, O_TEXT)); ASSERT (close (fd + 2) == 0); - /* Test F_GETFD. */ + /* Test F_GETFD on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_GETFD) == -1); ASSERT (errno == EBADF); @@ -322,6 +322,8 @@ main (void) errno = 0; ASSERT (fcntl (10000000, F_GETFD) == -1); ASSERT (errno == EBADF); + + /* Test F_GETFD, the FD_CLOEXEC bit. */ { int result = fcntl (fd, F_GETFD); ASSERT (0 <= result); @@ -333,6 +335,71 @@ main (void) ASSERT (close (fd + 1) == 0); } +#ifdef F_SETFD + /* Test F_SETFD on invalid file descriptors. */ + errno = 0; + ASSERT (fcntl (-1, F_SETFD, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (fd + 1, F_SETFD, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (10000000, F_SETFD, 0) == -1); + ASSERT (errno == EBADF); +#endif + +#ifdef F_GETFL + /* Test F_GETFL on invalid file descriptors. */ + errno = 0; + ASSERT (fcntl (-1, F_GETFL) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (fd + 1, F_GETFL) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (10000000, F_GETFL) == -1); + ASSERT (errno == EBADF); +#endif + +#ifdef F_SETFL + /* Test F_SETFL on invalid file descriptors. */ + errno = 0; + ASSERT (fcntl (-1, F_SETFL, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (fd + 1, F_SETFL, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (10000000, F_SETFL, 0) == -1); + ASSERT (errno == EBADF); +#endif + +#ifdef F_GETOWN + /* Test F_GETOWN on invalid file descriptors. */ + errno = 0; + ASSERT (fcntl (-1, F_GETOWN) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (fd + 1, F_GETOWN) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (10000000, F_GETOWN) == -1); + ASSERT (errno == EBADF); +#endif + +#ifdef F_SETOWN + /* Test F_SETFL on invalid file descriptors. */ + errno = 0; + ASSERT (fcntl (-1, F_SETOWN, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (fd + 1, F_SETOWN, 0) == -1); + ASSERT (errno == EBADF); + errno = 0; + ASSERT (fcntl (10000000, F_SETOWN, 0) == -1); + ASSERT (errno == EBADF); +#endif + /* Cleanup. */ ASSERT (close (fd) == 0); ASSERT (unlink (file) == 0); -- 2.11.0