aboutsummaryrefslogtreecommitdiffstats
path: root/test/testqueues.c
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-01-22 16:10:42 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-01-22 16:10:42 +0000
commit52d0114fdb2ea80c153988e3b7c36ddcfae80c14 (patch)
tree0a5af52727820779a1eaa6cba229021c9c064bb0 /test/testqueues.c
parent84e6b0ba72ef0f931d637497a748fe40923159b2 (diff)
downloadChibiOS-52d0114fdb2ea80c153988e3b7c36ddcfae80c14.tar.gz
ChibiOS-52d0114fdb2ea80c153988e3b7c36ddcfae80c14.tar.bz2
ChibiOS-52d0114fdb2ea80c153988e3b7c36ddcfae80c14.zip
Coverage improvements.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2676 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'test/testqueues.c')
-rw-r--r--test/testqueues.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/test/testqueues.c b/test/testqueues.c
index 9d76d7ac7..dd4d00fba 100644
--- a/test/testqueues.c
+++ b/test/testqueues.c
@@ -83,6 +83,13 @@ static void queues1_setup(void) {
chIQInit(&iq, wa[0], TEST_QUEUES_SIZE, notify);
}
+static msg_t thread1(void *p) {
+
+ (void)p;
+ chIQGetTimeout(&iq, MS2ST(200));
+ return 0;
+}
+
static void queues1_execute(void) {
unsigned i;
size_t n;
@@ -125,10 +132,13 @@ static void queues1_execute(void) {
/* Testing reset */
chIQPutI(&iq, 0);
chIQResetI(&iq);
- test_assert(11, chIQIsEmptyI(&iq), "still full");
+ test_assert(11, chIQGetFullI(&iq) == 0, "still full");
+ threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriority()+1, thread1, NULL);
+ test_assert(12, chIQGetFullI(&iq) == 0, "not empty");
+ test_wait_threads();
/* Timeout */
- test_assert(12, chIQGetTimeout(&iq, 10) == Q_TIMEOUT, "wrong timeout return");
+ test_assert(13, chIQGetTimeout(&iq, 10) == Q_TIMEOUT, "wrong timeout return");
}
ROMCONST struct testcase testqueues1 = {
@@ -152,6 +162,13 @@ static void queues2_setup(void) {
chOQInit(&oq, wa[0], TEST_QUEUES_SIZE, notify);
}
+static msg_t thread2(void *p) {
+
+ (void)p;
+ chOQPutTimeout(&oq, 0, MS2ST(200));
+ return 0;
+}
+
static void queues2_execute(void) {
unsigned i;
size_t n;
@@ -175,20 +192,23 @@ static void queues2_execute(void) {
n = chOQWriteTimeout(&oq, wa[1], TEST_QUEUES_SIZE * 2, TIME_IMMEDIATE);
test_assert(6, n == TEST_QUEUES_SIZE, "wrong returned size");
test_assert(7, chOQIsFullI(&oq), "not full");
+ threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriority()+1, thread2, NULL);
+ test_assert(8, chOQGetFullI(&oq) == TEST_QUEUES_SIZE, "not empty");
+ test_wait_threads();
/* Testing reset */
chOQResetI(&oq);
- test_assert(8, chOQIsEmptyI(&oq), "still full");
+ test_assert(9, chOQGetFullI(&oq) == 0, "still full");
/* Partial writes */
n = chOQWriteTimeout(&oq, wa[1], TEST_QUEUES_SIZE / 2, TIME_IMMEDIATE);
- test_assert(9, n == TEST_QUEUES_SIZE / 2, "wrong returned size");
- n = chOQWriteTimeout(&oq, wa[1], TEST_QUEUES_SIZE / 2, TIME_IMMEDIATE);
test_assert(10, n == TEST_QUEUES_SIZE / 2, "wrong returned size");
- test_assert(11, chOQIsFullI(&oq), "not full");
+ n = chOQWriteTimeout(&oq, wa[1], TEST_QUEUES_SIZE / 2, TIME_IMMEDIATE);
+ test_assert(11, n == TEST_QUEUES_SIZE / 2, "wrong returned size");
+ test_assert(12, chOQIsFullI(&oq), "not full");
/* Timeout */
- test_assert(12, chOQPutTimeout(&oq, 0, 10) == Q_TIMEOUT, "wrong timeout return");
+ test_assert(13, chOQPutTimeout(&oq, 0, 10) == Q_TIMEOUT, "wrong timeout return");
}
ROMCONST struct testcase testqueues2 = {