aboutsummaryrefslogtreecommitdiff
path: root/test/validation/api/timer
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@nokia.com>2023-03-08 18:39:39 +0200
committerPetri Savolainen <petri.savolainen@nokia.com>2023-03-10 14:06:25 +0200
commit1304566a892e45e48fdc0c1e2049f27249b83815 (patch)
treee397f295b3af13d6b787682b1f815b3775d37dca /test/validation/api/timer
parent09c1dc385f77f4ff68f7807bef16a167e44d6dd7 (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')
-rw-r--r--test/validation/api/timer/timer.c10
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;