Changeset View
Changeset View
Standalone View
Standalone View
tests/sys/aio/aio_test.c
Context not available. | |||||
ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno)); | ATF_REQUIRE_MSG(fd != -1, "open failed: %s", strerror(errno)); | ||||
unlink(FILE_PATHNAME); | unlink(FILE_PATHNAME); | ||||
/* aio_fsync should return EINVAL unless op is O_SYNC */ | /* aio_fsync should return EINVAL unless op is O_SYNC or O_DSYNC */ | ||||
memset(&iocb, 0, sizeof(iocb)); | memset(&iocb, 0, sizeof(iocb)); | ||||
iocb.aio_fildes = fd; | iocb.aio_fildes = fd; | ||||
ATF_CHECK_EQ(-1, aio_fsync(666, &iocb)); | ATF_CHECK_EQ(-1, aio_fsync(666, &iocb)); | ||||
Context not available. | |||||
/* | /* | ||||
* This test just performs a basic test of aio_fsync(). | * This test just performs a basic test of aio_fsync(). | ||||
*/ | */ | ||||
ATF_TC_WITHOUT_HEAD(aio_fsync_test); | static void | ||||
ATF_TC_BODY(aio_fsync_test, tc) | aio_fsync_test(int op) | ||||
{ | { | ||||
struct aiocb synccb, *iocbp; | struct aiocb synccb, *iocbp; | ||||
struct { | struct { | ||||
Context not available. | |||||
/* Queue the aio_fsync request. */ | /* Queue the aio_fsync request. */ | ||||
memset(&synccb, 0, sizeof(synccb)); | memset(&synccb, 0, sizeof(synccb)); | ||||
synccb.aio_fildes = fd; | synccb.aio_fildes = fd; | ||||
ATF_REQUIRE(aio_fsync(O_SYNC, &synccb) == 0); | ATF_REQUIRE(aio_fsync(op, &synccb) == 0); | ||||
/* Wait for requests to complete. */ | /* Wait for requests to complete. */ | ||||
for (;;) { | for (;;) { | ||||
Context not available. | |||||
close(fd); | close(fd); | ||||
} | } | ||||
ATF_TC_WITHOUT_HEAD(aio_fsync_sync_test); | |||||
ATF_TC_BODY(aio_fsync_sync_test, tc) | |||||
{ | |||||
aio_fsync_test(O_SYNC); | |||||
} | |||||
ATF_TC_WITHOUT_HEAD(aio_fsync_dsync_test); | |||||
ATF_TC_BODY(aio_fsync_dsync_test, tc) | |||||
{ | |||||
aio_fsync_test(O_DSYNC); | |||||
} | |||||
/* | /* | ||||
* We shouldn't be able to DoS the system by setting iov_len to an insane | * We shouldn't be able to DoS the system by setting iov_len to an insane | ||||
* value | * value | ||||
Context not available. | |||||
ATF_TP_ADD_TC(tp, md_thread); | ATF_TP_ADD_TC(tp, md_thread); | ||||
ATF_TP_ADD_TC(tp, md_waitcomplete); | ATF_TP_ADD_TC(tp, md_waitcomplete); | ||||
ATF_TP_ADD_TC(tp, aio_fsync_errors); | ATF_TP_ADD_TC(tp, aio_fsync_errors); | ||||
ATF_TP_ADD_TC(tp, aio_fsync_test); | ATF_TP_ADD_TC(tp, aio_fsync_sync_test); | ||||
ATF_TP_ADD_TC(tp, aio_fsync_dsync_test); | |||||
ATF_TP_ADD_TC(tp, aio_large_read_test); | ATF_TP_ADD_TC(tp, aio_large_read_test); | ||||
ATF_TP_ADD_TC(tp, aio_socket_two_reads); | ATF_TP_ADD_TC(tp, aio_socket_two_reads); | ||||
ATF_TP_ADD_TC(tp, aio_socket_blocking_short_write); | ATF_TP_ADD_TC(tp, aio_socket_blocking_short_write); | ||||
Context not available. |