The shaper and scheduler tests require a minimum of two CPUs to run
reliably. Make these tests conditional and skip them with a warning to
avoid spurious failures if test is run with only a single CPU.

Signed-off-by: Bill Fischofer <[email protected]>
---
 test/validation/traffic_mngr/traffic_mngr.c | 36 +++++++++++++++++++++++++++--
 test/validation/traffic_mngr/traffic_mngr.h |  2 ++
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/test/validation/traffic_mngr/traffic_mngr.c 
b/test/validation/traffic_mngr/traffic_mngr.c
index 305b91a..5ff58f9 100644
--- a/test/validation/traffic_mngr/traffic_mngr.c
+++ b/test/validation/traffic_mngr/traffic_mngr.c
@@ -3652,6 +3652,21 @@ void traffic_mngr_test_tm_create(void)
        dump_tm_tree(0);
 }
 
+int traffic_mngr_check_shaper(void)
+{
+       odp_cpumask_t cpumask;
+       int cpucount = odp_cpumask_all_available(&cpumask);
+
+       if (cpucount < 2) {
+               LOG_DBG("\nSkipping shaper test because cpucount = %d "
+                       "is less then min number 2 required\n", cpucount);
+               LOG_DBG("Rerun with more cpu resources\n");
+               return ODP_TEST_INACTIVE;
+       }
+
+       return ODP_TEST_ACTIVE;
+}
+
 void traffic_mngr_test_shaper(void)
 {
        CU_ASSERT(test_shaper_bw("bw1",   "node_1_1_1", 0, 1   * MBPS) == 0);
@@ -3661,6 +3676,21 @@ void traffic_mngr_test_shaper(void)
        CU_ASSERT(test_shaper_bw("bw100", "node_1_1_2", 0, 100 * MBPS) == 0);
 }
 
+int traffic_mngr_check_scheduler(void)
+{
+       odp_cpumask_t cpumask;
+       int cpucount = odp_cpumask_all_available(&cpumask);
+
+       if (cpucount < 2) {
+               LOG_DBG("\nSkipping scheduler test because cpucount = %d "
+                       "is less then min number 2 required\n", cpucount);
+               LOG_DBG("Rerun with more cpu resources\n");
+               return ODP_TEST_INACTIVE;
+       }
+
+       return ODP_TEST_ACTIVE;
+}
+
 void traffic_mngr_test_scheduler(void)
 {
        CU_ASSERT(test_sched_queue_priority("que_prio", "node_1_1_3", 10) == 0);
@@ -3818,8 +3848,10 @@ odp_testinfo_t traffic_mngr_suite[] = {
        ODP_TEST_INFO(traffic_mngr_test_sched_profile),
        ODP_TEST_INFO(traffic_mngr_test_threshold_profile),
        ODP_TEST_INFO(traffic_mngr_test_wred_profile),
-       ODP_TEST_INFO(traffic_mngr_test_shaper),
-       ODP_TEST_INFO(traffic_mngr_test_scheduler),
+       ODP_TEST_INFO_CONDITIONAL(traffic_mngr_test_shaper,
+                                 traffic_mngr_check_shaper),
+       ODP_TEST_INFO_CONDITIONAL(traffic_mngr_test_scheduler,
+                                 traffic_mngr_check_scheduler),
        ODP_TEST_INFO(traffic_mngr_test_thresholds),
        ODP_TEST_INFO(traffic_mngr_test_byte_wred),
        ODP_TEST_INFO(traffic_mngr_test_pkt_wred),
diff --git a/test/validation/traffic_mngr/traffic_mngr.h 
b/test/validation/traffic_mngr/traffic_mngr.h
index 0d50751..bdac221 100644
--- a/test/validation/traffic_mngr/traffic_mngr.h
+++ b/test/validation/traffic_mngr/traffic_mngr.h
@@ -17,7 +17,9 @@ void traffic_mngr_test_sched_profile(void);
 void traffic_mngr_test_threshold_profile(void);
 void traffic_mngr_test_wred_profile(void);
 void traffic_mngr_test_shaper(void);
+int traffic_mngr_check_shaper(void);
 void traffic_mngr_test_scheduler(void);
+int traffic_mngr_check_scheduler(void);
 void traffic_mngr_test_thresholds(void);
 void traffic_mngr_test_byte_wred(void);
 void traffic_mngr_test_pkt_wred(void);
-- 
2.7.4

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to