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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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_contig_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_run_tests();
|
||||
|
Loading…
x
Reference in New Issue
Block a user