From 67c53a89df5cdf9c93b99345fd2bd3d1e6aa7dcc Mon Sep 17 00:00:00 2001 From: Eelco Chaudron Date: Tue, 19 Dec 2023 13:44:29 +0100 Subject: [PATCH] ci: Allow make check-dpdk to run the MFEX tests. Currently, if you use the python/test_requirements.txt file to set up your test environment the MFEX tests will be skipped due to the Scapy package not being included. This is fixed as part of this patch. The test case change will make sure the 'MFEX Configuration' test will run without the need for Scapy and its auto-generated tests. In addition, we exclude the traffic-related MFEX tests from running on GitHub actions due to limited resources. Signed-off-by: Eelco Chaudron Acked-by: Simon Horman --- .ci/dpdk-build.sh | 2 +- .github/workflows/build-and-test.yml | 2 +- python/test_requirements.txt | 1 + tests/system-dpdk.at | 6 +++--- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.ci/dpdk-build.sh b/.ci/dpdk-build.sh index aa83e4464..d4c178ee0 100755 --- a/.ci/dpdk-build.sh +++ b/.ci/dpdk-build.sh @@ -38,7 +38,7 @@ function build_dpdk() # any DPDK driver. # check-dpdk unit tests requires testpmd and some net/ driver. DPDK_OPTS="$DPDK_OPTS -Denable_apps=test-pmd" - enable_drivers="net/null,net/af_xdp,net/tap,net/virtio" + enable_drivers="net/null,net/af_xdp,net/tap,net/virtio,net/pcap" DPDK_OPTS="$DPDK_OPTS -Denable_drivers=$enable_drivers" # Install DPDK using prefix. diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index e9a2714fb..1e92a0e2b 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -5,7 +5,7 @@ on: [push, pull_request] jobs: build-dpdk: env: - dependencies: gcc libbpf-dev libnuma-dev ninja-build pkgconf + dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build pkgconf CC: gcc DPDK_GIT: https://dpdk.org/git/dpdk-stable DPDK_VER: 22.11.1 diff --git a/python/test_requirements.txt b/python/test_requirements.txt index c85ce41ad..5043c71e2 100644 --- a/python/test_requirements.txt +++ b/python/test_requirements.txt @@ -2,4 +2,5 @@ netaddr pyftpdlib pyparsing pytest +scapy tftpy diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index af092a200..d19062d98 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -819,6 +819,7 @@ dnl -------------------------------------------------------------------------- dnl MFEX Autovalidator AT_SETUP([OVS-DPDK - MFEX Autovalidator]) AT_KEYWORDS([dpdk]) +OVS_CHECK_GITHUB_ACTION() OVS_DPDK_PRE_CHECK() OVS_DPDK_START([--no-pci]) AT_CHECK([ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev]) @@ -852,6 +853,7 @@ dnl -------------------------------------------------------------------------- dnl MFEX Autovalidator Fuzzy AT_SETUP([OVS-DPDK - MFEX Autovalidator Fuzzy]) AT_KEYWORDS([dpdk]) +OVS_CHECK_GITHUB_ACTION() OVS_DPDK_PRE_CHECK() OVS_DPDK_START([--no-pci]) AT_CHECK([ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev]) @@ -886,13 +888,11 @@ dnl -------------------------------------------------------------------------- AT_SETUP([OVS-DPDK - MFEX Configuration]) AT_KEYWORDS([dpdk]) OVS_DPDK_PRE_CHECK() -AT_SKIP_IF([! $PYTHON3 -c "import scapy"], [], []) -AT_CHECK([$PYTHON3 $srcdir/mfex_fuzzy.py test_traffic.pcap 1], [], [stdout]) OVS_DPDK_START([--no-pci]) AT_CHECK([ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=0x1]) dnl Add userspace bridge and attach it to OVS AT_CHECK([ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev]) -AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk options:dpdk-devargs=net_pcap1,rx_pcap=test_traffic.pcap,infinite_rx=1], [], [stdout], [stderr]) +AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk options:dpdk-devargs=net_null0,no-rx=1], [], [stdout], [stderr]) AT_CHECK([ovs-vsctl show], [], [stdout]) AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set scalar 1], [2],