Refactor timer test to new policy.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sat, 9 Aug 2008 10:03:49 +0000 (10:03 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sat, 9 Aug 2008 10:03:49 +0000 (10:03 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1582 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/drv/timer.h
bertos/drv/timer_test.c

index 4d781549f4dd025519516221c274854b794f5486..f251ff82e697c0645db73962850a84a73922e2fb 100644 (file)
@@ -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)
index f30ac45e2accebc7f806bd881374b985b3cf8b8a..22b18761d2e9e84b3d15c55e750ff5e994a745a2 100644 (file)
 
 #include <cfg/debug.h>
 
-#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);