From b4f9bb444ad0b86452676d1459d95ebacf2a7881 Mon Sep 17 00:00:00 2001 From: KanKuo Date: Wed, 17 Aug 2022 17:13:20 +0800 Subject: [PATCH] UT/bdev/part.c:add the test of function spdk_bdev_part_free() Signed-off-by: KanKuo Change-Id: I99bdb67eea08e27276fca4c8659b71ced076573c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14074 Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Dong Yi --- test/unit/lib/bdev/part.c/part_ut.c | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/unit/lib/bdev/part.c/part_ut.c b/test/unit/lib/bdev/part.c/part_ut.c index 9c3107ef1..f20771858 100644 --- a/test/unit/lib/bdev/part.c/part_ut.c +++ b/test/unit/lib/bdev/part.c/part_ut.c @@ -130,6 +130,48 @@ part_test(void) 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 main(int argc, char **argv) { @@ -142,6 +184,7 @@ main(int argc, char **argv) suite = CU_add_suite("bdev_part", NULL, NULL); CU_ADD_TEST(suite, part_test); + CU_ADD_TEST(suite, part_free_test); allocate_threads(1); set_thread(0);