David Marchand <david.march...@redhat.com> writes:

Thanks for the review, David!

> On Fri, Mar 29, 2019 at 6:23 PM Aaron Conole <acon...@redhat.com> wrote:
>
>  Some environments do not provide a minimum 4 cores for running tests.  This
>  allows those environments to still execute 'ninja test' without causing
>  multiple failures.
>
>  Signed-off-by: Aaron Conole <acon...@redhat.com>
>  ---
>   app/test/meson.build | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
>
>  diff --git a/app/test/meson.build b/app/test/meson.build
>  index ddb4d09ae..975b38daa 100644
>  --- a/app/test/meson.build
>  +++ b/app/test/meson.build
>  @@ -337,10 +337,15 @@ if get_option('tests')
>          timeout_seconds = 600
>          timeout_seconds_fast = 10
>
>  +       # Retreive the number of CPU cores
>  +       num_cores = run_command('lscpu', 
> '-p=cpu').stdout().strip().split('\n')[-1]
>  +       num_cores_arg = '-l 0-' + num_cores
>
> Seeing how we can reduce the core number, we can at least cap it to 4 and not 
> use all the cores on bigger
> systems.
> But, thinking again, do you know if there is a need for more than 2 cores in 
> the existing tests ?

Probably not.  At least, the systems in the travis environment only
provide 2 cores and most of the tests pass.  OTOH, some still fail and I
need to investigate them a bit more.  Some of the test case failures are
ex. eal flags failures and maybe they do pass some '-c f' as part of
the test case, which would fail on systems without 4 cores.

>  +
>  +       test_args = [num_cores_arg, '-n 4']

Whoops!  I think, this '-n 4' option can probably be removed as well.  I
think the memory channel config is optional, and I believe there's no
need to try and tune it.

>          foreach arg : fast_parallel_test_names
>                  test(arg, dpdk_test,
>                          env : ['DPDK_TEST=' + arg],
>  -                       args : ['-c f','-n 4', 
> '--file-prefix=@0@'.format(arg)],
>  +                       args : test_args + ['--file-prefix=@0@'.format(arg)],
>                          timeout : timeout_seconds_fast,
>                          suite : 'fast-tests')
>          endforeach
>  @@ -348,6 +353,7 @@ if get_option('tests')
>          foreach arg : fast_non_parallel_test_names
>                  test(arg, dpdk_test,
>                          env : ['DPDK_TEST=' + arg],
>  +                       args : test_args + ['--file-prefix=@0@'.format(arg)],
>
> I don't understand this part.
>
> (How|) was it working before ?

It did work before.

> Is there some default args ? I could not find it.

I think it does try to do some auto-detection.  I did extend this
because it seemed to make sense, and I have some future work to allow
passing '--no-huge' (in case we have a CI system that doesn't allow
allocating hugepages).  Maybe it doesn't make sense to add that right
now, though.  I'll try without it.

>                          timeout : timeout_seconds_fast,
>                          is_parallel : false,
>                          suite : 'fast-tests')

Reply via email to