diff --git a/test/unit/lib/nvme/nvme_cuse.c/nvme_cuse_ut.c b/test/unit/lib/nvme/nvme_cuse.c/nvme_cuse_ut.c index 52eccbfca..08a7e0324 100644 --- a/test/unit/lib/nvme/nvme_cuse.c/nvme_cuse_ut.c +++ b/test/unit/lib/nvme/nvme_cuse.c/nvme_cuse_ut.c @@ -528,6 +528,71 @@ test_nvme_cuse_stop(void) CU_ASSERT(TAILQ_EMPTY(&g_ctrlr_ctx_head)); } +static void +test_spdk_nvme_cuse_get_ctrlr_name(void) +{ + int rc_ctrlr = 0; + int rc_ns = 0; + uint32_t nsid = 0; + const uint32_t NSID1 = 12; + const uint32_t NSID2 = 22; + size_t name_size = 0; + + char name_ctrlr[128] = "unit_test_ctrlr_dev_name"; + char name_ns_1[128] = "unit_test_ns_dev_name_1"; + char name_ns_2[128] = "unit_test_ns_dev_name_2"; + + char rt_name_ctrlr[128]; + char rt_name_ns[128]; + + struct spdk_nvme_ctrlr ctrlr = {}; + struct cuse_device ctrlr_device = {}; + struct cuse_device ns_dev1 = {}; + struct cuse_device ns_dev2 = {}; + + ctrlr_device.ctrlr = &ctrlr; + memcpy(ctrlr_device.dev_name, name_ctrlr, sizeof(ctrlr_device.dev_name)); + + TAILQ_INIT(&ctrlr_device.ns_devices); + ns_dev1.nsid = NSID1; + ns_dev2.nsid = NSID2; + + memcpy(ns_dev1.dev_name, name_ns_1, sizeof(ns_dev1.dev_name)); + memcpy(ns_dev2.dev_name, name_ns_2, sizeof(ns_dev2.dev_name)); + TAILQ_INIT(&g_ctrlr_ctx_head); + TAILQ_INIT(&ctrlr_device.ns_devices); + TAILQ_INSERT_TAIL(&g_ctrlr_ctx_head, &ctrlr_device, tailq); + TAILQ_INSERT_TAIL(&ctrlr_device.ns_devices, &ns_dev1, tailq); + TAILQ_INSERT_TAIL(&ctrlr_device.ns_devices, &ns_dev2, tailq); + + /* Test case: Give a null spdk_nvme_ctrlr to find cuse_device. Expect: Return -ENODEV failed */ + rc_ctrlr = spdk_nvme_cuse_get_ctrlr_name(NULL, rt_name_ctrlr, &name_size); + CU_ASSERT(rc_ctrlr == -ENODEV); + rc_ns = spdk_nvme_cuse_get_ns_name(NULL, nsid, rt_name_ctrlr, &name_size); + CU_ASSERT(rc_ns == -ENODEV); + + /* Test case: Give a wrong nsid to find cuse_device. Expect: Return -ENODEV failed */ + rc_ns = spdk_nvme_cuse_get_ns_name(&ctrlr, nsid, rt_name_ns, &name_size); + CU_ASSERT(rc_ns == -ENODEV); + + /* Test case: Let parameter size