<snip> > > > > On Wed, Jul 29, 2020 at 4:16 PM Feifei Wang <feifei.wa...@arm.com> > > wrote: > > > > Are we missing a check in the UT so that dequeued object is what > > > > had been enqueued? Yes, missing for single element enqueue/dequeue
> > > > > > > > > > > Dequeue is not necessary to change because the param defined in > > > rte_ring_dequeue is different from that in rte_ring_enqueue: > > > rte_ring_enqueue(struct rte_ring *r, void *obj): obj is a pointer > > > (object) to be added in the ring rte_ring_dequeue(struct rte_ring > > > *r, void **obj_p): obj_p is a pointer to a void * pointer > > > (object) that will be filled. > > > > That I get it. > > > > What I meant is that the test enqueues an object in a ring until it is > > full [1], then dequeues all the ring [2]. > > 1: https://git.dpdk.org/dpdk/tree/app/test/test_ring.c#n814 > > 2: https://git.dpdk.org/dpdk/tree/app/test/test_ring.c#n825 > > > > If the test had checked that dequeued objects are the right one, we > > would have caught it. > > > > But on the other hand, maybe another part of the functionnal ring > > tests already check this and we only need to fix this issue here. > > Sorry I just misunderstood you. > 1. Actually, for the APIs of test_ring.h, we lack a test to check whether the > value of object enqueued into the ring matches that dequeued from the ring. > But it is mainly used to measure the length of time from enqueue to dequeue. > So I'm not sure it is necessary. > 2. For the APIs of rte_ring.h, some tests can be used to test whether the > value > of object enqueued into the ring matches that dequeued from the ring. > For example: > $table_autotest > $mbuf_autotest The dequeued objects are checked against the enqueued objects for the bulk and burst APIs. Look at tests test_ring_burst_bulk_tests1..4. 'memcmp' is used to compare the enqueued objects against the dequeued ones. Similar comparison can be added in test_ring_basic_ex, test_ring_with_exact_size functions. > > > > > > -- > > David Marchand > > -- > Feifei >