From 3b9a407e4f8ed59e5d31f3e5abe395e5d7129500 Mon Sep 17 00:00:00 2001 From: batt Date: Sat, 9 Aug 2008 10:03:49 +0000 Subject: [PATCH] Refactor timer test to new policy. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1582 38d2e660-2303-0410-9eaa-f027e97ec537 --- bertos/drv/timer.h | 7 +++++-- bertos/drv/timer_test.c | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/bertos/drv/timer.h b/bertos/drv/timer.h index 4d781549..f251ff82 100644 --- a/bertos/drv/timer.h +++ b/bertos/drv/timer.h @@ -185,6 +185,9 @@ INLINE void timer_delay(mtime_t delay) { timer_delayTicks(ms_to_ticks(delay)); } +int timer_testSetup(void); +int timer_testRun(void); +int timer_testTearDown(void); #if !defined(CONFIG_TIMER_DISABLE_UDELAY) void timer_busyWait(hptime_t delay); @@ -219,8 +222,8 @@ typedef struct Timer #define TIMER_MAGIC_ACTIVE 0xABBA #define TIMER_MAGIC_INACTIVE 0xBAAB -extern void timer_add(Timer *timer); -extern Timer *timer_abort(Timer *timer); +void timer_add(Timer *timer); +Timer *timer_abort(Timer *timer); /** Set the timer so that it calls an user hook when it expires */ INLINE void timer_set_event_softint(Timer *timer, Hook func, iptr_t user_data) diff --git a/bertos/drv/timer_test.c b/bertos/drv/timer_test.c index f30ac45e..22b18761 100644 --- a/bertos/drv/timer_test.c +++ b/bertos/drv/timer_test.c @@ -45,10 +45,6 @@ #include -#warning TODO:Refactor this test to comply whit BeRTOS test policy. - -#ifdef _TEST - static void timer_test_constants(void) { kprintf("TIMER_HW_HPTICKS_PER_SEC=%lu\n", TIMER_HW_HPTICKS_PER_SEC); @@ -97,10 +93,11 @@ static void timer_test_hook(iptr_t _timer) timer_add(timer); } +static Timer test_timers[5]; +static const mtime_t test_delays[5] = { 170, 50, 310, 1500, 310 }; + static void timer_test_async(void) { - static Timer test_timers[5]; - static const mtime_t test_delays[5] = { 170, 50, 310, 1500, 310 }; size_t i; for (i = 0; i < countof(test_timers); ++i) @@ -131,11 +128,17 @@ static void timer_test_poll(void) } } - -int main(void) +int timer_testSetup(void) { + IRQ_ENABLE; wdt_init(7); timer_init(); + kdbg_init(); + return 0; +} + +int timer_testRun(void) +{ timer_test_constants(); timer_test_delay(); timer_test_async(); @@ -143,12 +146,20 @@ int main(void) return 0; } -#include "timer.c" -#include "drv/kdebug.c" -#include "mware/event.c" -#include "mware/formatwr.c" -#include "mware/hex.c" -#include "os/hptime.c" +int timer_testTearDown(void) +{ + unsigned i; + for (i = 0; i < countof(test_timers); ++i) + timer_abort(&test_timers[i]); + return 0; +} + +#include TEST_ONLY(drv/timer.c) +#include TEST_ONLY(drv/kdebug.c) +#include TEST_ONLY(mware/event.c) +#include TEST_ONLY(mware/formatwr.c) +#include TEST_ONLY(mware/hex.c) +#include TEST_ONLY(os/hptime.c) -#endif +TEST_MAIN(timer); -- 2.25.1