Signed-off-by: Philippe Gerum <r...@xenomai.org> --- lib/alchemy/testsuite/mq-2.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/lib/alchemy/testsuite/mq-2.c b/lib/alchemy/testsuite/mq-2.c index 3a631e4d7..9fea471b7 100644 --- a/lib/alchemy/testsuite/mq-2.c +++ b/lib/alchemy/testsuite/mq-2.c @@ -8,11 +8,11 @@ static struct traceobj trobj; static int tseq[] = { 3, 4, 5, 6, - 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 7, }; -#define NMESSAGES ((sizeof(messages) / sizeof(messages[0])) - 1) +#define NMESSAGES (sizeof(messages) / sizeof(messages[0])) static int messages[] = { 0xfafafafa, @@ -25,7 +25,6 @@ static int messages[] = { 0x78787878, 0xdededede, 0xbcbcbcbc, - 0x0 }; RT_QUEUE q; @@ -41,9 +40,9 @@ static void peer_task(void *arg) traceobj_mark(&trobj, 1); ret = rt_queue_read(&q, &msg, sizeof(msg), TM_NONBLOCK); traceobj_assert(&trobj, ret == sizeof(msg)); - traceobj_assert(&trobj, msg == messages[NMESSAGES - n]); + traceobj_assert(&trobj, msg == messages[NMESSAGES - n - 1]); traceobj_mark(&trobj, 2); - } while (n++ < NMESSAGES); + } while (n++ < NMESSAGES - 1); traceobj_exit(&trobj); } @@ -56,7 +55,7 @@ static void main_task(void *arg) traceobj_enter(&trobj); - ret = rt_queue_create(&q, "QUEUE", sizeof(messages), NMESSAGES, Q_PRIO); + ret = rt_queue_create(&q, "QUEUE", sizeof(messages), NMESSAGES - 1, Q_PRIO); traceobj_check(&trobj, ret, 0); traceobj_mark(&trobj, 3); @@ -72,11 +71,11 @@ static void main_task(void *arg) traceobj_mark(&trobj, 5); n = 0; - do - ret = rt_queue_write(&q, &messages[n], sizeof(int), Q_URGENT); - while (n++ < NMESSAGES && ret >= 0); + do { + ret = rt_queue_write(&q, &messages[n], sizeof(int), Q_URGENT); /* LIFO */ + } while (++n < NMESSAGES && ret >= 0); - traceobj_assert(&trobj, ret == -ENOMEM && n == NMESSAGES + 1); + traceobj_assert(&trobj, ret == -ENOMEM && n == NMESSAGES); traceobj_mark(&trobj, 6); -- 2.21.0