[ovs-dev,v5,2/6] system-dpdk: Skip all tests if there are no hugepages

Message ID 20180914141202.5334-3-bsankara@redhat.com
State Accepted
Delegated to: Ian Stokes
Headers show
Series
  • Add support to connect two namespaces
Related show

Commit Message

Bala Sankaran Sept. 14, 2018, 2:11 p.m.
A failure is quite harsh in this scenario.  It's better to
simply skip all the tests and let the user look at the logs
to understand the missing hugepages.

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

Patch

diff --git a/Documentation/topics/testing.rst b/Documentation/topics/testing.rst
index 0c194ca14..a8892e1c1 100644
--- a/Documentation/topics/testing.rst
+++ b/Documentation/topics/testing.rst
@@ -322,6 +322,12 @@  the NIC to the DPDK-compatible driver.
 
 .. _DPDK supported NIC: http://dpdk.org/doc/nics
 
+All tests are skipped if no hugepages are configured. User must look into the DPDK
+manual to figure out how to `Configure hugepages`_.
+The phy test will skip if no compatible physical device is available.
+
+.. _Configure hugepages: http://doc.dpdk.org/guides/linux_gsg/sys_reqs.html
+
 Kernel datapath
 '''''''''''''''
 
diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
index 2e5571fc4..f772a1945 100644
--- a/tests/system-dpdk-macros.at
+++ b/tests/system-dpdk-macros.at
@@ -6,7 +6,7 @@ 
 m4_define([OVS_DPDK_PRE_CHECK],
   [dnl Check Hugepages
    AT_CHECK([cat /proc/meminfo], [], [stdout])
-   AT_CHECK([grep HugePages_ stdout], [], [stdout])
+   AT_SKIP_IF([egrep 'HugePages_Free: *0' stdout], [], [stdout])
    AT_CHECK([mount], [], [stdout])
    AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], [])
 
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index 6901d19e6..c1c908411 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -47,7 +47,7 @@  dnl --------------------------------------------------------------------------
 dnl Add vhost-user-client port
 AT_SETUP([OVS-DPDK datapath - add vhost-user-client port])
 AT_KEYWORDS([dpdk])
-
+OVS_DPDK_PRE_CHECK()
 OVS_DPDK_START()
 
 dnl Add userspace bridge and attach it to OVS