Commit a43f891e authored by Mao Jiang's avatar Mao Jiang Committed by Tomasz Zawadzki
Browse files

test/nvmf/vfio_user: cases for creating vfio user



Change-Id: Id477e1f1f278d34b6d025dafa34ddd9ed1cae1d1
Signed-off-by: default avatarMao Jiang <maox.jiang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8770


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 34c901e3
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -221,6 +221,42 @@ test_nvme_cmd_map_sgls(void)
	spdk_free(sgls);
}

static void
ut_transport_destroy_done_cb(void *cb_arg)
{
	int *done = cb_arg;
	*done = 1;
}

static void
test_nvmf_vfio_user_create_destroy(void)
{
	struct spdk_nvmf_transport *transport = NULL;
	struct nvmf_vfio_user_transport *vu_transport = NULL;
	struct nvmf_vfio_user_endpoint *endpoint = NULL;
	struct spdk_nvmf_transport_opts opts = {};
	int rc;
	int done;

	/* Initialize transport_specific NULL to avoid decoding json */
	opts.transport_specific = NULL;

	transport = nvmf_vfio_user_create(&opts);
	CU_ASSERT(transport != NULL);

	vu_transport = SPDK_CONTAINEROF(transport, struct nvmf_vfio_user_transport,
					transport);
	/* Allocate a endpoint for destroy */
	endpoint = calloc(1, sizeof(*endpoint));
	pthread_mutex_init(&endpoint->lock, NULL);
	TAILQ_INSERT_TAIL(&vu_transport->endpoints, endpoint, link);
	done = 0;

	rc = nvmf_vfio_user_destroy(transport, ut_transport_destroy_done_cb, &done);
	CU_ASSERT(rc == 0);
	CU_ASSERT(done == 1);
}

int main(int argc, char **argv)
{
	CU_pSuite	suite = NULL;
@@ -233,6 +269,7 @@ int main(int argc, char **argv)

	CU_ADD_TEST(suite, test_nvme_cmd_map_prps);
	CU_ADD_TEST(suite, test_nvme_cmd_map_sgls);
	CU_ADD_TEST(suite, test_nvmf_vfio_user_create_destroy);

	CU_basic_set_mode(CU_BRM_VERBOSE);
	CU_basic_run_tests();