Commit ef8dfe11 authored by Ben Walker's avatar Ben Walker Committed by Jim Harris
Browse files

test: Mock spdk_ring operations in test_env.c

parent 89f5d8b7
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
@@ -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)
{
+0 −3
Original line number Diff line number Diff line
@@ -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);