From a690da8df4ae7e6481b50d474c14e5dddc8d3dc9 Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Tue, 15 Mar 2016 13:25:29 +0100 Subject: [PATCH] app/test: fix check for virtual ring device This test expects that a vdev is instanciated on the command line. If it's not the case, just skip this part. Fixes: 4ea3801b3222 ("app/test: fix ring unit test") Signed-off-by: Olivier Matz --- app/test/test_pmd_ring.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/test/test_pmd_ring.c b/app/test/test_pmd_ring.c index 5568759386..34fea09c54 100644 --- a/app/test/test_pmd_ring.c +++ b/app/test/test_pmd_ring.c @@ -425,7 +425,7 @@ static int test_pmd_ring(void) { struct rte_ring *rxtx[NUM_RINGS]; - int cmdl_port0 = 0; + int port, cmdl_port0 = -1; uint8_t nb_ports; nb_ports = rte_eth_dev_count(); @@ -501,8 +501,18 @@ test_pmd_ring(void) if (test_pmd_ring_pair_create_attach(rxtx_portd, rxtx_porte) < 0) return -1; - if (nb_ports > 0) { - /* test port 0 created with the --vdev=eth_ring0 command line option */ + /* find a port created with the --vdev=eth_ring0 command line option */ + for (port = 0; port < nb_ports; port++) { + struct rte_eth_dev_info dev_info; + + rte_eth_dev_info_get(port, &dev_info); + if (!strcmp(dev_info.driver_name, "Rings PMD")) { + printf("found a command line ring port=%d\n", port); + cmdl_port0 = port; + break; + } + } + if (cmdl_port0 != -1) { if (test_ethdev_configure_port(cmdl_port0) < 0) return -1; if (test_send_basic_packets_port(cmdl_port0) < 0) -- 2.20.1