please review v3.

Maxim.

On 10/14/16 14:51, Maxim Uvarov wrote:
Make check should skip the test instead of failing it.
Test splits RX and TX cores for packet processing. Core
0 bind to control thread. So running machine should have
at least 2 worker threads which is not enough on 1 and 2
cpus machine. CUnit uses special value 77 to mark test as
SKIPPED and not fail on it.

Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>
---

  v3: update if logic (found just after apply.)
  v2: update description (Mike)
  test/common_plat/performance/odp_pktio_perf.c | 16 +++++++++++-----
  1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/test/common_plat/performance/odp_pktio_perf.c 
b/test/common_plat/performance/odp_pktio_perf.c
index f041b13..483f067 100644
--- a/test/common_plat/performance/odp_pktio_perf.c
+++ b/test/common_plat/performance/odp_pktio_perf.c
@@ -34,6 +34,8 @@
  #include <inttypes.h>
  #include <test_debug.h>
+#define TEST_SKIP 77
+
  #define PKT_BUF_NUM       8192
  #define MAX_NUM_IFACES    2
  #define TEST_HDR_MAGIC    0x92749451
@@ -558,7 +560,7 @@ static int setup_txrx_masks(odp_cpumask_t *thd_mask_tx,
                                           gbl_args->args.cpu_count);
        if (num_workers < 2) {
                LOG_ERR("Need at least two cores\n");
-               return -1;
+               return TEST_SKIP;
        }
if (gbl_args->args.num_tx_workers) {
@@ -659,7 +661,7 @@ static int run_test_single(odp_cpumask_t *thd_mask_tx,
static int run_test(void)
  {
-       int ret = 1;
+       int ret;
        int i;
        odp_cpumask_t txmask, rxmask;
        test_status_t status = {
@@ -669,8 +671,9 @@ static int run_test(void)
                .warmup = 1,
        };
- if (setup_txrx_masks(&txmask, &rxmask) != 0)
-               return -1;
+       ret = setup_txrx_masks(&txmask, &rxmask);
+       if (ret)
+               return ret;
printf("Starting test with params:\n");
        printf("\tTransmit workers:     \t%d\n", odp_cpumask_count(&txmask));
@@ -691,8 +694,11 @@ static int run_test(void)
        run_test_single(&txmask, &rxmask, &status);
        status.warmup = 0;
- while (ret > 0)
+       while (1) {
                ret = run_test_single(&txmask, &rxmask, &status);
+               if (ret <= 0)
+                       break;
+       }
return ret;
  }

Reply via email to