From 4b8a49fb81a33370aacdeb3a166d3389679700cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20O=2E=20Sel=C3=A5sdal?= Date: Wed, 18 Sep 2013 10:32:07 +0200 Subject: [PATCH] Exercise adding/removing timers a bit more --- test/test_timers.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/test/test_timers.c b/test/test_timers.c index d0e81aa..33c0b09 100644 --- a/test/test_timers.c +++ b/test/test_timers.c @@ -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);