diff options
-rw-r--r-- | debian/tests/control | 4 | ||||
-rw-r--r-- | debian/tests/test-autotest | 58 |
2 files changed, 62 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control index 4eb71038..7d624212 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -11,3 +11,7 @@ Tests: test-dkms Restrictions: allow-stderr, isolation-machine, needs-root Depends: kmod, dpdk-igb-uio-dkms [amd64 arm64 i386 ppc64el], dpdk-rte-kni-dkms [amd64 arm64 i386 ppc64el] + +Tests: test-autotest +Restrictions: allow-stderr, isolation-machine, needs-root +Depends: dpdk-dev, python, python-pexpect diff --git a/debian/tests/test-autotest b/debian/tests/test-autotest new file mode 100644 index 00000000..b18ad2a3 --- /dev/null +++ b/debian/tests/test-autotest @@ -0,0 +1,58 @@ +#!/bin/bash +set -eu + +basedir=$(dirname "$0") +. "${basedir}"/check-dpdk-supported-arch.sh + +# since these tests really execute dpdk code they have to check for the +# required minimum cpu features +ARCH=$(dpkg --print-architecture) +echo "Check required features on arch: ${ARCH}" +case "${ARCH}" in + amd64) + if ! grep -q '^flags.*sse3' /proc/cpuinfo; then + echo "Missing sse3 on ${ARCH} - not supported, SKIP test" + exit 0 + fi + ;; + *) + echo "DPDK autotest not supported on ${ARCH}, SKIP test" + exit 0 + ;; +esac +echo "no known missing feature on ${ARCH}, continue test" + +echo "Get required 1G huge pages" +echo 512 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages +sleep 5s +realhp=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages) +if [[ "$realhp" != "512" ]]; then + echo "Unable to allocate the huge pages required for the test, SKIP test" + exit 0 +fi + +# fetch build config +. /usr/share/dpdk/dpdk-sdk-env.sh + +# Reasons for not being an dh_autotest +# - needs root and hugepages +# - build environment capabilities too unpredictable +# - certain workarounds needed to get running, needing root for some which is +# not available in the build environment + +# blacklist reasons: +# known upstream: http://www.dpdk.org/ml/archives/dev/2016-May/038849.html +# - KNI: we deliver via dkms but test doesn't match +# - power_acpi_cpufreq: in many environments blocked by other cpufreq +# - power_kvm_vm_autotest: no avail in all environments, only for virt power management e.g. /dev/virtio-ports/virtio.serial.port.poweragent.0 +# - IVSHMEM fails in virtual environment +# - eal_flags needs at least 8 cpus for lcores test not to fail +# - pci doesn't initialize in all virt env causing command not found issues +# - rather slow performance tests not suited for regular build associated tests: ring_perf,mempool_perf,memcpy_perf,hash_perf,timer_perf + +python "${RTE_SDK}/test/autotest.py" \ + "${RTE_SDK}/test/test" \ + "${RTE_TARGET}" \ + "-KNI,power_acpi_cpufreq,power_kvm_vm,IVSHMEM,eal_flags,pci,ring_perf,mempool_perf,memcpy_perf,hash_perf,timer_perf" \ + +echo "OK" |