Re: [dpdk-dev] [PATCH v2] guides: add a testing guide for developing tests
From: David Marchand <hidden>
Date: 2021-03-11 21:26:06
On Tue, Mar 9, 2021 at 5:14 PM Aaron Conole [off-list ref] wrote:
quoted hunk ↗ jump to hunk
quoted
quoted
quoted
quoted
+The suites can be selected by adding the ``--suite`` option to the +``meson test`` command. Ex: ``meson test --suite fast-tests``:: + + $ meson test -C build --suite fast-tests + ninja: Entering directory `/home/aconole/git/dpdk/build' + [2543/2543] Linking target app/test/dpdk-test. + 1/60 DPDK:fast-tests / acl_autotest OK 3.17 s + 2/60 DPDK:fast-tests / bitops_autotest OK 0.22 s + 3/60 DPDK:fast-tests / byteorder_autotest OK 0.22 s + 4/60 DPDK:fast-tests / cmdline_autotest OK 0.28 s + 5/60 DPDK:fast-tests / common_autotest OK 0.57 s + 6/60 DPDK:fast-tests / cpuflags_autotest OK 0.27 s + ...Trying this in my build env, I get all tests failing. This is because I run this as a normal user, but the system has hugepages configured. I figured this out quickly since I know the test framework (simply added a echo 0; exit at the top of has-hugepages.sh). But I am not sure a reader of this doc would be able to troubleshoot this. Not sure if this is worth explaining here, or if we can enhance the hugepage check (permissions maybe?).I prefer to fix the hugepage check to make the tests SKIP when we don't have hugepages accessible (so we need some kind of permission check in there). I will submit it separately.Here is my PoC for this - if you think it's good enough, I'll submit as formal PATCH. --- index d600fad319..1c3cfb665a 100755--- a/app/test/has-hugepage.sh +++ b/app/test/has-hugepage.sh@@ -3,7 +3,17 @@ # Copyright 2020 Mellanox Technologies, Ltd if [ "$(uname)" = "Linux" ] ; then - cat /proc/sys/vm/nr_hugepages || echo 0 + nr_hugepages=$(cat /proc/sys/vm/nr_hugepages) + # Need to check if we have permissions to access hugepages + perm="" + for mount in `mount | grep hugetlbfs | awk '{ print $3; }'`; do + test ! -w $mount/. || perm="$mount" + done + if [ "$perm" = "" -o "$nr_hugepages" = "0" ]; then + echo 0 + else + echo $nr_hugepages + fi elif [ "$(uname)" = "FreeBSD" ] ; then echo 1 # assume FreeBSD always has hugepages else---
I need to think more about the multiple mountpoints case (but I may be imagining too much twisted setups..). At least, this works in my env. We need tests in travis/GHA, and sending a non-RFC patch is the best way to know :-) So +1 for a patch. Thanks Aaron! -- David Marchand