test: Mock spdk_ring operations in test_env.c

Change-Id: I1ef5cc1c58d536ccd6774c31cb633af494103e24
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/417361
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Ben Walker 2018-06-28 12:53:34 -07:00 committed by Jim Harris
parent 89f5d8b72e
commit ef8dfe1111
2 changed files with 73 additions and 3 deletions

View File

@ -36,6 +36,7 @@
#include "spdk_internal/mock.h"
#include "spdk/env.h"
#include "spdk/queue.h"
/*
* NOTE:
@ -224,6 +225,78 @@ spdk_mempool_count(const struct spdk_mempool *_mp)
}
}
struct spdk_ring_ele {
void *ele;
TAILQ_ENTRY(spdk_ring_ele) link;
};
struct spdk_ring {
TAILQ_HEAD(, spdk_ring_ele) elements;
};
struct spdk_ring *
spdk_ring_create(enum spdk_ring_type type, size_t count, int socket_id)
{
struct spdk_ring *ring;
ring = calloc(1, sizeof(*ring));
if (ring) {
TAILQ_INIT(&ring->elements);
}
return ring;
}
void
spdk_ring_free(struct spdk_ring *ring)
{
free(ring);
}
size_t
spdk_ring_enqueue(struct spdk_ring *ring, void **objs, size_t count)
{
struct spdk_ring_ele *ele;
size_t i;
for (i = 0; i < count; i++) {
ele = calloc(1, sizeof(*ele));
if (!ele) {
break;
}
ele->ele = objs[i];
TAILQ_INSERT_TAIL(&ring->elements, ele, link);
}
return i;
}
size_t
spdk_ring_dequeue(struct spdk_ring *ring, void **objs, size_t count)
{
struct spdk_ring_ele *ele, *tmp;
size_t i = 0;
if (count == 0) {
return 0;
}
TAILQ_FOREACH_SAFE(ele, &ring->elements, link, tmp) {
TAILQ_REMOVE(&ring->elements, ele, link);
objs[i] = ele->ele;
free(ele);
i++;
if (i >= count) {
break;
}
}
return i;
}
uint64_t ut_tsc = 0;
uint64_t spdk_get_ticks(void)
{

View File

@ -47,8 +47,6 @@ struct spdk_conf_section {
struct spdk_conf_item *item;
};
DEFINE_STUB(spdk_ring_enqueue, size_t, (struct spdk_ring *ring, void **objs, size_t count), 0);
DEFINE_STUB(spdk_ring_dequeue, size_t, (struct spdk_ring *ring, void **objs, size_t count), 0);
DEFINE_STUB(spdk_vhost_vq_get_desc, int, (struct spdk_vhost_dev *vdev,
struct spdk_vhost_virtqueue *vq, uint16_t req_idx, struct vring_desc **desc,
struct vring_desc **desc_table, uint32_t *desc_table_size), 0);
@ -66,7 +64,6 @@ DEFINE_STUB(spdk_vhost_vq_used_signal, int, (struct spdk_vhost_dev *vdev,
DEFINE_STUB_V(spdk_vhost_dev_used_signal, (struct spdk_vhost_dev *vdev));
DEFINE_STUB_V(spdk_vhost_dev_mem_register, (struct spdk_vhost_dev *vdev));
DEFINE_STUB_P(spdk_vhost_dev_find, struct spdk_vhost_dev, (const char *ctrlr_name), {0});
DEFINE_STUB_V(spdk_ring_free, (struct spdk_ring *ring));
DEFINE_STUB_P(spdk_conf_first_section, struct spdk_conf_section, (struct spdk_conf *cp), {0});
DEFINE_STUB(spdk_conf_section_match_prefix, bool, (const struct spdk_conf_section *sp,
const char *name_prefix), false);