aboutsummaryrefslogtreecommitdiffstats
path: root/test/rt
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-11-08 17:41:11 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-11-08 17:41:11 +0000
commit9f727e23941089b7b2667a6f7fb45ab76b0f4982 (patch)
tree191706a9600bd3a0cee61031d587747fde6fb421 /test/rt
parentac8c864dbeb7d1b1d565d3613e5fd845083284d1 (diff)
downloadChibiOS-9f727e23941089b7b2667a6f7fb45ab76b0f4982.tar.gz
ChibiOS-9f727e23941089b7b2667a6f7fb45ab76b0f4982.tar.bz2
ChibiOS-9f727e23941089b7b2667a6f7fb45ab76b0f4982.zip
Fixed bug bug #547.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7491 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'test/rt')
-rw-r--r--test/rt/testevt.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/test/rt/testevt.c b/test/rt/testevt.c
index 49507f067..f98e73934 100644
--- a/test/rt/testevt.c
+++ b/test/rt/testevt.c
@@ -154,13 +154,15 @@ static void evt2_execute(void) {
/*
* Test on chEvtWaitOne() without wait.
*/
- chEvtAddEvents(5);
+ chEvtAddEvents(7);
m = chEvtWaitOne(ALL_EVENTS);
test_assert(1, m == 1, "single event error");
m = chEvtWaitOne(ALL_EVENTS);
- test_assert(2, m == 4, "single event error");
+ test_assert(2, m == 2, "single event error");
+ m = chEvtWaitOne(ALL_EVENTS);
+ test_assert(3, m == 4, "single event error");
m = chEvtGetAndClearEvents(ALL_EVENTS);
- test_assert(3, m == 0, "stuck event");
+ test_assert(4, m == 0, "stuck event");
/*
* Test on chEvtWaitOne() with wait.
@@ -170,10 +172,10 @@ static void evt2_execute(void) {
threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriorityX() - 1,
thread1, chThdGetSelfX());
m = chEvtWaitOne(ALL_EVENTS);
- test_assert_time_window(4, target_time, target_time + ALLOWED_DELAY);
- test_assert(5, m == 1, "single event error");
+ test_assert_time_window(5, target_time, target_time + ALLOWED_DELAY);
+ test_assert(6, m == 1, "single event error");
m = chEvtGetAndClearEvents(ALL_EVENTS);
- test_assert(6, m == 0, "stuck event");
+ test_assert(7, m == 0, "stuck event");
test_wait_threads();
/*
@@ -181,9 +183,9 @@ static void evt2_execute(void) {
*/
chEvtAddEvents(5);
m = chEvtWaitAny(ALL_EVENTS);
- test_assert(7, m == 5, "unexpected pending bit");
+ test_assert(8, m == 5, "unexpected pending bit");
m = chEvtGetAndClearEvents(ALL_EVENTS);
- test_assert(8, m == 0, "stuck event");
+ test_assert(9, m == 0, "stuck event");
/*
* Test on chEvtWaitAny() with wait.
@@ -193,10 +195,10 @@ static void evt2_execute(void) {
threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriorityX() - 1,
thread1, chThdGetSelfX());
m = chEvtWaitAny(ALL_EVENTS);
- test_assert_time_window(9, target_time, target_time + ALLOWED_DELAY);
- test_assert(10, m == 1, "single event error");
+ test_assert_time_window(10, target_time, target_time + ALLOWED_DELAY);
+ test_assert(11, m == 1, "single event error");
m = chEvtGetAndClearEvents(ALL_EVENTS);
- test_assert(11, m == 0, "stuck event");
+ test_assert(12, m == 0, "stuck event");
test_wait_threads();
/*
@@ -211,14 +213,14 @@ static void evt2_execute(void) {
threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriorityX() - 1,
thread2, "A");
m = chEvtWaitAll(5);
- test_assert_time_window(12, target_time, target_time + ALLOWED_DELAY);
+ test_assert_time_window(13, target_time, target_time + ALLOWED_DELAY);
m = chEvtGetAndClearEvents(ALL_EVENTS);
- test_assert(13, m == 0, "stuck event");
+ test_assert(14, m == 0, "stuck event");
test_wait_threads();
chEvtUnregister(&es1, &el1);
chEvtUnregister(&es2, &el2);
- test_assert(14, !chEvtIsListeningI(&es1), "stuck listener");
- test_assert(15, !chEvtIsListeningI(&es2), "stuck listener");
+ test_assert(15, !chEvtIsListeningI(&es1), "stuck listener");
+ test_assert(16, !chEvtIsListeningI(&es2), "stuck listener");
}
ROMCONST struct testcase testevt2 = {