X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=test%2Ftest%2Ftest_eventdev_sw.c;h=7da6c256e80cb8da66f0565e88c84cbabdfd59a6;hb=f1ae15bac8aaa75aeb4fa886fd4d74d34c373193;hp=c37e345b6353b45d27b3cdf35d40cb9492736eec;hpb=0e1eadd0d682725ba9cc1fb5c35ae3946eb104e5;p=dpdk.git diff --git a/test/test/test_eventdev_sw.c b/test/test/test_eventdev_sw.c index c37e345b63..7da6c256e8 100644 --- a/test/test/test_eventdev_sw.c +++ b/test/test/test_eventdev_sw.c @@ -548,6 +548,50 @@ test_single_directed_packet(struct test *t) return 0; } +static int +test_directed_forward_credits(struct test *t) +{ + uint32_t i; + int32_t err; + + if (init(t, 1, 1) < 0 || + create_ports(t, 1) < 0 || + create_directed_qids(t, 1, t->port) < 0) + return -1; + + if (rte_event_dev_start(evdev) < 0) { + printf("%d: Error with start call\n", __LINE__); + return -1; + } + + struct rte_event ev = { + .op = RTE_EVENT_OP_NEW, + .queue_id = 0, + }; + + for (i = 0; i < 1000; i++) { + err = rte_event_enqueue_burst(evdev, 0, &ev, 1); + if (err < 0) { + printf("%d: error failed to enqueue\n", __LINE__); + return -1; + } + rte_event_schedule(evdev); + + uint32_t deq_pkts; + deq_pkts = rte_event_dequeue_burst(evdev, 0, &ev, 1, 0); + if (deq_pkts != 1) { + printf("%d: error failed to deq\n", __LINE__); + return -1; + } + + /* re-write event to be a forward, and continue looping it */ + ev.op = RTE_EVENT_OP_FORWARD; + } + + cleanup(t); + return 0; +} + static int test_priority_directed(struct test *t) @@ -3040,13 +3084,18 @@ test_sw_eventdev(void) } } t->mbuf_pool = eventdev_func_mempool; - printf("*** Running Single Directed Packet test...\n"); ret = test_single_directed_packet(t); if (ret != 0) { printf("ERROR - Single Directed Packet test FAILED.\n"); return ret; } + printf("*** Running Directed Forward Credit test...\n"); + ret = test_directed_forward_credits(t); + if (ret != 0) { + printf("ERROR - Directed Forward Credit test FAILED.\n"); + return ret; + } printf("*** Running Single Load Balanced Packet test...\n"); ret = single_packet(t); if (ret != 0) {