Having system call inside loop couse unpredictable delay as the result wrong time diff calculation. Just removing print make hole test execution shorter on 0.1 seconds according to cunit stats. Also make verbose errors in places where we out of limit in cunit. This should be very helpful to understand DELAY_TOLERANCE value suitable for all platforms.
Signed-off-by: Maxim Uvarov <[email protected]> --- test/validation/time/time.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/test/validation/time/time.c b/test/validation/time/time.c index da456ea..f7f3d14 100644 --- a/test/validation/time/time.c +++ b/test/validation/time/time.c @@ -331,7 +331,6 @@ static void time_test_wait_until(time_cb time, time_from_ns_cb time_from_ns) for (i = 0; i < WAIT_SECONDS; i++) { wait = odp_time_sum(wait, second); odp_time_wait_until(wait); - printf("%d..", i + 1); } end_time = time(); @@ -341,8 +340,19 @@ static void time_test_wait_until(time_cb time, time_from_ns_cb time_from_ns) upper_limit = time_from_ns(WAIT_SECONDS * ODP_TIME_SEC_IN_NS + DELAY_TOLERANCE); - CU_ASSERT(odp_time_cmp(wait, lower_limit) >= 0); - CU_ASSERT(odp_time_cmp(wait, upper_limit) <= 0); + if (odp_time_cmp(wait, lower_limit) < 0) { + fprintf(stderr, "Exceed lower limit: " + "wait is %" PRIu64 ", lower_limit %" PRIu64 "\n", + odp_time_to_ns(wait), odp_time_to_ns(lower_limit)); + CU_FAIL("Exceed lower limit\n"); + } + + if (odp_time_cmp(wait, upper_limit) > 0) { + fprintf(stderr, "Exceed upper limit: " + "wait is %" PRIu64 ", upper_limit %" PRIu64 "\n", + odp_time_to_ns(wait), odp_time_to_ns(lower_limit)); + CU_FAIL("Exceed upper limit\n"); + } } void time_test_local_wait_until(void) @@ -362,10 +372,8 @@ void time_test_wait_ns(void) odp_time_t start_time, end_time, diff; start_time = odp_time_local(); - for (i = 0; i < WAIT_SECONDS; i++) { + for (i = 0; i < WAIT_SECONDS; i++) odp_time_wait_ns(ODP_TIME_SEC_IN_NS); - printf("%d..", i + 1); - } end_time = odp_time_local(); diff = odp_time_diff(end_time, start_time); @@ -375,8 +383,19 @@ void time_test_wait_ns(void) upper_limit = odp_time_local_from_ns(WAIT_SECONDS * ODP_TIME_SEC_IN_NS + DELAY_TOLERANCE); - CU_ASSERT(odp_time_cmp(diff, lower_limit) >= 0); - CU_ASSERT(odp_time_cmp(diff, upper_limit) <= 0); + if (odp_time_cmp(diff, lower_limit) < 0) { + fprintf(stderr, "Exceed lower limit: " + "diff is %" PRIu64 ", lower_limit %" PRIu64 "\n", + odp_time_to_ns(diff), odp_time_to_ns(lower_limit)); + CU_FAIL("Exceed lower limit\n"); + } + + if (odp_time_cmp(diff, upper_limit) > 0) { + fprintf(stderr, "Exceed upper limit: " + "diff is %" PRIu64 ", upper_limit %" PRIu64 "\n", + odp_time_to_ns(diff), odp_time_to_ns(lower_limit)); + CU_FAIL("Exceed upper limit\n"); + } } static void time_test_to_u64(time_cb time) -- 2.7.1.250.gff4ea60 _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
