Module: xenomai-2.6
Branch: master
Commit: 18a589e2160dd111bd7a31bc927fdc20fd94bf33
URL:    
http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=18a589e2160dd111bd7a31bc927fdc20fd94bf33

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Sun Apr 14 09:51:57 2013 +0200

native: get unit tests working with periodic timer

---

 src/testsuite/unit/cond-torture.c  |   10 ++++++----
 src/testsuite/unit/mutex-torture.c |    4 ++--
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/testsuite/unit/cond-torture.c 
b/src/testsuite/unit/cond-torture.c
index 6620ed8..57d47ab 100644
--- a/src/testsuite/unit/cond-torture.c
+++ b/src/testsuite/unit/cond-torture.c
@@ -152,7 +152,7 @@ typedef RT_MUTEX mutex_t;
 typedef RT_TASK *thread_t;
 typedef RT_COND cond_t;
 
-#define timer_read() rt_timer_read()
+#define timer_read() rt_timer_ticks2ns(rt_timer_read())
 
 int __mutex_init(mutex_t *mutex, const char *name, int type, int pi)
 {
@@ -174,13 +174,15 @@ int __cond_init(cond_t *cond, const char *name, int 
absolute)
 }
 #define cond_init(cond, absolute) __cond_init(cond, #cond, absolute)
 #define cond_signal(cond) rt_cond_signal(cond)
-#define cond_wait(cond, mutex, ns) rt_cond_wait(cond, mutex, (RTIME)ns)
+#define cond_wait(cond, mutex, ns) \
+       rt_cond_wait(cond, mutex, ns == XN_INFINITE ? ns : 
(rt_timer_ns2ticks(ns) + 1))
 #define cond_wait_until(cond, mutex, ns) \
-       rt_cond_wait_until(cond, mutex, (RTIME)ns)
+       rt_cond_wait_until(cond, mutex, rt_timer_ns2ticks(ns) + 1)
 #define cond_destroy(cond) rt_cond_delete(cond)
 
 #define thread_self() rt_task_self()
-#define thread_msleep(ms) rt_task_sleep((RTIME)ms * NS_PER_MS)
+#define thread_msleep(ms) \
+       rt_task_sleep(rt_timer_ns2ticks((RTIME)ms * NS_PER_MS) + 1)
 int
 thread_spawn_inner(thread_t *thread, const char *name,
                   int prio, void *(*handler)(void *), void *cookie)
diff --git a/src/testsuite/unit/mutex-torture.c 
b/src/testsuite/unit/mutex-torture.c
index 2eedaf8..8561a25 100644
--- a/src/testsuite/unit/mutex-torture.c
+++ b/src/testsuite/unit/mutex-torture.c
@@ -106,7 +106,7 @@ void ms_sleep(int time)
 
        nanosleep(&ts, NULL);
 #else /* __NATIVE_SKIN__ */
-       rt_task_sleep(time*NS_PER_MS);
+       rt_task_sleep(rt_timer_ns2ticks(time*NS_PER_MS) + 1);
 #endif /* __NATIVE_SKIN__ */
 }
 
@@ -233,7 +233,7 @@ int dispatch(const char *service_name,
                timespec_add(&ts, timeout);
                status = pthread_mutex_timedlock(mutex, &ts);
 #else /* __NATIVE_SKIN__ */
-               status = -rt_mutex_acquire(mutex, timeout);
+               status = -rt_mutex_acquire(mutex, rt_timer_ns2ticks(timeout) + 
1);
 #endif /* __NATIVE_SKIN__ */
                break;
 


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to