From b69356a85d4cd53bcd59f9a86a1373ca4f591cac Mon Sep 17 00:00:00 2001 From: Mao Jiang Date: Fri, 26 Mar 2021 14:24:44 +0800 Subject: [PATCH] test/nvme_ctrlr: cases for ctrlr adding and removing process Change-Id: Ie3a5d31e8d5da50935491804e31b2078e6893a1f Signed-off-by: Mao Jiang Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7077 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Aleksey Marchuk --- .../lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c index 3f1ef2d4b..cfa486fdc 100644 --- a/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c +++ b/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c @@ -2204,6 +2204,30 @@ test_alloc_io_qpair_fail(void) cleanup_qpairs(&ctrlr); } +static void +test_nvme_ctrlr_add_remove_process(void) +{ + struct spdk_nvme_ctrlr ctrlr = {}; + void *devhandle = (void *)0xDEADBEEF; + struct spdk_nvme_ctrlr_process *proc = NULL; + int rc; + + ctrlr.trid.trtype = SPDK_NVME_TRANSPORT_PCIE; + TAILQ_INIT(&ctrlr.active_procs); + + rc = nvme_ctrlr_add_process(&ctrlr, devhandle); + CU_ASSERT(rc == 0); + proc = TAILQ_FIRST(&ctrlr.active_procs); + SPDK_CU_ASSERT_FATAL(proc != NULL); + CU_ASSERT(proc->is_primary == true); + CU_ASSERT(proc->pid == getpid()); + CU_ASSERT(proc->devhandle == (void *)0xDEADBEEF); + CU_ASSERT(proc->ref == 0); + + nvme_ctrlr_remove_process(&ctrlr, proc); + CU_ASSERT(TAILQ_EMPTY(&ctrlr.active_procs)); +} + int main(int argc, char **argv) { CU_pSuite suite = NULL; @@ -2243,6 +2267,7 @@ int main(int argc, char **argv) CU_ADD_TEST(suite, test_nvme_ctrlr_init_set_num_queues); CU_ADD_TEST(suite, test_nvme_ctrlr_init_set_keep_alive_timeout); CU_ADD_TEST(suite, test_alloc_io_qpair_fail); + CU_ADD_TEST(suite, test_nvme_ctrlr_add_remove_process); CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests();