[dpdk-dev] [PATCH v1] ci: add test suite run without hugepage

Aaron Conole aconole at redhat.com
Tue Feb 25 16:56:30 CET 2020


Ruifeng Wang <Ruifeng.Wang at arm.com> writes:

>> -----Original Message-----
>> From: Aaron Conole <aconole at redhat.com>
>> Sent: Tuesday, February 25, 2020 22:36
>> To: David Marchand <david.marchand at redhat.com>
>> Cc: Ruifeng Wang <Ruifeng.Wang at arm.com>; Michael Santana
>> <maicolgabriel at hotmail.com>; Bruce Richardson
>> <bruce.richardson at intel.com>; dev <dev at dpdk.org>; Gavin Hu
>> <Gavin.Hu at arm.com>; Honnappa Nagarahalli
>> <Honnappa.Nagarahalli at arm.com>; nd <nd at arm.com>
>> Subject: Re: [PATCH v1] ci: add test suite run without hugepage
>> 
>> David Marchand <david.marchand at redhat.com> writes:
>> 
>> > On Tue, Feb 25, 2020 at 8:33 AM Ruifeng Wang <ruifeng.wang at arm.com>
>> wrote:
>> >>
>> >> This test suite is derived from fast-tests suite. Cases in this suite
>> >> are run with '--no-huge' flag.
>> >>
>> >> The suite aims to cover as many as possible test cases out of the
>> >> fast-tests suites in the environments without huge pages support,
>> >> like containers.
>> >>
>> >> Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
>> >> Reviewed-by: Gavin Hu <gavin.hu at arm.com>
>> >
>> > Compilation time is what makes the most of a "tests" job in Travis.
>> > So I'd prefer we avoid adding more jobs for x86_64 (see below).
>> >
>> >
>> >> ---
>> >>  .ci/linux-build.sh   |  4 +++
>> >>  .travis.yml          | 12 +++++++
>> >>  app/test/meson.build | 75
>> >> ++++++++++++++++++++++++++++++++++++++++++++
>> >>  3 files changed, 91 insertions(+)
>> >>
>> >> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index
>> >> d500c4c00..39515d915 100755
>> >> --- a/.ci/linux-build.sh
>> >> +++ b/.ci/linux-build.sh
>> >> @@ -92,3 +92,7 @@ fi
>> >>  if [ "$RUN_TESTS" = "1" ]; then
>> >>      sudo meson test -C build --suite fast-tests -t 3  fi
>> >> +
>> >> +if [ "$RUN_TESTS_NO_HUGE" = "1" ]; then
>> >> +    sudo meson test -C build --suite nohuge-tests -t 3 fi
>> >
>> > You can replace the "boolean" RUN_TESTS with a TESTSUITES variable
>> > that contains a list of testsuites.
>> > Then this part becomes:
>> >
>> > for testsuite in ${TESTSUITES:-}; do
>> >    sudo meson test -C build --suite $testsuite -t 3 done
>> >
>> > (I wonder if we reaaaally need to be root to run those tests w/ and
>> > w/o hugepages, Aaron?)
>> 
>> Last I tested, we didn't need root access when not using hugepages (at least
>> for core library functionality).  It's possible that the test suites for PMDs might
>> need that access, but we don't run them in the travis environment.
>> 
>> >
>> >> diff --git a/.travis.yml b/.travis.yml index b64a81bd0..0e07d52d0
>> >> 100644
>> >> --- a/.travis.yml
>> >> +++ b/.travis.yml
>> >> @@ -43,6 +43,9 @@ jobs:
>> >>    - env: DEF_LIB="shared" RUN_TESTS=1
>> >>      arch: amd64
>> >>      compiler: gcc
>> >> +  - env: DEF_LIB="shared" RUN_TESTS_NO_HUGE=1
>> >> +    arch: amd64
>> >> +    compiler: gcc
>> >
>> > And then we only need to update the existing RUN_TESTS jobs for x86_64.
>> 
>> I like the suggestion.  But I guess we'd just make RUN_TESTS=1 set
>> TESTSUITES="..." and otherwise, we can have an ARM64 test to do all the test
>> suites.
> It should be OK to do all applicable test suites in a single job?

Yes, I think so.

>> 
>> Actually, the ideal would be for the tests to automatically SKIP when no
>> hugepages are enabled.
> In this way, case will run either w/ hugepage or w/o hugepage but not
> both.

Hrrm?  I don't understand.  If there are hugepages configured, all the
tests will run.  If there are no hugepages, only the tests that can pass
without hugepages will run.

> It will run faster, but with less coverage?

Sortof - if there aren't hugepages configured for an environment
reason (like unsupported) why get failure reports?  Better to either
fail when we try to setup the hugepages, or skip when none are available
because they are two separate concerns.

>> 
>> >
>> >>    - env: DEF_LIB="shared" BUILD_DOCS=1
>> >>      arch: amd64
>> >>      compiler: gcc
>> >> @@ -66,6 +69,9 @@ jobs:
>> >>    - env: DEF_LIB="shared" RUN_TESTS=1
>> >>      arch: amd64
>> >>      compiler: clang
>> >> +  - env: DEF_LIB="shared" RUN_TESTS_NO_HUGE=1
>> >> +    arch: amd64
>> >> +    compiler: clang
>> >>    - env: DEF_LIB="shared" BUILD_DOCS=1
>> >>      arch: amd64
>> >>      compiler: clang
>> >> @@ -101,6 +107,9 @@ jobs:
>> >>    - env: DEF_LIB="static"
>> >>      arch: arm64
>> >>      compiler: gcc
>> >> +  - env: DEF_LIB="shared" RUN_TESTS_NO_HUGE=1
>> >> +    arch: arm64
>> >> +    compiler: gcc
>> >>    - env: DEF_LIB="shared" BUILD_DOCS=1
>> >>      arch: arm64
>> >>      compiler: gcc
>> >> @@ -124,3 +133,6 @@ jobs:
>> >>    - env: DEF_LIB="shared"
>> >>      arch: arm64
>> >>      compiler: clang
>> >> +  - env: DEF_LIB="shared" RUN_TESTS_NO_HUGE=1
>> >> +    arch: arm64
>> >> +    compiler: clang
>> >
>> >
>> > --
>> > David Marchand



More information about the dev mailing list