open_posix:aio_fsync:8-1: wait for aio_write completion
Wait for aio_write() completion.
If aio_fsync() sync the fd without the previous aio_write()
completion, it will cause Segment Fault.
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/8-1.c b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/8-1.c
index 4129dcd..3940f62 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/8-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/8-1.c
@@ -27,6 +27,7 @@
#define BUF_SIZE 111
char buf[BUF_SIZE];
int fd;
+ int ret;
struct aiocb aiocb_write;
struct aiocb aiocb_fsync;
@@ -57,6 +58,15 @@
exit(PTS_FAIL);
}
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb_write);
+ } while (ret == EINPROGRESS);
+ if (ret < 0) {
+ printf(TNAME " Error at aio_error() : %s\n", strerror(ret));
+ exit(PTS_FAIL);
+ }
+
memset(&aiocb_fsync, 0, sizeof(aiocb_fsync));
aiocb_fsync.aio_fildes = fd;
aiocb_fsync.aio_nbytes = -1;