summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Conole <aconole@redhat.com>2019-04-12 12:21:41 -0400
committerThomas Monjalon <thomas@monjalon.net>2019-04-17 13:57:56 +0200
commitc70622ac6f72719ec3ba4a8c7824828fb2663192 (patch)
tree08e88871924cc1791043d8cde75f20f2f2833cab
parent98e6329c800a198790fecaad7fe411ed7fafde27 (diff)
downloaddpdk-c70622ac6f72719ec3ba4a8c7824828fb2663192.zip
dpdk-c70622ac6f72719ec3ba4a8c7824828fb2663192.tar.gz
dpdk-c70622ac6f72719ec3ba4a8c7824828fb2663192.tar.xz
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 <aconole@redhat.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Acked-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
-rw-r--r--app/test/meson.build35
1 files changed, 32 insertions, 3 deletions
diff --git a/app/test/meson.build b/app/test/meson.build
index 867cc58..5e056eb 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')