[dpdk-dev] [PATCH v2] guides: add a testing guide for developing tests
Bruce Richardson
bruce.richardson at intel.com
Tue Mar 2 17:00:42 CET 2021
On Tue, Mar 02, 2021 at 10:26:59AM -0500, Aaron Conole wrote:
> Bruce Richardson <bruce.richardson at intel.com> writes:
>
> > On Tue, Mar 02, 2021 at 10:07:26AM +0100, David Marchand wrote:
> >> On Wed, Feb 10, 2021 at 3:56 PM Aaron Conole <aconole at redhat.com> wrote:
> >> > diff --git a/doc/guides/contributing/testing.rst b/doc/guides/contributing/testing.rst
> >> > new file mode 100644
> >> > index 0000000000..86ca24ce43
> >> > --- /dev/null
> >> > +++ b/doc/guides/contributing/testing.rst
> >> > @@ -0,0 +1,245 @@
> >> > +.. SPDX-License-Identifier: BSD-3-Clause
> >> > + Copyright 2018 The DPDK contributors
> >>
> >> 2021?
>
> Whoops, I forgot to update my time machine.
>
> >> > +
> >> > +.. _testing_guidelines:
> >>
> >> I can't find a call to the testing_guidelines reference, so this can be removed.
>
> done.
>
> >>
> >> [snip]
> >>
> >> > +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.
>
> >>
> >> [snip]
> >>
> >> > +Checking code coverage
> >> > +----------------------
> >> > +The meson build system supports generating a code coverage report
> >> > +via the `-Db_coverage=true` option, in conjunction with a package
> >> > +like **lcov**, to generate an HTML code coverage report. Example::
> >> > +
> >> > + $ meson covered -Db_coverage=true
> >>
> >> At first, I read "covered" as a meson command :-).
> >> I prefer an explicit "meson setup covered -Db_coverage=true", but well
> >> this is more a matter of taste.
> >>
> >>
> >
> > I also tend to prefer the build directory name at the end of the command,
> > so I'd suggest: "meson setup -Db_coverage=true covered". Furthermore,
> > while I can understand the use of "covered" as a build directory name, I
> > think for consistency across all docs, we should just use "build" here as
> > the directory name, which again will reduce confusion. "meson setup
> > -Db_coverage build"
>
> Okay - I will paint this bikeshed like:
>
> meson setup build -Db_coverage=true
>
> It's a little inconsistent everywhere - so I guess a good janitor
> project would be to clean up all the places we have meson commands.
>
> Otherwise, what I've found is that the options generally come after the
> build directory / command is specified (ex: see octeontx, the arm64
> cross build docs, etc.) so I'll keep that for consistency there.
> Hopefully we will consistently become more consistent :)
>
That's some fine bikeshed painting! And I'm fine with all your suggestion.
/Bruce
More information about the dev
mailing list