#if !(UBINOS__UBIK_TEST__EXCLUDE_MSGQTESTSET == 1)
#include <stdio.h>
static void msgqtest01_task1func(void * arg) {
int r;
int i;
unsigned int waittick =
ubik_timemstotick(UBINOS__UBIK_TEST__TASKWAITTIMEMS * UBINOS__UBIK_TEST__TASKLOOPCOUNT);
unsigned char msg[UBINOS__UBIK_TEST__MSGQSIZE];
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
printf("task 1 tries to receive a message\r\n");
if (0 != r) {
printf("task 1: fail at msgq_receive(), err=%d\r\n", r);
goto end0;
}
printf("task 1 receives a message\r\n");
printf("task 1 wakes up\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
if (i+0x00 != msg[i]) {
printf("task 1: wrong message\r\n");
goto end0;
}
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
printf("\r\n");
printf("task 1 wakes up\r\n");
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
printf("task 1 tries to receive a message\r\n");
if (0 != r) {
printf("task 1: fail at msgq_receive(), err=%d\r\n", r);
goto end0;
}
printf("task 1 receives a message\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
if (i+0x10 != msg[i]) {
printf("task 1: wrong message\r\n");
goto end0;
}
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
printf("task 1 tries to receive a message\r\n");
if (0 != r) {
printf("task 1: fail at msgq_receive(), err=%d\r\n", r);
goto end0;
}
printf("task 1 receives a message\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
if (i+0x20 != msg[i]) {
printf("task 1: wrong message\r\n");
goto end0;
}
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
printf(
"task 1 tries to receive a message with timeout (for %d ms)\r\n",
ubik_ticktotimems(waittick));
printf("task 1: fail at msgq_receive_timed(), err=%d\r\n", r);
goto end0;
}
printf("\r\n");
printf("task 1 wakes up\r\n");
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("1");
}
printf("\r\n");
end0:
printf("task 1 ends\r\n");
}
static void msgqtest01_task2func(void * arg) {
int r;
int i;
unsigned char msg[UBINOS__UBIK_TEST__MSGQSIZE];
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("2");
}
printf("\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
msg[i] = i+0x00;
}
printf("task 2 sends a message\r\n");
if (0 != r) {
printf("task 2: fail at msgq_send(), err=%d\r\n", r);
goto end0;
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("2");
}
printf("\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
msg[i] = i+0x10;
}
printf("task 2 sends a message\r\n");
if (0 != r) {
printf("task 2: fail at msgq_send(), err=%d\r\n", r);
goto end0;
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 1; i++) {
printf("2");
}
printf("\r\n");
for (i=0; i<UBINOS__UBIK_TEST__MSGQSIZE; i++) {
msg[i] = i+0x20;
}
printf("task 2 sends a message\r\n");
if (0 != r) {
printf("task 2: fail at msgq_send(), err=%d\r\n", r);
goto end0;
}
for (i=0; i<UBINOS__UBIK_TEST__TASKLOOPCOUNT * 3; i++) {
printf("2");
}
printf("\r\n");
end0:
printf("task 2 ends\r\n");
}
int r;
int r2;
unsigned int count1;
unsigned int count2;
unsigned int sleepvalue =
ubik_timemstotick(UBINOS__UBIK_TEST__TASKWAITTIMEMS) * UBINOS__UBIK_TEST__TASKLOOPCOUNT / 3;
printf("\r\n");
printf("<test>\r\n");
printf("<name>ubik_test_msgqtest01</name>\r\n");
printf("<description>Test on basic functions of message queue</description>\n\r");
printf("<message>\n\r");
if (0 != r) {
printf("fail at msgq_create(), err=%d\r\n", r);
r = -1;
goto end0;
}
printf("create task 1\r\n");
if (0 != r) {
printf("fail at task_create(), err=%d\r\n", r);
r = -1;
goto end1;
}
printf("create task 2\r\n");
if (0 != r) {
printf("fail at task_create(), err=%d\r\n", r);
r = -1;
goto end2;
}
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 01: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 02: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 03: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 04: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 05: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 06: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 07: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 08: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 09: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 10: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 11: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
printf("\r\n");
printf("checking\r\n");
printf("\r\n");
printf("check point 12: ");
printf("fail\r\n");
r = -1;
goto end2;
}
printf("pass\r\n");
r = 0;
end2:
if (0 != r2) {
printf("fail at task_join(), err=%d\r\n", r2);
r = -1;
}
end1:
if (0 != r2) {
printf("fail at msgq_delete(), err=%d\r\n", r2);
r = -1;
}
end0:
r = -1;
}
else {
r = 0;
}
printf("</message>\n\r");
printf("<result>");
if (0 == r) {
printf("pass");
}
else {
printf("fail");
}
printf("</result>\r\n");
printf("</test>\r\n");
printf("\r\n");
return r;
}
#endif