Added more coverage and Documentation
All checks were successful
fsfw/fsfw/pipeline/pr-development This commit looks good
All checks were successful
fsfw/fsfw/pipeline/pr-development This commit looks good
This commit is contained in:
parent
2cb254a556
commit
d6508e23b6
@ -1,22 +1,34 @@
|
|||||||
#ifndef INTERNALERRORREPORTERIF_H_
|
#ifndef INTERNALERRORREPORTERIF_H_
|
||||||
#define INTERNALERRORREPORTERIF_H_
|
#define INTERNALERRORREPORTERIF_H_
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Interface which is used to report internal errors like full message queues or stores.
|
||||||
|
* @details
|
||||||
|
* This interface smust be used for the InteralErrorReporter object.
|
||||||
|
* It should be used to indicate that there was a Problem with Queues or Stores.
|
||||||
|
*
|
||||||
|
* It can be used to report missing Telemetry which could not be sent due to a internal problem.
|
||||||
|
*
|
||||||
|
*/
|
||||||
class InternalErrorReporterIF {
|
class InternalErrorReporterIF {
|
||||||
public:
|
public:
|
||||||
virtual ~InternalErrorReporterIF() {}
|
virtual ~InternalErrorReporterIF() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thread safe
|
* @brief Function to be called if a message queue could not be sent.
|
||||||
|
* @details OSAL Implementations should call this function to indicate that
|
||||||
|
* a message was lost.
|
||||||
|
*
|
||||||
|
* Implementations are required to be Thread safe
|
||||||
*/
|
*/
|
||||||
virtual void queueMessageNotSent() = 0;
|
virtual void queueMessageNotSent() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thread safe
|
* @brief Function to be called if Telemetry could not be sent
|
||||||
|
* @details Implementations must be Thread safe
|
||||||
*/
|
*/
|
||||||
virtual void lostTm() = 0;
|
virtual void lostTm() = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thread safe
|
* @brief Function to be called if a onboard storage is full
|
||||||
|
* @details Implementations must be Thread safe
|
||||||
*/
|
*/
|
||||||
virtual void storeFull() = 0;
|
virtual void storeFull() = 0;
|
||||||
};
|
};
|
||||||
|
@ -98,6 +98,20 @@ TEST_CASE("Internal Error Reporter", "[TestInternalError]") {
|
|||||||
REQUIRE(dataset.tmHits.value == (lostTm + 1));
|
REQUIRE(dataset.tmHits.value == (lostTm + 1));
|
||||||
REQUIRE(dataset.storeHits.value == (storeHits + 1));
|
REQUIRE(dataset.storeHits.value == (storeHits + 1));
|
||||||
}
|
}
|
||||||
|
// Complete Coverage
|
||||||
|
internalErrorReporter->setDiagnosticPrintout(true);
|
||||||
|
internalErrorReporter->setMutexTimeout(MutexIF::TimeoutType::BLOCKING, 0);
|
||||||
|
{
|
||||||
|
// Message Queue Id
|
||||||
|
MessageQueueId_t id = internalErrorReporter->getCommandQueue();
|
||||||
|
REQUIRE(id != MessageQueueIF::NO_QUEUE);
|
||||||
|
CommandMessage message;
|
||||||
|
sid_t sid(objects::INTERNAL_ERROR_REPORTER, InternalErrorDataset::ERROR_SET_ID);
|
||||||
|
HousekeepingMessage::setToggleReportingCommand(&message, sid, true, false);
|
||||||
|
result = hkQueue->sendMessage(id, &message);
|
||||||
|
REQUIRE(result == HasReturnvaluesIF::RETURN_OK);
|
||||||
|
internalErrorReporter->performOperation(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QueueFactory::instance()->deleteMessageQueue(testQueue);
|
QueueFactory::instance()->deleteMessageQueue(testQueue);
|
||||||
QueueFactory::instance()->deleteMessageQueue(hkQueue);
|
QueueFactory::instance()->deleteMessageQueue(hkQueue);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user