From c70622ac6f72719ec3ba4a8c7824828fb2663192 Mon Sep 17 00:00:00 2001 From: Aaron Conole Date: Fri, 12 Apr 2019 12:21:41 -0400 Subject: [PATCH] test: detect number of cores with meson The arguments being passed will cause failures on laptops that have, for instance, 2 cores only. Most of the tests don't require more than a single core. Some require multiple cores (but those tests should be modified to 'SKIP' when the correct number of cores aren't available). The unit test results shouldn't be impacted by this change, but it allows for a future enhancement to pass flags such as '--no-huge'. Also include a fix to a reported issue with running on FreeBSD. Signed-off-by: Aaron Conole Reviewed-by: David Marchand Acked-by: Luca Boccassi Acked-by: Bruce Richardson --- app/test/meson.build | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/app/test/meson.build b/app/test/meson.build index 867cc58635..5e056eb599 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -344,17 +344,43 @@ if get_option('tests') timeout_seconds = 600 timeout_seconds_fast = 10 + # Retrieve the number of CPU cores, defaulting to 4. + num_cores = '0-3' + if host_machine.system() == 'linux' + num_cores = run_command('cat', + '/sys/devices/system/cpu/present' + ).stdout().strip() + elif host_machine.system() == 'freebsd' + snum_cores = run_command('/sbin/sysctl', '-n', + 'hw.ncpu').stdout().strip() + inum_cores = snum_cores.to_int() - 1 + num_cores = '0-@0@'.format(inum_cores) + endif + + num_cores_arg = '-l ' + num_cores + + test_args = [num_cores_arg, '-n 4'] foreach arg : fast_parallel_test_names - test(arg, dpdk_test, - env : ['DPDK_TEST=' + arg], - args : ['-c f','-n 4', '--file-prefix=@0@'.format(arg)], + if host_machine.system() == 'linux' + test(arg, dpdk_test, + env : ['DPDK_TEST=' + arg], + args : test_args + + ['--file-prefix=@0@'.format(arg)], + timeout : timeout_seconds_fast, + suite : 'fast-tests') + else + test(arg, dpdk_test, + env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds_fast, suite : 'fast-tests') + endif endforeach foreach arg : fast_non_parallel_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds_fast, is_parallel : false, suite : 'fast-tests') @@ -363,6 +389,7 @@ if get_option('tests') foreach arg : perf_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'perf-tests') @@ -371,6 +398,7 @@ if get_option('tests') foreach arg : driver_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'driver-tests') @@ -379,6 +407,7 @@ if get_option('tests') foreach arg : dump_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'debug-tests') -- 2.20.1