dummy devices for hosted build, adaptions to run thermal controller unit test

This commit is contained in:
2022-06-16 07:00:09 +02:00
parent eff80a58ee
commit bd11d13b99
19 changed files with 204 additions and 375 deletions

View File

@ -1,5 +1,9 @@
#include <dummies/SusDummy.h>
#include <dummies/TemperatureSensorsDummy.h>
#include <fsfw/ipc/QueueFactory.h>
#include <mission/controller/ThermalController.h>
#include <fsfw/tasks/PeriodicTaskIF.h>
#include <fsfw/tasks/TaskFactory.h>
#include <catch2/catch_test_macros.hpp>
@ -8,10 +12,20 @@
TEST_CASE("Thermal Controller", "[ThermalController]") {
const object_id_t THERMAL_CONTROLLER_ID = 0x123;
ThermalController controller(THERMAL_CONTROLLER_ID, objects::NO_OBJECT);
new TemperatureSensorsDummy();
new SusDummy();
testEnvironment::initialize();
ThermalController controller(THERMAL_CONTROLLER_ID, objects::NO_OBJECT);
ReturnValue_t result = controller.initialize();
REQUIRE(result == HasReturnvaluesIF::RETURN_OK);
PeriodicTaskIF* thermalTask = TaskFactory::instance()->createPeriodicTask(
"THERMAL_CTL_TASK", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, nullptr);
result = thermalTask->addComponent(THERMAL_CONTROLLER_ID);
REQUIRE(result == HasReturnvaluesIF::RETURN_OK);
REQUIRE(controller.initializeAfterTaskCreation() == HasReturnvaluesIF::RETURN_OK);
testEnvironment::eventManager->clearEventList();
@ -34,12 +48,5 @@ TEST_CASE("Thermal Controller", "[ThermalController]") {
THERMAL_CONTROLLER_ID, HasModesIF::MODE_INFO, ControllerBase::MODE_NORMAL,
HasModesIF::SUBMODE_NONE) == true);
thermalControllerDefinitions::ComponentTemperatures componentTemperatures(THERMAL_CONTROLLER_ID);
componentTemperatures.read();
REQUIRE(componentTemperatures.rw == 0);
componentTemperatures.commit();
QueueFactory::instance()->deleteMessageQueue(commandQueue);
}

View File

@ -1,7 +1,12 @@
#include "HouseKeepingMock.h"
#include <fsfw/ipc/QueueFactory.h>
#include <fsfw/objectmanager/frameworkObjects.h>
HouseKeepingMock::HouseKeepingMock() : SystemObject(objects::PUS_SERVICE_3_HOUSEKEEPING) {}
HouseKeepingMock::HouseKeepingMock() : SystemObject(objects::PUS_SERVICE_3_HOUSEKEEPING) {
auto mqArgs = MqArgs(objects::PUS_SERVICE_3_HOUSEKEEPING, static_cast<void*>(this));
commandQueue = QueueFactory::instance()->createMessageQueue(
5, MessageQueueMessage::MAX_MESSAGE_SIZE, &mqArgs);
}
MessageQueueId_t HouseKeepingMock::getHkQueue() const { return MessageQueueIF::NO_QUEUE; }
MessageQueueId_t HouseKeepingMock::getHkQueue() const { return commandQueue->getId(); }

View File

@ -10,6 +10,9 @@ class HouseKeepingMock : public SystemObject, public AcceptsHkPacketsIF {
HouseKeepingMock();
virtual MessageQueueId_t getHkQueue() const;
private:
MessageQueueIF *commandQueue = nullptr;
};
#endif /*HOUSEKEEPINGMOCK_H_*/
#endif /*HOUSEKEEPINGMOCK_H_*/