diff mbox series

[ovs-dev,v4,1/6] system-dpdk: Update test suite for non-phy testing

Message ID 20180831155531.4327-2-bsankara@redhat.com
State Superseded
Delegated to: Ian Stokes
Headers show
Series Add support to connect two namespaces | expand

Commit Message

Bala Sankaran Aug. 31, 2018, 3:55 p.m. UTC
From: Aaron Conole <aconole@redhat.com>

This allows a system that doesn't have a dedicated DPDK nic to
execute some DPDK tests.  In this fashion, tests that operate on
virtual ports (such as dpdkvhostuserclient) can be executed in
a wider set of environments.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Co-authored-by: Bala Sankaran <bsankara@redhat.com>
Signed-off-by: Bala Sankaran <bsankara@redhat.com>
---
 Documentation/topics/testing.rst |  8 +++++---
 tests/system-dpdk-macros.at      | 18 +++++++++++++++---
 tests/system-dpdk.at             | 16 ++++++++--------
 3 files changed, 28 insertions(+), 14 deletions(-)
diff mbox series

Patch

diff --git a/Documentation/topics/testing.rst b/Documentation/topics/testing.rst
index 9a6deb4..0c194ca 100644
--- a/Documentation/topics/testing.rst
+++ b/Documentation/topics/testing.rst
@@ -314,9 +314,11 @@  To see a list of all the available tests, run::
 
     # make check-dpdk TESTSUITEFLAGS=--list
 
-These tests require a `DPDK supported NIC`_ and proper DPDK variables
-(``DPDK_DIR`` and ``DPDK_BUILD``). Moreover you need to have root privileges,
-load the required modules and bind the NIC to the DPDK-compatible driver.
+These tests support a `DPDK supported NIC`_. The tests operate on a wider set of
+environments, for instance, when a virtual port is used.
+They do require proper DPDK variables (``DPDK_DIR`` and ``DPDK_BUILD``).
+Moreover you need to have root privileges to load the required modules and to bind
+the NIC to the DPDK-compatible driver.
 
 .. _DPDK supported NIC: http://dpdk.org/doc/nics
 
diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
index 0762ee0..2e5571f 100644
--- a/tests/system-dpdk-macros.at
+++ b/tests/system-dpdk-macros.at
@@ -2,7 +2,6 @@ 
 #
 # Check prerequisites for DPDK tests. Following settings are checked:
 #  - Hugepages
-#  - UIO driver
 #
 m4_define([OVS_DPDK_PRE_CHECK],
   [dnl Check Hugepages
@@ -11,13 +10,26 @@  m4_define([OVS_DPDK_PRE_CHECK],
    AT_CHECK([mount], [], [stdout])
    AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], [])
 
+])
+
+
+# OVS_DPDK_PRE_PHY_SKIP()
+#
+# Skip any phy related tests if the PHY variable is not set.
+# This is done by checking for a bound driver.
+#
+m4_define([OVS_DPDK_PRE_PHY_SKIP],
+  [dnl Perform the precheck
+   OVS_DPDK_PRE_CHECK()
+
    dnl Check if VFIO or UIO driver is loaded
-   AT_CHECK([lsmod | grep -E "igb_uio|vfio"], [], [stdout])
+   AT_SKIP_IF([ ! (lsmod | grep -E "igb_uio|vfio") ], [], [stdout])
 
    dnl Find PCI address candidate, skip if there is no DPDK-compatible NIC
    AT_CHECK([$DPDK_DIR/usertools/dpdk-devbind.py -s | head -n +4 | tail -1], [], [stdout])
    AT_CHECK([cat stdout | cut -d" " -s -f1 > PCI_ADDR])
-   AT_CHECK([test -s PCI_ADDR || exit 77])
+   AT_SKIP_IF([ ! test -s PCI_ADDR ])
+
 ])
 
 
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index 3d21b01..6901d19 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -4,14 +4,14 @@  dnl --------------------------------------------------------------------------
 dnl Check if EAL init is successfull
 AT_SETUP([OVS-DPDK datapath - EAL init])
 AT_KEYWORDS([dpdk])
-dnl OVS_DPDK_PRE_CHECK()
+OVS_DPDK_PRE_CHECK()
 OVS_DPDK_START()
 AT_CHECK([grep "DPDK Enabled - initializing..." ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "EAL" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "DPDK Enabled - initialized" ovs-vswitchd.log], [], [stdout])
-OVS_VSWITCHD_STOP("/Global register is changed during/d
-/EAL: No free hugepages reported in hugepages-1048576kB/d
-")
+OVS_VSWITCHD_STOP(["/Global register is changed during/d
+/EAL:   Invalid NUMA socket, default to 0/d
+/EAL: No free hugepages reported in hugepages-1048576kB/d"])
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
 
@@ -22,7 +22,7 @@  dnl Add standard DPDK PHY port
 AT_SETUP([OVS-DPDK datapath - add standard DPDK port])
 AT_KEYWORDS([dpdk])
 
-OVS_DPDK_PRE_CHECK()
+OVS_DPDK_PRE_PHY_SKIP()
 OVS_DPDK_START()
 
 dnl Add userspace bridge and attach it to OVS
@@ -63,11 +63,11 @@  AT_CHECK([grep "VHOST_CONFIG: /tmp/dpdkvhostclient0: reconnecting..." ovs-vswitc
 
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
-OVS_VSWITCHD_STOP("/does not exist. The Open vSwitch kernel module is probably not loaded./d
+OVS_VSWITCHD_STOP(["/does not exist. The Open vSwitch kernel module is probably not loaded./d
 /Failed to enable flow control/d
 /failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d
 /Global register is changed during/d
-/EAL: No free hugepages reported in hugepages-1048576kB/d
-")
+/EAL:   Invalid NUMA socket, default to 0/d
+/EAL: No free hugepages reported in hugepages-1048576kB/d"])
 AT_CLEANUP
 dnl --------------------------------------------------------------------------