> > Add functional tests for zero copy APIs. Test enqueue/dequeue > functions are created using the zero copy APIs to fit into > the existing testing method. > > Signed-off-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > Reviewed-by: Dharmik Thakkar <dharmik.thak...@arm.com> > --- > app/test/test_ring.c | 196 +++++++++++++++++++++++++++++++++++++++++++ > app/test/test_ring.h | 42 ++++++++++ > 2 files changed, 238 insertions(+)
.... > diff --git a/app/test/test_ring.h b/app/test/test_ring.h > index 16697ee02..33c8a31fe 100644 > --- a/app/test/test_ring.h > +++ b/app/test/test_ring.h > @@ -53,6 +53,48 @@ test_ring_inc_ptr(void **obj, int esize, unsigned int n) > (n * esize / sizeof(uint32_t))); > } > > +static inline void > +test_ring_mem_copy(void *dst, void * const *src, int esize, unsigned int num) > +{ > + size_t temp_sz; > + > + temp_sz = num * sizeof(void *); > + if (esize != -1) > + temp_sz = esize * num; > + > + memcpy(dst, src, temp_sz); > +} > + > +/* Copy to the ring memory */ > +static inline void > +test_ring_copy_to(struct rte_ring_zc_data *zcd, void * const *src, int esize, > + unsigned int num) > +{ > + test_ring_mem_copy(zcd->ptr1, src, esize, zcd->n1); > + if (zcd->n1 != num) { > + if (esize == -1) > + src = src + zcd->n1; > + else > + src = (void * const *)(((const uint32_t *)src) + > + (zcd->n1 * esize / sizeof(uint32_t))); Why just not: src = test_ring_inc_ptr(src, esize, zcd->n1); ? Acked-by: Konstantin Ananyev <konstantin.anan...@intel.com> > + test_ring_mem_copy(zcd->ptr2, src, > + esize, num - zcd->n1); > + } > +} > + > +/* Copy from the ring memory */ > +static inline void > +test_ring_copy_from(struct rte_ring_zc_data *zcd, void *dst, int esize, > + unsigned int num) > +{ > + test_ring_mem_copy(dst, zcd->ptr1, esize, zcd->n1); > + > + if (zcd->n1 != num) { > + dst = test_ring_inc_ptr(dst, esize, zcd->n1); > + test_ring_mem_copy(dst, zcd->ptr2, esize, num - zcd->n1); > + } > +} > + > static __rte_always_inline unsigned int > test_ring_enqueue(struct rte_ring *r, void **obj, int esize, unsigned int n, > unsigned int api_type) > -- > 2.17.1