LCOV - code coverage report
Current view: top level - spdk/test/common/lib - test_rdma.c (source / functions) Hit Total Coverage
Test: Combined Lines: 17 28 60.7 %
Date: 2024-07-14 04:14:37 Functions: 9 18 50.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 13 20 65.0 %

           Branch data     Line data    Source code
       1                 :            : /*   SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  *   Copyright (C) 2021 Intel Corporation. All rights reserved.
       3                 :            :  *   Copyright (c) 2020, 2021 Mellanox Technologies LTD. All rights reserved.
       4                 :            :  */
       5                 :            : 
       6                 :            : #include "spdk/stdinc.h"
       7                 :            : 
       8                 :            : #include "spdk_internal/rdma.h"
       9                 :            : #include "spdk_internal/mock.h"
      10                 :            : 
      11                 :            : #define RDMA_UT_LKEY 123
      12                 :            : #define RDMA_UT_RKEY 312
      13                 :            : 
      14                 :            : struct spdk_nvme_transport_opts g_spdk_nvme_transport_opts = {};
      15                 :            : struct spdk_rdma_qp g_spdk_rdma_qp = {};
      16                 :            : struct spdk_rdma_srq g_spdk_rdma_srq = {};
      17                 :          6 : DEFINE_STUB(spdk_rdma_qp_create, struct spdk_rdma_qp *, (struct rdma_cm_id *cm_id,
      18                 :            :                 struct spdk_rdma_qp_init_attr *qp_attr), &g_spdk_rdma_qp);
      19                 :          0 : DEFINE_STUB(spdk_rdma_qp_accept, int, (struct spdk_rdma_qp *spdk_rdma_qp,
      20                 :            :                                        struct rdma_conn_param *conn_param), 0);
      21                 :         12 : DEFINE_STUB(spdk_rdma_qp_complete_connect, int, (struct spdk_rdma_qp *spdk_rdma_qp), 0);
      22                 :          0 : DEFINE_STUB_V(spdk_rdma_qp_destroy, (struct spdk_rdma_qp *spdk_rdma_qp));
      23                 :          0 : DEFINE_STUB(spdk_rdma_qp_disconnect, int, (struct spdk_rdma_qp *spdk_rdma_qp), 0);
      24         [ -  + ]:         66 : DEFINE_STUB(spdk_rdma_qp_queue_send_wrs, bool, (struct spdk_rdma_qp *spdk_rdma_qp,
      25                 :            :                 struct ibv_send_wr *first), true);
      26                 :          6 : DEFINE_STUB(spdk_rdma_qp_flush_send_wrs, int, (struct spdk_rdma_qp *spdk_rdma_qp,
      27                 :            :                 struct ibv_send_wr **bad_wr), 0);
      28                 :          0 : DEFINE_STUB(spdk_rdma_srq_create, struct spdk_rdma_srq *,
      29                 :            :             (struct spdk_rdma_srq_init_attr *init_attr), &g_spdk_rdma_srq);
      30                 :          0 : DEFINE_STUB(spdk_rdma_srq_destroy, int, (struct spdk_rdma_srq *rdma_srq), 0);
      31         [ #  # ]:          0 : DEFINE_STUB(spdk_rdma_srq_queue_recv_wrs, bool, (struct spdk_rdma_srq *rdma_srq,
      32                 :            :                 struct ibv_recv_wr *first), true);
      33                 :          0 : DEFINE_STUB(spdk_rdma_srq_flush_recv_wrs, int, (struct spdk_rdma_srq *rdma_srq,
      34                 :            :                 struct ibv_recv_wr **bad_wr), 0);
      35         [ -  + ]:        810 : DEFINE_STUB(spdk_rdma_qp_queue_recv_wrs, bool, (struct spdk_rdma_qp *spdk_rdma_qp,
      36                 :            :                 struct ibv_recv_wr *first), true);
      37                 :          6 : DEFINE_STUB(spdk_rdma_qp_flush_recv_wrs, int, (struct spdk_rdma_qp *spdk_rdma_qp,
      38                 :            :                 struct ibv_recv_wr **bad_wr), 0);
      39                 :          0 : DEFINE_STUB(spdk_rdma_create_mem_map, struct spdk_rdma_mem_map *, (struct ibv_pd *pd,
      40                 :            :                 struct spdk_nvme_rdma_hooks *hooks, enum spdk_rdma_memory_map_role role), NULL)
      41                 :          6 : DEFINE_STUB_V(spdk_rdma_free_mem_map, (struct spdk_rdma_mem_map **map));
      42                 :            : 
      43                 :            : /* used to mock out having to split an SGL over a memory region */
      44                 :            : size_t g_mr_size;
      45                 :            : uint64_t g_mr_next_size;
      46                 :            : struct ibv_mr g_rdma_mr = {
      47                 :            :         .addr = (void *)0xC0FFEE,
      48                 :            :         .lkey = RDMA_UT_LKEY,
      49                 :            :         .rkey = RDMA_UT_RKEY
      50                 :            : };
      51                 :            : 
      52                 :            : DEFINE_RETURN_MOCK(spdk_rdma_get_translation, int);
      53                 :            : int
      54                 :       2952 : spdk_rdma_get_translation(struct spdk_rdma_mem_map *map, void *address,
      55                 :            :                           size_t length, struct spdk_rdma_memory_translation *translation)
      56                 :            : {
      57                 :       2952 :         translation->mr_or_key.mr = &g_rdma_mr;
      58                 :       2952 :         translation->translation_type = SPDK_RDMA_TRANSLATION_MR;
      59   [ +  +  +  + ]:       2952 :         HANDLE_RETURN_MOCK(spdk_rdma_get_translation);
      60                 :            : 
      61   [ +  +  +  - ]:       2946 :         if (g_mr_size && length > g_mr_size) {
      62         [ -  + ]:          6 :                 if (g_mr_next_size) {
      63                 :          0 :                         g_mr_size = g_mr_next_size;
      64                 :            :                 }
      65                 :          6 :                 return -ERANGE;
      66                 :            :         }
      67                 :            : 
      68                 :       2940 :         return 0;
      69                 :            : }
      70                 :            : 
      71                 :            : DEFINE_RETURN_MOCK(spdk_rdma_get_pd, struct ibv_pd *);
      72                 :            : struct ibv_pd *
      73                 :          6 : spdk_rdma_get_pd(struct ibv_context *context)
      74                 :            : {
      75   [ +  +  +  - ]:          6 :         HANDLE_RETURN_MOCK(spdk_rdma_get_pd);
      76                 :          0 :         return NULL;
      77                 :            : }
      78                 :            : 
      79                 :          0 : DEFINE_STUB_V(spdk_rdma_put_pd, (struct ibv_pd *pd));

Generated by: LCOV version 1.14