Commit 2fb9cd31 authored by KanKuo's avatar KanKuo Committed by Tomasz Zawadzki
Browse files

UT/nvme_cuse: test for spdk_nvme_cuse_get_ctrlr_name



Signed-off-by: default avatarKanKuo <kuox.kan@intel.com>
Change-Id: I425d108d0c1bed6d8302e1fb47a785ddf85e3095
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10432


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
parent 62029730
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -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<sizeof(dev_name). Expect: Return -ENOSPC failed */
	name_size = 0;
	rc_ctrlr = spdk_nvme_cuse_get_ctrlr_name(&ctrlr, rt_name_ctrlr, &name_size);
	CU_ASSERT(rc_ctrlr == -ENOSPC);
	name_size = 0;
	rc_ns = spdk_nvme_cuse_get_ns_name(&ctrlr, NSID1, rt_name_ns, &name_size);
	CU_ASSERT(rc_ns == -ENOSPC);

	/* Test case: All parameters is conformed to function. Expect: Success */
	name_size = 128;
	rc_ctrlr = spdk_nvme_cuse_get_ctrlr_name(&ctrlr, rt_name_ctrlr, &name_size);
	CU_ASSERT(rc_ctrlr == 0);
	rc_ns = spdk_nvme_cuse_get_ns_name(&ctrlr, NSID1, rt_name_ns, &name_size);
	CU_ASSERT(rc_ns == 0);
	CU_ASSERT(strncmp(rt_name_ctrlr, name_ctrlr, sizeof(name_ctrlr)) == 0);
	CU_ASSERT(strncmp(rt_name_ns, name_ns_1, sizeof(name_ns_1)) == 0);
}

int
main(int argc, char **argv)
{
@@ -546,6 +611,7 @@ main(int argc, char **argv)
	CU_ADD_TEST(suite, test_cuse_nvme_submit_io);
	CU_ADD_TEST(suite, test_cuse_nvme_reset);
	CU_ADD_TEST(suite, test_nvme_cuse_stop);
	CU_ADD_TEST(suite, test_spdk_nvme_cuse_get_ctrlr_name);

	CU_basic_set_mode(CU_BRM_VERBOSE);
	CU_basic_run_tests();