[v2,12/15] test/eal: check number of cores before running subtests
Checks
Commit Message
From: Michael Santana <msantana@redhat.com>
The eal flags unit test assumes that a certain number of cores are
available (4 and 8 cores), however this may not always be the case.
Individual developers may run the unit test on their local desktop
which typically have 2 to 4 cores, in said case the test is bound
to fail for lacking 4 or 8 cores.
Additionally, as we push forward introducing CI into DPDK we are limited
to the hardware specification of CI services (e.g. Travis CI) that only
have 2 cores on their servers, in which case the test would fail.
To fix this we check available cores before running a subtest. This
applies to subtests that are dedicated to test that the -l and --lcore
flags work correctly. If not enough cores are available the subtest is
simply skipped, otherwise the subtest is run.
Signed-off-by: Michael Santana <msantana@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
---
app/test/test_eal_flags.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
@@ -19,7 +19,7 @@
#include <limits.h>
#include <fcntl.h>
-#include <rte_per_lcore.h>
+#include <rte_lcore.h>
#include <rte_debug.h>
#include <rte_string_fns.h>
@@ -560,7 +560,9 @@ enum hugepage_action {
"process ran without error with invalid -l flag\n");
return -1;
}
- if (launch_proc(argv15) != 0) {
+ if (rte_lcore_is_enabled(0) && rte_lcore_is_enabled(1) &&
+ rte_lcore_is_enabled(2) && rte_lcore_is_enabled(3) &&
+ launch_proc(argv15) != 0) {
printf("Error - "
"process did not run ok with valid corelist value\n");
return -1;
@@ -579,7 +581,11 @@ enum hugepage_action {
return -1;
}
- if (launch_proc(argv29) != 0) {
+ if (rte_lcore_is_enabled(0) && rte_lcore_is_enabled(1) &&
+ rte_lcore_is_enabled(2) && rte_lcore_is_enabled(3) &&
+ rte_lcore_is_enabled(3) && rte_lcore_is_enabled(5) &&
+ rte_lcore_is_enabled(4) && rte_lcore_is_enabled(7) &&
+ launch_proc(argv29) != 0) {
printf("Error - "
"process did not run ok with valid corelist value\n");
return -1;
@@ -606,6 +612,9 @@ enum hugepage_action {
snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
#endif
+ if (!rte_lcore_is_enabled(0) || !rte_lcore_is_enabled(1))
+ return TEST_SKIPPED;
+
/* --master-lcore flag but no value */
const char *argv1[] = { prgname, prefix, mp_flag,
"-c", "3", "--master-lcore"};