Porting PicoTCP WIP
This commit is contained in:
40
kernel/picotcp/test/unit/unit_timer.c
Normal file
40
kernel/picotcp/test/unit/unit_timer.c
Normal file
@ -0,0 +1,40 @@
|
||||
#define EXISTING_TIMERS 7
|
||||
|
||||
|
||||
START_TEST (test_timers)
|
||||
{
|
||||
uint32_t T[128];
|
||||
int i;
|
||||
struct pico_timer_ref *tref;
|
||||
pico_stack_init();
|
||||
for (i = 0; i < 128; i++) {
|
||||
pico_time expire = (pico_time)(999999 + i);
|
||||
void (*timer)(pico_time, void *) =(void (*)(pico_time, void *))0xff00 + i;
|
||||
void *arg = ((void*)0xaa00 + i);
|
||||
|
||||
T[i] = pico_timer_add(expire, timer, arg);
|
||||
printf("New timer %u\n", T[i]);
|
||||
}
|
||||
for (i = 0; i < 128; i++) {
|
||||
void (*timer)(pico_time, void *) =(void (*)(pico_time, void *))0xff00 + i;
|
||||
void *arg = ((void*)0xaa00 + i);
|
||||
|
||||
fail_if((uint32_t)(i + 1) > Timers->n);
|
||||
tref = heap_get_element(Timers, (uint32_t)i + EXISTING_TIMERS);
|
||||
fail_unless(tref->id == T[i]);
|
||||
fail_unless(tref->tmr->timer == timer);
|
||||
fail_unless(tref->tmr->arg == arg);
|
||||
}
|
||||
for (i = 127; i >= 0; i--) {
|
||||
printf("Deleting timer %d \n", i );
|
||||
pico_timer_cancel(T[i]);
|
||||
printf("Deleted timer %d \n", i );
|
||||
tref = heap_get_element(Timers, (uint32_t)i + EXISTING_TIMERS);
|
||||
fail_unless(tref->tmr == NULL);
|
||||
}
|
||||
pico_stack_tick();
|
||||
pico_stack_tick();
|
||||
pico_stack_tick();
|
||||
pico_stack_tick();
|
||||
}
|
||||
END_TEST
|
||||
Reference in New Issue
Block a user