unittest/nvmf_rdma: increase code coverage for nvme_rdma_qpair_process_cm_event
nvme_rdma_qpair_process_cm_event code comprehensive coverage. Signed-off-by: ChengqiangMeng <chengqiangx.meng@intel.com> Change-Id: I15a8aef83a8919124eee89111a0134fee8853fcf Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6689 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
22e5037e0c
commit
34429830bd
@ -54,6 +54,8 @@ DEFINE_STUB_V(nvme_qpair_resubmit_requests, (struct spdk_nvme_qpair *qpair, uint
|
||||
DEFINE_STUB(spdk_nvme_poll_group_process_completions, int64_t, (struct spdk_nvme_poll_group *group,
|
||||
uint32_t completions_per_qpair, spdk_nvme_disconnected_qpair_cb disconnected_qpair_cb), 0)
|
||||
|
||||
DEFINE_STUB(rdma_ack_cm_event, int, (struct rdma_cm_event *event), 0);
|
||||
|
||||
struct nvme_rdma_ut_bdev_io {
|
||||
struct iovec iovs[NVME_RDMA_MAX_SGL_DESCRIPTORS];
|
||||
int iovpos;
|
||||
@ -509,6 +511,94 @@ test_nvme_rdma_poller_create(void)
|
||||
nvme_rdma_poll_group_free_pollers(&group);
|
||||
}
|
||||
|
||||
static void
|
||||
test_nvme_rdma_qpair_process_cm_event(void)
|
||||
{
|
||||
struct nvme_rdma_qpair rqpair = {};
|
||||
struct rdma_cm_event event = {};
|
||||
struct spdk_nvmf_rdma_accept_private_data accept_data = {};
|
||||
int rc = 0;
|
||||
|
||||
/* case1: event == RDMA_CM_EVENT_ADDR_RESOLVED */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_ADDR_RESOLVED;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case2: event == RDMA_CM_EVENT_CONNECT_REQUEST */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_CONNECT_REQUEST;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case3: event == RDMA_CM_EVENT_CONNECT_ERROR */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_CONNECT_ERROR;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case4: event == RDMA_CM_EVENT_UNREACHABLE */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_UNREACHABLE;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case5: event == RDMA_CM_EVENT_CONNECT_RESPONSE */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_CONNECT_RESPONSE;
|
||||
event.param.conn.private_data = NULL;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == -1);
|
||||
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_CONNECT_RESPONSE;
|
||||
event.param.conn.private_data = &accept_data;
|
||||
accept_data.crqsize = 512;
|
||||
rqpair.num_entries = 1024;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(rqpair.num_entries == 512);
|
||||
|
||||
/* case6: event == RDMA_CM_EVENT_DISCONNECTED */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_DISCONNECTED;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(rqpair.qpair.transport_failure_reason == SPDK_NVME_QPAIR_FAILURE_REMOTE);
|
||||
|
||||
/* case7: event == RDMA_CM_EVENT_DEVICE_REMOVAL */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_DEVICE_REMOVAL;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(rqpair.qpair.transport_failure_reason == SPDK_NVME_QPAIR_FAILURE_LOCAL);
|
||||
|
||||
/* case8: event == RDMA_CM_EVENT_MULTICAST_JOIN */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_MULTICAST_JOIN;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case9: event == RDMA_CM_EVENT_ADDR_CHANGE */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_ADDR_CHANGE;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
CU_ASSERT(rqpair.qpair.transport_failure_reason == SPDK_NVME_QPAIR_FAILURE_LOCAL);
|
||||
|
||||
/* case10: event == RDMA_CM_EVENT_TIMEWAIT_EXIT */
|
||||
rqpair.evt = &event;
|
||||
event.event = RDMA_CM_EVENT_TIMEWAIT_EXIT;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
/* case11: default event == 0xFF */
|
||||
rqpair.evt = &event;
|
||||
event.event = 0xFF;
|
||||
rc = nvme_rdma_qpair_process_cm_event(&rqpair);
|
||||
CU_ASSERT(rc == 0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
CU_pSuite suite = NULL;
|
||||
@ -526,6 +616,7 @@ int main(int argc, char **argv)
|
||||
CU_ADD_TEST(suite, test_nvme_rdma_alloc_rsps);
|
||||
CU_ADD_TEST(suite, test_nvme_rdma_ctrlr_create_qpair);
|
||||
CU_ADD_TEST(suite, test_nvme_rdma_poller_create);
|
||||
CU_ADD_TEST(suite, test_nvme_rdma_qpair_process_cm_event);
|
||||
|
||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||
CU_basic_run_tests();
|
||||
|
Loading…
Reference in New Issue
Block a user