[dm-devel] [PATCH 15/15] tests: add directio unit tests
Martin Wilck
mwilck at suse.com
Mon Jan 20 08:27:25 UTC 2020
On Thu, 2020-01-16 at 20:18 -0600, Benjamin Marzinski wrote:
> Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> ---
> 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
More information about the dm-devel
mailing list