1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/bin/bash
set -u
basedir=$(dirname "$0")
# 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.*sse4_2' /proc/cpuinfo; then
echo "Missing sse4_2 on ${ARCH} - not supported, SKIP test"
exit 77
fi
;;
*)
echo "DPDK autotest not supported on ${ARCH}, SKIP test"
exit 77
;;
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 77
fi
# 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
# due to limitations in autopkgtest environments we have to lower the defaults
# no concurrent executuon (also helps debugging on a hang)
sed -i -e '/^runner = autotest_runner.AutotestRunner(cmdline/i n_processes = 1' /usr/share/dpdk/test/autotest.py
# if this masek is >#cpus it breaks fatally
# lets assume we always have at least 2 CPUs (not the former assumed 4)
sed -i -e '/^runner = autotest_runner.AutotestRunner(cmdline/i cmdline = "%s -c 0x3" % (sys.argv[1])' /usr/share/dpdk/test/autotest.py
# blacklist reasons:
# known upstream: http://www.dpdk.org/ml/archives/dev/2016-May/038849.html
# Updated for >=19.11 with new known failing results in our test env (e.g. --no-huge)
# We excluded anything that didn't reliable (3/3 runs) deliver a good result
python3 "/usr/share/dpdk/test/autotest.py" \
"/usr/bin/dpdk-test" \
"x86_64-default-linuxapp-gcc" \
"-ring_perf,mempool_perf,memcpy_perf,hash_perf,timer_perf,reciprocal_division,reciprocal_division_perf,lpm_perf,red_all,barrier,hash_multiwriter,timer_racecond,efd,hash_functions,eventdev_selftest_sw,member_perf,efd_perf,lpm6_perf,red_perf,distributor_perf,ring_pmd_perf,pmd_perf,ring_perf,link_bonding,link_bonding_mode4,link_bonding_rssconf,cryptodev_sw_mrvl,cryptodev_dpaa2_sec,cryptodev_dpaa_sec,cryptodev_qat,cryptodev_aesni_mb,cryptodev_openssl,cryptodev_scheduler,cryptodev_aesni_gcm,cryptodev_null,cryptodev_sw_snow3g,cryptodev_sw_kasumi,cryptodev_sw_zuc,dump_struct_sizes,dump_mempool,dump_malloc_stats,dump_devargs,dump_log_types,dump_ring,dump_physmem,dump_memzone,timer,resource,rwlock,logs,eal_flags,hash,ultiprocess,mbuf,per_lcore,ring,mempool,atomic,eventdev_selftest_octeontx,table,event_eth_rx_adapter,link_bonding_mode4,multiprocess,bitmap_test,hash_multiwriter,service,hash_functions,cryptodev_sw_mvsam,cryptodev_dpaa2_sec,cryptodev_dpaa_sec,cryptodev_qat,cryptodev_sw_snow3g,cryptodev_sw_kasumi,cryptodev_sw_zuc,kni,bitratestats,latencystats,power_cpufreq,power_kvm_vm,hash_readwrite,hash_readwrite_lf,fib6_perf,rcu_qsbr,rcu_qsbr_perf,ring_perf"
# Pass/Fail
# For now the autotest is too unreliable, so we run it to get some logs in
# different environments, but never (want to) fail until it is stable.
echo "OK"
|