DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Van Haaren, Harry" <harry.van.haaren@intel.com>
To: "Richardson, Bruce" <bruce.richardson@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 2/2] meson: add tests app to build
Date: Mon, 18 Dec 2017 15:24:32 +0000	[thread overview]
Message-ID: <E923DB57A917B54B9182A2E928D00FA650FE309A@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <20171218135512.GB15444@bricha3-MOBL3.ger.corp.intel.com>

> From: Richardson, Bruce
> Sent: Monday, December 18, 2017 1:55 PM
> To: Van Haaren, Harry <harry.van.haaren@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [PATCH 2/2] meson: add tests app to build
> 
> On Mon, Dec 18, 2017 at 11:53:58AM +0000, Harry van Haaren wrote:
> > This patch enables the test/test app to be built. It also adds
> > the test binary to be a meson-test, which allows the meson test
> > infrastructure to be used to run tests.
> >
> > Tests are listed using the same test binary, however each test
> > sets a different DPDK_TEST environment variable. The string contents
> > of this DPDK_TEST env var is entered in the command line interface.
> > As such, the familiar test names such as "ring_perf_autotest" etc
> > are valid tests to run using this meson test infrastructure.
> >
> > Note that the tests are run serially, given that we cannot run
> > multiple primary processes at a time. As each test must initialize
> > EAL this takes some time depending on the number of hugepages.
> > In future, we could improve this to run multiple tests from one
> > EAL init, but it is out of scope for this patchset.
> >
> > Finally, an option to build the tests is added to the meson build
> > options. When disabled, the unit test code in test/test is not
> > compiled. The default is set to 'true'. To disable, run:
> >
> > $ meson configure -Dtests=false
> >
> > Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
> > ---
> 
> <snip>
> > +
> > +test_names = [
> > +	'acl_autotest',
> > +	'alarm_autotest',
<snip>
> > +	'user_delay_us',
> > +	'version_autotest',
> > +]
> 
> I think we should find a way to remove this long list of test names in
> the build file. The list of available tests is built up dynamically
> inside the test binary, so I'm wondering if we can add to the binary an
> "all" option to run each autotest straight after each other?


Agree - it would be nice if we don't have to specify tests here. We could add a flag the test binary, to output the tests that it contains? Then its about having Meson read this file before running tests, to "gather" the tests available..

There's options, but they will probably all be more complex than just having a list of tests.

Re Run all tests: Currently   $ meson test     will run all unit tests.


> > +
> > +if dpdk_conf.has('RTE_LIBRTE_PDUMP')
> > +	test_deps += 'pdump'
> > +endif
> > +if dpdk_conf.has('RTE_LIBRTE_I40E_PMD')
> > +	test_deps += 'pmd_i40e'
> > +endif
> > +if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
> > +	test_deps += 'pmd_ixgbe'
> > +endif
> > +
> 
> This should be moved up beside the other dependencies
> 
> > +test_dep_objs = []
> > +foreach d:test_deps
> > +	def_lib = get_option('default_library')
> > +	test_dep_objs += get_variable(def_lib + '_rte_' + d)
> > +endforeach
> > +
> > +link_libs = []
> > +if get_option('default_library') == 'static'
> > +	link_libs = dpdk_drivers
> > +endif
> > +
> 
> A note for the future: since much of this looks similar to that in
> testpmd we should look to see if we can find a way to easily consolidate
> these build commands inside a foreach loop like is done for the libs,
> drivers and examples.

+1, good idea for a cleanup later.

Meson >= 0.44 has a "disabler" concept[1], which is a clean way to disable components in the build if dependencies aren't found. Eg: specific tests or sample apps, can be disabled from the build without the if() logic required as below.

[1] http://mesonbuild.com/Disabler.html


> > +if get_option('tests')
> > +	dpdk_test = executable('dpdk-test',
> > +		test_sources,
> > +		link_whole: link_libs,
> > +		dependencies: test_dep_objs,
> > +		install_rpath: driver_install_path,
> > +		install: false)
> > +
> > +	# some perf tests (eg: memcpy perf autotest)take very long
> > +	# to complete, so timeout to 10 minutes
> > +	timeout_seconds = 600
> > +
> > +	foreach t:test_names
> > +		test(t, dpdk_test,
> > +			env : ['DPDK_TEST='+t],
> > +			timeout : timeout_seconds,
> > +			is_parallel : false)
> > +	endforeach
> > +endif
> > --
> > 2.7.4
> >

  reply	other threads:[~2017-12-18 15:24 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-18 11:53 [dpdk-dev] [PATCH 0/2] next-build: add test " Harry van Haaren
2017-12-18 11:53 ` [dpdk-dev] [PATCH 1/2] test: use env variable to run test if set Harry van Haaren
2017-12-18 13:50   ` Bruce Richardson
2017-12-18 14:59   ` Jerin Jacob
2017-12-18 15:24     ` Van Haaren, Harry
2017-12-18 15:41       ` Jerin Jacob
2017-12-18 11:53 ` [dpdk-dev] [PATCH 2/2] meson: add tests app to build Harry van Haaren
2017-12-18 13:55   ` Bruce Richardson
2017-12-18 15:24     ` Van Haaren, Harry [this message]
2017-12-20 10:23   ` Bruce Richardson
2017-12-18 13:57 ` [dpdk-dev] [PATCH 0/2] next-build: add test " Bruce Richardson
2017-12-18 15:24   ` Van Haaren, Harry
2017-12-20 11:16 ` [dpdk-dev] [PATCH v2 " Harry van Haaren
2017-12-20 11:16   ` [dpdk-dev] [PATCH v2 1/2] test: use env variable to run test if set Harry van Haaren
2017-12-20 11:47     ` Bruce Richardson
2017-12-20 11:16   ` [dpdk-dev] [PATCH v2 2/2] meson: add tests app to build Harry van Haaren
2017-12-20 11:57     ` Laatz, Kevin
2017-12-20 12:00       ` Bruce Richardson
2017-12-20 12:20     ` Bruce Richardson
2017-12-20 12:22   ` [dpdk-dev] [PATCH v2 0/2] next-build: add test " Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E923DB57A917B54B9182A2E928D00FA650FE309A@IRSMSX102.ger.corp.intel.com \
    --to=harry.van.haaren@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).