On Thu, 2020-01-16 at 20:18 -0600, Benjamin Marzinski wrote: > Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> > --- > tests/Makefile | 3 +- > tests/directio.c | 704 > +++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 706 insertions(+), 1 deletion(-) > create mode 100644 tests/directio.c > > diff --git a/tests/Makefile b/tests/Makefile > index a5cdf390..275fdd7d 100644 > + > +/* test async checkers pending and getting resovled by another > checker > + * as well as the loops for getting multiple events */ > +static void test_check_state_async(void **state) > +{ > + int i; > + struct checker c[257] = {0}; > + struct async_req *reqs[257]; > + int res[257] = {0}; > + > + do_libcheck_load(); > + for (i = 0; i < 257; i++) > + do_libcheck_init(&c[i], 4096, &reqs[i]); > + for (i = 0; i < 256; i++) { > + return_io_getevents_none(); > + do_check_state(&c[i], 0, 30, PATH_PENDING); > + assert_true(is_checker_running(&c[i])); > + } > + return_io_getevents_nr(&full_timeout, 256, reqs, res); > + return_io_getevents_nr(NULL, 1, &reqs[256], &res[256]); > + do_check_state(&c[256], 0, 30, PATH_UP); > + assert_false(is_checker_running(&c[256])); > + libcheck_free(&c[i]); Writing &c[256] here would be better readable. Apart from that, this is looking good. Some of the tests are implementation-specific, but that's fine if we stick with this implementation. I wish we could have some tests with real aio for this, but that would be difficult to set up right. Perhaps scsi_debug could be leveraged for it. Regards Martin -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel