Comment 14 for bug 2067889

Revision history for this message
Christian Ehrhardt  (paelzer) wrote (last edit ):

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 ...