]> git.ozlabs.org Git - ccan/blob - ccan/timer/test/run-ff.c
timer: make timer_del() idempotent, add timer_init().
[ccan] / ccan / timer / test / run-ff.c
1 #include <ccan/timer/timer.h>
2 /* Include the C files directly. */
3 #include <ccan/timer/timer.c>
4 #include <ccan/tap/tap.h>
5
6 static struct timeabs timeabs_from_usec(unsigned long long usec)
7 {
8         struct timeabs epoch = { { 0, 0 } };
9         return timeabs_add(epoch, time_from_usec(usec));
10 }
11
12 int main(void)
13 {
14         struct timers timers;
15         struct timer t, *expired;
16
17         /* This is how many tests you plan to run */
18         plan_tests(3);
19
20         timers_init(&timers, timeabs_from_usec(1364726722653919ULL));
21         timer_init(&t);
22         timer_add(&timers, &t, timeabs_from_usec(1364726722703919ULL));
23         ok1(!timers_expire(&timers, timeabs_from_usec(1364726722653920ULL)));
24         expired = timers_expire(&timers, timeabs_from_usec(1364726725454187ULL));
25         ok1(expired == &t);
26         ok1(!timers_expire(&timers, timeabs_from_usec(1364726725454187ULL)));
27         timers_cleanup(&timers);
28
29         /* This exits depending on whether all tests passed */
30         return exit_status();
31 }