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 <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 -------------------------------------------------------------------------- -- 2.14.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev