#include "fsfw-tests/internal/osal/IntTestMq.h" #include "fsfw-tests/internal/UnittDefinitions.h" #include #include #include using retval = HasReturnvaluesIF; void testmq::testMq() { std::string id = "[testMq]"; MessageQueueIF* testSenderMq = QueueFactory::instance()->createMessageQueue(1); MessageQueueId_t testSenderMqId = testSenderMq->getId(); MessageQueueIF* testReceiverMq = QueueFactory::instance()->createMessageQueue(1); MessageQueueId_t testReceiverMqId = testReceiverMq->getId(); std::array testData { 0 }; testData[0] = 42; MessageQueueMessage testMessage(testData.data(), 1); testSenderMq->setDefaultDestination(testReceiverMqId); auto result = testSenderMq->sendMessage(testReceiverMqId, &testMessage); if(result != retval::RETURN_OK) { unitt::put_error(id); } MessageQueueMessage recvMessage; result = testReceiverMq->receiveMessage(&recvMessage); if(result != retval::RETURN_OK or recvMessage.getData()[0] != 42) { unitt::put_error(id); } result = testSenderMq->sendMessage(testReceiverMqId, &testMessage); if(result != retval::RETURN_OK) { unitt::put_error(id); } MessageQueueId_t senderId = 0; result = testReceiverMq->receiveMessage(&recvMessage,&senderId); if(result != retval::RETURN_OK or recvMessage.getData()[0] != 42) { unitt::put_error(id); } if(senderId != testSenderMqId) { unitt::put_error(id); } senderId = testReceiverMq->getLastPartner(); if(senderId != testSenderMqId) { unitt::put_error(id); } }