From 05580566e802a71f34488e7782a6861379bb00a7 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 2 May 2023 21:08:02 +0900 Subject: [PATCH] ut/bdev: Configure bdev size and iobuf for all test cases The following patches will change spdk_bdev_register() to access iobuf and bdev's blocklen and blockcnt. Hence, we have to configure these correctly for alltest cases. Move ut_init/fini_bdev() up in a file. Add missing ut_init/fini_bdev() and allocate/free_bdev() calls for some test cases. Add blockcnt and blocklen to allocate_vbdev(). Signed-off-by: Shuhei Matsumoto Change-Id: Iccbb1cfe4dcdc4496f15304b5362d76d5296607f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17908 Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- test/unit/lib/bdev/bdev.c/bdev_ut.c | 111 +++++++++++++++------------- 1 file changed, 61 insertions(+), 50 deletions(-) diff --git a/test/unit/lib/bdev/bdev.c/bdev_ut.c b/test/unit/lib/bdev/bdev.c/bdev_ut.c index 56f1af2c8..62ce7f162 100644 --- a/test/unit/lib/bdev/bdev.c/bdev_ut.c +++ b/test/unit/lib/bdev/bdev.c/bdev_ut.c @@ -536,6 +536,40 @@ vbdev_ut_examine_disk(struct spdk_bdev *bdev) spdk_bdev_module_examine_done(&vbdev_ut_if); } +static void +bdev_init_cb(void *arg, int rc) +{ + CU_ASSERT(rc == 0); +} + +static void +bdev_fini_cb(void *arg) +{ +} + +static void +ut_init_bdev(struct spdk_bdev_opts *opts) +{ + int rc; + + if (opts != NULL) { + rc = spdk_bdev_set_opts(opts); + CU_ASSERT(rc == 0); + } + rc = spdk_iobuf_initialize(); + CU_ASSERT(rc == 0); + spdk_bdev_initialize(bdev_init_cb, NULL); + poll_threads(); +} + +static void +ut_fini_bdev(void) +{ + spdk_bdev_finish(bdev_fini_cb, NULL); + spdk_iobuf_finish(bdev_fini_cb, NULL); + poll_threads(); +} + static struct spdk_bdev * allocate_bdev_ctx(char *name, void *ctx) { @@ -579,6 +613,8 @@ allocate_vbdev(char *name) bdev->name = name; bdev->fn_table = &fn_table; bdev->module = &vbdev_ut_if; + bdev->blockcnt = 1024; + bdev->blocklen = 512; rc = spdk_bdev_register(bdev); poll_threads(); @@ -701,6 +737,8 @@ open_write_test(void) struct spdk_bdev_desc *desc[9] = {}; int rc; + ut_init_bdev(NULL); + /* * Create a tree of bdevs to test various open w/ write cases. * @@ -826,6 +864,8 @@ open_write_test(void) free_bdev(bdev[1]); free_bdev(bdev[2]); free_bdev(bdev[3]); + + ut_fini_bdev(); } static void @@ -836,6 +876,8 @@ claim_test(void) int rc; uint32_t count; + ut_init_bdev(NULL); + /* * A vbdev that uses a read-only bdev may need it to remain read-only. * To do so, it opens the bdev read-only, then claims it without @@ -878,6 +920,7 @@ claim_test(void) spdk_bdev_close(desc); free_bdev(bdev); + ut_fini_bdev(); } static void @@ -919,46 +962,44 @@ bytes_to_blocks_test(void) static void num_blocks_test(void) { - struct spdk_bdev bdev; + struct spdk_bdev *bdev; struct spdk_bdev_desc *desc = NULL; int rc; - memset(&bdev, 0, sizeof(bdev)); - bdev.name = "num_blocks"; - bdev.fn_table = &fn_table; - bdev.module = &bdev_ut_if; - spdk_bdev_register(&bdev); - poll_threads(); - spdk_bdev_notify_blockcnt_change(&bdev, 50); + ut_init_bdev(NULL); + bdev = allocate_bdev("num_blocks"); + + spdk_bdev_notify_blockcnt_change(bdev, 50); /* Growing block number */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 70) == 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 70) == 0); /* Shrinking block number */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 30) == 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 30) == 0); rc = spdk_bdev_open_ext("num_blocks", false, bdev_open_cb1, &desc, &desc); CU_ASSERT(rc == 0); SPDK_CU_ASSERT_FATAL(desc != NULL); - CU_ASSERT(&bdev == spdk_bdev_desc_get_bdev(desc)); + CU_ASSERT(bdev == spdk_bdev_desc_get_bdev(desc)); /* Growing block number */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 80) == 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 80) == 0); /* Shrinking block number */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 20) != 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 20) != 0); g_event_type1 = 0xFF; /* Growing block number */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 90) == 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 90) == 0); poll_threads(); CU_ASSERT_EQUAL(g_event_type1, SPDK_BDEV_EVENT_RESIZE); g_event_type1 = 0xFF; /* Growing block number and closing */ - CU_ASSERT(spdk_bdev_notify_blockcnt_change(&bdev, 100) == 0); + CU_ASSERT(spdk_bdev_notify_blockcnt_change(bdev, 100) == 0); spdk_bdev_close(desc); - spdk_bdev_unregister(&bdev, NULL, NULL); + free_bdev(bdev); + ut_fini_bdev(); poll_threads(); @@ -1002,6 +1043,8 @@ alias_add_del_test(void) struct spdk_bdev *bdev[3]; int rc; + ut_init_bdev(NULL); + /* Creating and registering bdevs */ bdev[0] = allocate_bdev("bdev0"); SPDK_CU_ASSERT_FATAL(bdev[0] != 0); @@ -1082,6 +1125,8 @@ alias_add_del_test(void) free(bdev[0]); free(bdev[1]); free(bdev[2]); + + ut_fini_bdev(); } static void @@ -1098,40 +1143,6 @@ io_done(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) } } -static void -bdev_init_cb(void *arg, int rc) -{ - CU_ASSERT(rc == 0); -} - -static void -bdev_fini_cb(void *arg) -{ -} - -static void -ut_init_bdev(struct spdk_bdev_opts *opts) -{ - int rc; - - if (opts != NULL) { - rc = spdk_bdev_set_opts(opts); - CU_ASSERT(rc == 0); - } - rc = spdk_iobuf_initialize(); - CU_ASSERT(rc == 0); - spdk_bdev_initialize(bdev_init_cb, NULL); - poll_threads(); -} - -static void -ut_fini_bdev(void) -{ - spdk_bdev_finish(bdev_fini_cb, NULL); - spdk_iobuf_finish(bdev_fini_cb, NULL); - poll_threads(); -} - struct bdev_ut_io_wait_entry { struct spdk_bdev_io_wait_entry entry; struct spdk_io_channel *io_ch;