Exercise adding/removing timers a bit more

This commit is contained in:
Nils O. Selåsdal
2013-09-18 10:32:07 +02:00
parent 9988d8f4c0
commit 4b8a49fb81
+16 -22
View File
@@ -164,37 +164,31 @@ START_TEST (test_timers_add_remove)
struct UCoreSettableClock clk;
struct TimerTest tt;
struct UCTimers timers;
struct UCTimer timer1;
struct UCTimer timer2;
struct UCTimer timer3;
struct UCTimer timer4;
struct UCTimer timer[1023];
struct timeval first;
size_t i;
int toggle = 5;
common_init(&clk, &tt, &timers, &timer1);
memset(&timer2, 0, sizeof timer2);
memset(&timer3, 0, sizeof timer2);
memset(&timer4, 0, sizeof timer2);
common_init(&clk, &tt, &timers, &timer[0]);
memset(&timer, 0, sizeof timer);
for (i = 0; i < sizeof timer/sizeof timer[0]; i++) {
timer[i].callback = timer_test_cb_add;
timer1.callback = timer_test_cb_add;
timer2.callback = timer_test_cb_add;
timer3.callback = timer_test_cb_add;
timer4.callback = timer_test_cb_add;
uc_timers_add(&timers, &timer1, 10, 0);
uc_timers_add(&timers, &timer2, 5 , 0);
uc_timers_add(&timers, &timer3, 15, 1);
uc_timers_add(&timers, &timer4, 15, 1);
uc_timers_add(&timers, &timer[i], toggle + i , 0);
if (i > 5) //just to add timeouts non-ascending order
toggle = 5 - toggle;
}
fail_if(uc_timers_first(&timers, &first) != 0);
fail_if(first.tv_sec != TEST_TIMER_START + 5);
fail_if(first.tv_usec != 0);
fail_if(uc_timers_count(&timers) != 4);
fail_if(uc_timers_count(&timers) != sizeof timer/sizeof timer[0]);
for (i = 0; i < sizeof timer/sizeof timer[0]; i++) {
uc_timers_remove(&timers, &timer[i]);
}
uc_timers_remove(&timers, &timer1);
uc_timers_remove(&timers, &timer2);
uc_timers_remove(&timers, &timer3);
uc_timers_remove(&timers, &timer4);
fail_if(uc_timers_count(&timers) != 0);
fail_if(uc_timers_first(&timers, &first) == 0);