Directly running just the failing test (of the 6 I picked the MTU upper bound that I analyzed above) works like this:
$ apt install ubuntu-dev-tools conntrack curl devscripts dpdk-dev ethtool equivs net-tools ncat python3-pyftpdlib tcpdump wget openvswitch-common openvswitch-doc openvswitch-ipsec openvswitch-pki openvswitch-source openvswitch-switch openvswitch-switch-dpdk openvswitch-test openvswitch-testcontroller openvswitch-vtep python3-openvswitch
# special needs of the OVS tests
$ apt-get remove --yes --purge netcat-openbsd
$ ln -sf /usr/bin/ncat /usr/bin/nc
# Get the source and build it for the tests
$ pull-lp-source openvswitch
$ cd openvswitch-3.3.0/
$ mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" --remove debian/control
$ ./debian/rules build
# Hugepages for the tests
$ echo "NR_2M_PAGES=784" >> /etc/dpdk/dpdk.conf
$ systemctl restart dpdk
# Set dpdk enabled version in alternatives
$ update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
# Disable conflicting system services
$ systemctl stop openvswitch-ipsec ovs-vswitchd ovsdb-server
# shorten paths to not break tests
$ BIND_MOUNT_DIR=$(mktemp -d /XXX)
$ mount --bind . "${BIND_MOUNT_DIR}"
$ cd "${BIND_MOUNT_DIR}"
# Run the full dpdk test suite (to ensure the case you want works with the usual context)
$ ./tests/system-dpdk-testsuite -C _debian/tests -j1 AUTOTEST_PATH="$(pwd)/tests:$(pwd)/_debian/tests"
# run selected test - in our case 20
$ ./tests/system-dpdk-testsuite -C _debian/tests -j1 AUTOTEST_PATH="$(pwd)/tests:$(pwd)/_debian/tests" 20
This way the good test works and can be re-run, setting up a bad case for comparison ...
Directly running just the failing test (of the 6 I picked the MTU upper bound that I analyzed above) works like this:
$ apt install ubuntu-dev-tools conntrack curl devscripts dpdk-dev ethtool equivs net-tools ncat python3-pyftpdlib tcpdump wget openvswitch-common openvswitch-doc openvswitch-ipsec openvswitch-pki openvswitch-source openvswitch-switch openvswitch- switch- dpdk openvswitch-test openvswitch- testcontroller openvswitch-vtep python3-openvswitch pkgProblemResol ver=yes --no-install- recommends --yes" --remove debian/control openvswitch- switch- dpdk/ovs- vswitchd- dpdk DIR=$(mktemp -d /XXX) system- dpdk-testsuite -C _debian/tests -j1 AUTOTEST_ PATH="$ (pwd)/tests: $(pwd)/ _debian/ tests" system- dpdk-testsuite -C _debian/tests -j1 AUTOTEST_ PATH="$ (pwd)/tests: $(pwd)/ _debian/ tests" 20
# special needs of the OVS tests
$ apt-get remove --yes --purge netcat-openbsd
$ ln -sf /usr/bin/ncat /usr/bin/nc
# Get the source and build it for the tests
$ pull-lp-source openvswitch
$ cd openvswitch-3.3.0/
$ mk-build-deps --install --tool "apt-get -o Debug::
$ ./debian/rules build
# Hugepages for the tests
$ echo "NR_2M_PAGES=784" >> /etc/dpdk/dpdk.conf
$ systemctl restart dpdk
# Set dpdk enabled version in alternatives
$ update-alternatives --set ovs-vswitchd /usr/lib/
# Disable conflicting system services
$ systemctl stop openvswitch-ipsec ovs-vswitchd ovsdb-server
# shorten paths to not break tests
$ BIND_MOUNT_
$ mount --bind . "${BIND_MOUNT_DIR}"
$ cd "${BIND_MOUNT_DIR}"
# Run the full dpdk test suite (to ensure the case you want works with the usual context)
$ ./tests/
# run selected test - in our case 20
$ ./tests/
This way the good test works and can be re-run, setting up a bad case for comparison ...