[dpdk-dev] [PATCH v2] guides: add a testing guide for developing tests
Aaron Conole
aconole at redhat.com
Wed Mar 17 15:44:31 CET 2021
David Marchand <david.marchand at redhat.com> writes:
> On Tue, Mar 9, 2021 at 5:14 PM Aaron Conole <aconole at redhat.com> wrote:
>> >>> > +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 :-)
Sent :)
> So +1 for a patch.
> Thanks Aaron!
More information about the dev
mailing list