test/nvme_rdma: RDMA requests allocation cases
Change-Id: I59b402ed7f204adc20a22406390224400e20ad51 Signed-off-by: Mao Jiang <maox.jiang@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5746 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
3289ab6d93
commit
7985c34ca0
@ -362,6 +362,63 @@ test_nvme_rdma_build_contig_inline_request(void)
|
|||||||
CU_ASSERT(rdma_req.send_sgl[1].lkey == RDMA_UT_LKEY);
|
CU_ASSERT(rdma_req.send_sgl[1].lkey == RDMA_UT_LKEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_nvme_rdma_alloc_reqs(void)
|
||||||
|
{
|
||||||
|
struct nvme_rdma_qpair rqpair = {0};
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
memset(&g_nvme_hooks, 0, sizeof(g_nvme_hooks));
|
||||||
|
|
||||||
|
/* Test case 1: zero entry. Expect: FAIL */
|
||||||
|
rqpair.num_entries = 0;
|
||||||
|
|
||||||
|
rc = nvme_rdma_alloc_reqs(&rqpair);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs == NULL);
|
||||||
|
SPDK_CU_ASSERT_FATAL(rc == -ENOMEM);
|
||||||
|
|
||||||
|
/* Test case 2: single entry. Expect: PASS */
|
||||||
|
memset(&rqpair, 0, sizeof(rqpair));
|
||||||
|
rqpair.num_entries = 1;
|
||||||
|
|
||||||
|
rc = nvme_rdma_alloc_reqs(&rqpair);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_sgl[0].addr
|
||||||
|
== (uint64_t)&rqpair.cmds[0]);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.wr_id
|
||||||
|
== (uint64_t)&rqpair.rdma_reqs[0].rdma_wr);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.next == NULL);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.opcode == IBV_WR_SEND);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.send_flags == IBV_SEND_SIGNALED);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.sg_list
|
||||||
|
== rqpair.rdma_reqs[0].send_sgl);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[0].send_wr.imm_data == 0);
|
||||||
|
spdk_free(rqpair.rdma_reqs);
|
||||||
|
spdk_free(rqpair.cmds);
|
||||||
|
|
||||||
|
/* Test case 3: multiple entries. Expect: PASS */
|
||||||
|
memset(&rqpair, 0, sizeof(rqpair));
|
||||||
|
rqpair.num_entries = 5;
|
||||||
|
|
||||||
|
rc = nvme_rdma_alloc_reqs(&rqpair);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_sgl[0].addr
|
||||||
|
== (uint64_t)&rqpair.cmds[i]);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.wr_id
|
||||||
|
== (uint64_t)&rqpair.rdma_reqs[i].rdma_wr);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.next == NULL);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.opcode == IBV_WR_SEND);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.send_flags
|
||||||
|
== IBV_SEND_SIGNALED);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.sg_list
|
||||||
|
== rqpair.rdma_reqs[i].send_sgl);
|
||||||
|
CU_ASSERT(rqpair.rdma_reqs[i].send_wr.imm_data == 0);
|
||||||
|
}
|
||||||
|
spdk_free(rqpair.rdma_reqs);
|
||||||
|
spdk_free(rqpair.cmds);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
CU_pSuite suite = NULL;
|
CU_pSuite suite = NULL;
|
||||||
@ -375,6 +432,7 @@ int main(int argc, char **argv)
|
|||||||
CU_ADD_TEST(suite, test_nvme_rdma_build_sgl_inline_request);
|
CU_ADD_TEST(suite, test_nvme_rdma_build_sgl_inline_request);
|
||||||
CU_ADD_TEST(suite, test_nvme_rdma_build_contig_request);
|
CU_ADD_TEST(suite, test_nvme_rdma_build_contig_request);
|
||||||
CU_ADD_TEST(suite, test_nvme_rdma_build_contig_inline_request);
|
CU_ADD_TEST(suite, test_nvme_rdma_build_contig_inline_request);
|
||||||
|
CU_ADD_TEST(suite, test_nvme_rdma_alloc_reqs);
|
||||||
|
|
||||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||||
CU_basic_run_tests();
|
CU_basic_run_tests();
|
||||||
|
Loading…
Reference in New Issue
Block a user