On 8/22/2018 2:37 PM, Aaron Conole wrote:
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.

Overall I think this approach is fine, however the DPDK testing documentation should also be updated in this patch to flag that a NIC is no longer required.

Documentation/topics/testing.rst b/Documentation/topics/testing.rst

Ian

Signed-off-by: Aaron Conole <acon...@redhat.com>
---
  tests/system-dpdk-macros.at | 18 +++++++++++++++---
  tests/system-dpdk.at        | 16 ++++++++--------
  2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
index 0762ee055..2e5571fc4 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 3d21b0136..6901d19e6 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 --------------------------------------------------------------------------


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to