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 <smatsumoto@nvidia.com> Change-Id: Iccbb1cfe4dcdc4496f15304b5362d76d5296607f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17908 Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
5bced73616
commit
cec70a601f
@ -536,6 +536,40 @@ vbdev_ut_examine_disk(struct spdk_bdev *bdev)
|
|||||||
spdk_bdev_module_examine_done(&vbdev_ut_if);
|
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 *
|
static struct spdk_bdev *
|
||||||
allocate_bdev_ctx(char *name, void *ctx)
|
allocate_bdev_ctx(char *name, void *ctx)
|
||||||
{
|
{
|
||||||
@ -579,6 +613,8 @@ allocate_vbdev(char *name)
|
|||||||
bdev->name = name;
|
bdev->name = name;
|
||||||
bdev->fn_table = &fn_table;
|
bdev->fn_table = &fn_table;
|
||||||
bdev->module = &vbdev_ut_if;
|
bdev->module = &vbdev_ut_if;
|
||||||
|
bdev->blockcnt = 1024;
|
||||||
|
bdev->blocklen = 512;
|
||||||
|
|
||||||
rc = spdk_bdev_register(bdev);
|
rc = spdk_bdev_register(bdev);
|
||||||
poll_threads();
|
poll_threads();
|
||||||
@ -701,6 +737,8 @@ open_write_test(void)
|
|||||||
struct spdk_bdev_desc *desc[9] = {};
|
struct spdk_bdev_desc *desc[9] = {};
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
ut_init_bdev(NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a tree of bdevs to test various open w/ write cases.
|
* 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[1]);
|
||||||
free_bdev(bdev[2]);
|
free_bdev(bdev[2]);
|
||||||
free_bdev(bdev[3]);
|
free_bdev(bdev[3]);
|
||||||
|
|
||||||
|
ut_fini_bdev();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -836,6 +876,8 @@ claim_test(void)
|
|||||||
int rc;
|
int rc;
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
|
|
||||||
|
ut_init_bdev(NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A vbdev that uses a read-only bdev may need it to remain read-only.
|
* 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
|
* To do so, it opens the bdev read-only, then claims it without
|
||||||
@ -878,6 +920,7 @@ claim_test(void)
|
|||||||
|
|
||||||
spdk_bdev_close(desc);
|
spdk_bdev_close(desc);
|
||||||
free_bdev(bdev);
|
free_bdev(bdev);
|
||||||
|
ut_fini_bdev();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -919,46 +962,44 @@ bytes_to_blocks_test(void)
|
|||||||
static void
|
static void
|
||||||
num_blocks_test(void)
|
num_blocks_test(void)
|
||||||
{
|
{
|
||||||
struct spdk_bdev bdev;
|
struct spdk_bdev *bdev;
|
||||||
struct spdk_bdev_desc *desc = NULL;
|
struct spdk_bdev_desc *desc = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
memset(&bdev, 0, sizeof(bdev));
|
ut_init_bdev(NULL);
|
||||||
bdev.name = "num_blocks";
|
bdev = allocate_bdev("num_blocks");
|
||||||
bdev.fn_table = &fn_table;
|
|
||||||
bdev.module = &bdev_ut_if;
|
spdk_bdev_notify_blockcnt_change(bdev, 50);
|
||||||
spdk_bdev_register(&bdev);
|
|
||||||
poll_threads();
|
|
||||||
spdk_bdev_notify_blockcnt_change(&bdev, 50);
|
|
||||||
|
|
||||||
/* Growing block number */
|
/* 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 */
|
/* 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);
|
rc = spdk_bdev_open_ext("num_blocks", false, bdev_open_cb1, &desc, &desc);
|
||||||
CU_ASSERT(rc == 0);
|
CU_ASSERT(rc == 0);
|
||||||
SPDK_CU_ASSERT_FATAL(desc != NULL);
|
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 */
|
/* 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 */
|
/* 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;
|
g_event_type1 = 0xFF;
|
||||||
/* Growing block number */
|
/* 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();
|
poll_threads();
|
||||||
CU_ASSERT_EQUAL(g_event_type1, SPDK_BDEV_EVENT_RESIZE);
|
CU_ASSERT_EQUAL(g_event_type1, SPDK_BDEV_EVENT_RESIZE);
|
||||||
|
|
||||||
g_event_type1 = 0xFF;
|
g_event_type1 = 0xFF;
|
||||||
/* Growing block number and closing */
|
/* 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_close(desc);
|
||||||
spdk_bdev_unregister(&bdev, NULL, NULL);
|
free_bdev(bdev);
|
||||||
|
ut_fini_bdev();
|
||||||
|
|
||||||
poll_threads();
|
poll_threads();
|
||||||
|
|
||||||
@ -1002,6 +1043,8 @@ alias_add_del_test(void)
|
|||||||
struct spdk_bdev *bdev[3];
|
struct spdk_bdev *bdev[3];
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
ut_init_bdev(NULL);
|
||||||
|
|
||||||
/* Creating and registering bdevs */
|
/* Creating and registering bdevs */
|
||||||
bdev[0] = allocate_bdev("bdev0");
|
bdev[0] = allocate_bdev("bdev0");
|
||||||
SPDK_CU_ASSERT_FATAL(bdev[0] != 0);
|
SPDK_CU_ASSERT_FATAL(bdev[0] != 0);
|
||||||
@ -1082,6 +1125,8 @@ alias_add_del_test(void)
|
|||||||
free(bdev[0]);
|
free(bdev[0]);
|
||||||
free(bdev[1]);
|
free(bdev[1]);
|
||||||
free(bdev[2]);
|
free(bdev[2]);
|
||||||
|
|
||||||
|
ut_fini_bdev();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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 bdev_ut_io_wait_entry {
|
||||||
struct spdk_bdev_io_wait_entry entry;
|
struct spdk_bdev_io_wait_entry entry;
|
||||||
struct spdk_io_channel *io_ch;
|
struct spdk_io_channel *io_ch;
|
||||||
|
Loading…
Reference in New Issue
Block a user