UT/bdev/part.c:add the test of function spdk_bdev_part_free()

Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: I99bdb67eea08e27276fca4c8659b71ced076573c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14074
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
This commit is contained in:
KanKuo 2022-08-17 17:13:20 +08:00 committed by Tomasz Zawadzki
parent 18c8b52afa
commit b4f9bb444a

View File

@ -130,6 +130,48 @@ part_test(void)
poll_threads(); poll_threads();
} }
static void
part_free_test(void)
{
struct spdk_bdev_part_base *base = NULL;
struct spdk_bdev_part *part;
struct spdk_bdev bdev_base = {};
SPDK_BDEV_PART_TAILQ tailq = TAILQ_HEAD_INITIALIZER(tailq);
int rc;
bdev_base.name = "base";
bdev_base.fn_table = &base_fn_table;
bdev_base.module = &bdev_ut_if;
rc = spdk_bdev_register(&bdev_base);
CU_ASSERT(rc == 0);
poll_threads();
rc = spdk_bdev_part_base_construct_ext("base", NULL, &vbdev_ut_if,
&part_fn_table, &tailq, NULL,
NULL, 0, NULL, NULL, &base);
CU_ASSERT(rc == 0);
CU_ASSERT(TAILQ_EMPTY(&tailq));
SPDK_CU_ASSERT_FATAL(base != NULL);
part = calloc(1, sizeof(*part));
SPDK_CU_ASSERT_FATAL(part != NULL);
rc = spdk_bdev_part_construct(part, base, "test", 0, 100, "test");
SPDK_CU_ASSERT_FATAL(rc == 0);
poll_threads();
CU_ASSERT(!TAILQ_EMPTY(&tailq));
spdk_bdev_unregister(&part->internal.bdev, NULL, NULL);
poll_threads();
rc = spdk_bdev_part_free(part);
CU_ASSERT(rc == 1);
poll_threads();
CU_ASSERT(TAILQ_EMPTY(&tailq));
spdk_bdev_unregister(&bdev_base, NULL, NULL);
poll_threads();
}
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
@ -142,6 +184,7 @@ main(int argc, char **argv)
suite = CU_add_suite("bdev_part", NULL, NULL); suite = CU_add_suite("bdev_part", NULL, NULL);
CU_ADD_TEST(suite, part_test); CU_ADD_TEST(suite, part_test);
CU_ADD_TEST(suite, part_free_test);
allocate_threads(1); allocate_threads(1);
set_thread(0); set_thread(0);