/******************************************************************************* * Copyright (c) 2011 protos software gmbh (http://www.protos.de). * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * CONTRIBUTORS: * Thomas Schuetz (initial contribution) * *******************************************************************************/ #include "TestEtMessageQueue.h" #include "etUnit.h" #include "etMessageQueue.h" void TestEtMessageQueue_testPushPop(void){ etMessage msg1 = {NULL, 123, 456}; etMessage msg2 = {NULL, 222, 333}; etMessageQueue queue1; etMessageQueue_init(&queue1); etMessageQueue_push(&queue1, &msg1); etMessageQueue_push(&queue1, &msg2); EXPECT_EQUAL_INT16("etMessageQueue.size before", 2, queue1.size); EXPECT_EQUAL_INT16("etMessageQueue.highWaterMark before", 2, queue1.highWaterMark); etMessage* rcvMsg1 = etMessageQueue_pop(&queue1); etMessage* rcvMsg2 = etMessageQueue_pop(&queue1); EXPECT_EQUAL_INT16("etMessageQueue.size after", 0, queue1.size); EXPECT_EQUAL_INT16("etMessageQueue.highWaterMark after", 2, queue1.highWaterMark); EXPECT_EQUAL_INT16("rcvMsg1->address", 123, rcvMsg1->address); EXPECT_EQUAL_INT16("rcvMsg1->evtID", 456, rcvMsg1->evtID); EXPECT_EQUAL_PTR("rcvMsg1->next", NULL, rcvMsg1->next); EXPECT_EQUAL_INT16("rcvMsg2->address", 222, rcvMsg2->address); EXPECT_EQUAL_INT16("rcvMsg2->evtID", 333, rcvMsg2->evtID); EXPECT_EQUAL_PTR("rcvMsg2->next", NULL, rcvMsg2->next); EXPECT_EQUAL_PTR("etMessageQueue->first", NULL, queue1.first); EXPECT_EQUAL_PTR("etMessageQueue->last", NULL, queue1.last); etMessage* rcvMsg3 = etMessageQueue_pop(&queue1); EXPECT_EQUAL_PTR("etMessageQueue_pop if empty", NULL, rcvMsg3); } #define MAX 1000 void TestEtMessageQueue_testMassiveMessaging(void){ etMessage msgArray[MAX]; etMessageQueue queue1; etMessageQueue_init(&queue1); int16 i; for(i=0; i