tests: msg_send_receive: fix "sent ptr goes out of scope" bug

This commit is contained in:
Kaspar Schleiser 2016-07-27 17:06:08 +02:00
parent 5c373776b3
commit e8927388d3

View File

@ -37,23 +37,26 @@ static char thread2_stack[THREAD2_STACKSIZE];
static kernel_pid_t thread1_pid, thread2_pid; static kernel_pid_t thread1_pid, thread2_pid;
static int counter1 = 0;
static int counter2 = 0;
static void *thread1(void *args) static void *thread1(void *args)
{ {
(void)args; (void)args;
msg_t msg_req, msg_resp; msg_t msg_req, msg_resp;
int counter = 0, success = 1; int success = 1;
msg_resp.content.ptr = NULL; msg_resp.content.ptr = NULL;
msg_req.content.ptr = &counter; msg_req.content.ptr = &counter1;
for (int i = 0; i < TEST_EXECUTION_NUM; i++) { for (int i = 0; i < TEST_EXECUTION_NUM; i++) {
msg_send_receive(&msg_req, &msg_resp, thread2_pid); msg_send_receive(&msg_req, &msg_resp, thread2_pid);
if ((NULL == msg_resp.content.ptr) || if ((NULL == msg_resp.content.ptr) ||
(&counter != ((int *) msg_req.content.ptr)) || (&counter1 != ((int *) msg_req.content.ptr)) ||
(counter != (*(int *) msg_resp.content.ptr)) || (counter1 != (*(int *) msg_resp.content.ptr)) ||
(counter != (*(int *) msg_req.content.ptr))) { (counter1 != (*(int *) msg_req.content.ptr))) {
success = 0; success = 0;
break; break;
} }
@ -74,9 +77,8 @@ static void *thread2(void *args)
(void)args; (void)args;
msg_t msg_req, msg_resp; msg_t msg_req, msg_resp;
int counter = 0;
msg_resp.content.ptr = &counter; msg_resp.content.ptr = &counter2;
for (int i = 0; i < TEST_EXECUTION_NUM; i++) { for (int i = 0; i < TEST_EXECUTION_NUM; i++) {
msg_receive(&msg_req); msg_receive(&msg_req);