diff options
author | Zoltan Kiss <zoltan.kiss@linaro.org> | 2015-07-13 14:43:27 +0100 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2015-07-13 17:03:53 +0300 |
commit | f98df8bbdb991fa1257d42924c75847122549db6 (patch) | |
tree | 5fa445f7c922bd1fc318c1c9e3118ae54878b51b /test/validation | |
parent | 4cdf96d25cf2a1a66e89d5ad2cff72306651e4ad (diff) |
test: handle return value of odp_queue_enq_multi()
Unsent packet has to be released. If the event type is obvious from the
context, use directly the relevant release functions, otherwise
odp_event_free().
Wider error handling is attempted, but this patch can't fix all the flaws
in the many calling functions of odp_queue_enq()
Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'test/validation')
-rw-r--r-- | test/validation/pktio/pktio.c | 3 | ||||
-rw-r--r-- | test/validation/queue/queue.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c index 82ced5c30..d603b27f7 100644 --- a/test/validation/pktio/pktio.c +++ b/test/validation/pktio/pktio.c @@ -388,6 +388,9 @@ static void pktio_txrx_multi(pktio_info_t *pktio_a, pktio_info_t *pktio_b, ret = odp_queue_enq_multi(pktio_a->outq, tx_ev, num_pkts); if (ret != num_pkts) { CU_FAIL("failed to enqueue test packets"); + i = ret < 0 ? 0 : ret; + for ( ; i < num_pkts; i++) + odp_packet_free(tx_pkt[i]); return; } } diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c index f686b71f2..96dc93247 100644 --- a/test/validation/queue/queue.c +++ b/test/validation/queue/queue.c @@ -88,6 +88,10 @@ static void queue_test_sunnydays(void) */ ret = odp_queue_enq_multi(queue_id, enev, MAX_BUFFER_QUEUE); CU_ASSERT(MAX_BUFFER_QUEUE == ret); + i = ret < 0 ? 0 : ret; + for ( ; i < MAX_BUFFER_QUEUE; i++) + odp_event_free(enev[i]); + pev_tmp = deev; do { deq_ret = odp_queue_deq_multi(queue_id, pev_tmp, |