diff options
author | Petri Savolainen <petri.savolainen@nokia.com> | 2023-03-08 18:39:39 +0200 |
---|---|---|
committer | Petri Savolainen <petri.savolainen@nokia.com> | 2023-03-10 14:06:25 +0200 |
commit | 1304566a892e45e48fdc0c1e2049f27249b83815 (patch) | |
tree | e397f295b3af13d6b787682b1f815b3775d37dca /test/validation/api/timer/timer.c | |
parent | 09c1dc385f77f4ff68f7807bef16a167e44d6dd7 (diff) |
test: timer: fix expected periodic timer duration
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 <petri.savolainen@nokia.com>
Reviewed-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
Diffstat (limited to 'test/validation/api/timer/timer.c')
-rw-r--r-- | test/validation/api/timer/timer.c | 10 |
1 files changed, 7 insertions, 3 deletions
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; |