From f52a5c387483cc1e0a87952f1b60a9a288425c7a Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 16 Sep 2011 23:55:06 +0200 Subject: [PATCH] Enhance fsync, fdatasync tests. * tests/test-fsync.c (main): Test both STDIN_FILENO and STDOUT_FILENO. * tests/test-fdatasync.c (main): Likewise. --- ChangeLog | 6 ++++++ tests/test-fdatasync.c | 19 ++++++++++++------- tests/test-fsync.c | 17 ++++++++++------- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 27e418137..7a9a86805 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-09-16 Bruno Haible + Enhance fsync, fdatasync tests. + * tests/test-fsync.c (main): Test both STDIN_FILENO and STDOUT_FILENO. + * tests/test-fdatasync.c (main): Likewise. + +2011-09-16 Bruno Haible + Support for MSVC compiler: Ensure mode_t gets defined. * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. diff --git a/tests/test-fdatasync.c b/tests/test-fdatasync.c index d23e6db38..d35096dec 100644 --- a/tests/test-fdatasync.c +++ b/tests/test-fdatasync.c @@ -32,21 +32,25 @@ main (void) int fd; const char *file = "test-fdatasync.txt"; - if (fdatasync (STDOUT_FILENO) != 0) - { - ASSERT (errno == EINVAL /* POSIX */ - || errno == ENOTSUP /* seen on MacOS X 10.5 */ - || errno == EBADF /* seen on AIX 7.1 */ - ); - } + for (fd = 0; fd < 2; fd++) + if (fdatasync (fd) != 0) + { + ASSERT (errno == EINVAL /* POSIX */ + || errno == ENOTSUP /* seen on MacOS X 10.5 */ + || errno == EBADF /* seen on AIX 7.1 */ + ); + } + errno = 0; ASSERT (fdatasync (-1) == -1); ASSERT (errno == EBADF); + fd = open (file, O_WRONLY|O_CREAT|O_TRUNC, 0644); ASSERT (0 <= fd); ASSERT (write (fd, "hello", 5) == 5); ASSERT (fdatasync (fd) == 0); ASSERT (close (fd) == 0); + #if 0 /* POSIX is self-contradictory on whether fdatasync must fail on read-only file descriptors. Glibc allows it, as does our @@ -58,6 +62,7 @@ main (void) ASSERT (errno == EBADF); ASSERT (close (fd) == 0); #endif + ASSERT (unlink (file) == 0); return 0; diff --git a/tests/test-fsync.c b/tests/test-fsync.c index 11c047899..e86624862 100644 --- a/tests/test-fsync.c +++ b/tests/test-fsync.c @@ -32,16 +32,19 @@ main (void) int fd; const char *file = "test-fsync.txt"; - if (fsync (STDOUT_FILENO) != 0) - { - ASSERT (errno == EINVAL /* POSIX */ - || errno == ENOTSUP /* seen on MacOS X 10.5 */ - || errno == EBADF /* seen on AIX 7.1 */ - ); - } + for (fd = 0; fd < 2; fd++) + if (fsync (fd) != 0) + { + ASSERT (errno == EINVAL /* POSIX */ + || errno == ENOTSUP /* seen on MacOS X 10.5 */ + || errno == EBADF /* seen on AIX 7.1 */ + ); + } + errno = 0; ASSERT (fsync (-1) == -1); ASSERT (errno == EBADF); + fd = open (file, O_WRONLY|O_CREAT|O_TRUNC, 0644); ASSERT (0 <= fd); ASSERT (write (fd, "hello", 5) == 5); -- 2.11.0