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 27e4181378..7a9a868056 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/tests/test-fdatasync.c b/tests/test-fdatasync.c index d23e6db388..d35096dec9 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 11c0478991..e86624862a 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.39.5