From: Chengwen Feng Date: Fri, 27 May 2022 03:40:53 +0000 (+0800) Subject: test/dma: check index when no DMA completed X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=f25265f004aa6e7c3cb8658c9e5edf3c73ee802f;p=dpdk.git test/dma: check index when no DMA completed If no DMA request is completed, the ring_idx of the last completed operation need returned by last_idx parameter. This patch adds testcase for it. Signed-off-by: Chengwen Feng Tested-by: Kevin Laatz --- diff --git a/app/test/test_dmadev.c b/app/test/test_dmadev.c index 2b097e0f47..a7651a486f 100644 --- a/app/test/test_dmadev.c +++ b/app/test/test_dmadev.c @@ -177,6 +177,7 @@ do_multi_copies(int16_t dev_id, uint16_t vchan, static int test_enqueue_copies(int16_t dev_id, uint16_t vchan) { + enum rte_dma_status_code status; unsigned int i; uint16_t id; @@ -215,6 +216,20 @@ test_enqueue_copies(int16_t dev_id, uint16_t vchan) ERR_RETURN("Error:incorrect job id received, %u [expected %u]\n", id, id_count); + /* check for completed and id when no job done */ + if (rte_dma_completed(dev_id, vchan, 1, &id, NULL) != 0) + ERR_RETURN("Error with rte_dma_completed when no job done\n"); + if (id != id_count) + ERR_RETURN("Error:incorrect job id received when no job done, %u [expected %u]\n", + id, id_count); + + /* check for completed_status and id when no job done */ + if (rte_dma_completed_status(dev_id, vchan, 1, &id, &status) != 0) + ERR_RETURN("Error with rte_dma_completed_status when no job done\n"); + if (id != id_count) + ERR_RETURN("Error:incorrect job id received when no job done, %u [expected %u]\n", + id, id_count); + rte_pktmbuf_free(src); rte_pktmbuf_free(dst);