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:
parent
89f5d8b72e
commit
ef8dfe1111
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user