From 1304566a892e45e48fdc0c1e2049f27249b83815 Mon Sep 17 00:00:00 2001 From: Petri Savolainen Date: Wed, 8 Mar 2023 18:39:39 +0200 Subject: test: timer: fix expected periodic timer duration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When first tick is used, periodic timer starts between current time and one period time. Fix test duration calculation to take this into account. Signed-off-by: Petri Savolainen Reviewed-by: Matias Elo Reviewed-by: Jere Leppänen --- test/validation/api/timer/timer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/validation/api/timer/timer.c b/test/validation/api/timer/timer.c index 988abdf9c..9e700c566 100644 --- a/test/validation/api/timer/timer.c +++ b/test/validation/api/timer/timer.c @@ -2392,7 +2392,7 @@ static void timer_test_periodic(odp_queue_type_t queue_type, int use_first) odp_event_t ev; odp_timer_t timer; odp_time_t t1, t2; - uint64_t tick, cur_tick, period_ns, duration_ns, diff_ns; + uint64_t tick, cur_tick, period_ns, duration_ns, diff_ns, offset_ns; double freq, freq_out, min_freq, max_freq; int ret; const char *user_ctx = "User context"; @@ -2509,10 +2509,14 @@ static void timer_test_periodic(odp_queue_type_t queue_type, int use_first) memset(&start_param, 0, sizeof(odp_timer_periodic_start_t)); cur_tick = odp_timer_current_tick(timer_pool); - tick = cur_tick + odp_timer_ns_to_tick(timer_pool, period_ns / 2); + offset_ns = period_ns / 2; + tick = cur_tick + odp_timer_ns_to_tick(timer_pool, offset_ns); - if (use_first) + if (use_first) { + /* First tick moves timer to start before the first period */ + duration_ns -= (period_ns - offset_ns); start_param.first_tick = tick; + } start_param.freq_multiplier = multiplier; start_param.tmo_ev = ev; -- cgit v1.2.3