test bugfixes and new reset function
This commit is contained in:
parent
d79f0e1172
commit
828115a566
@ -1,8 +1,11 @@
|
|||||||
#include "LocalPoolOwnerBase.h"
|
#include "LocalPoolOwnerBase.h"
|
||||||
|
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
#include <catch2/catch_approx.hpp>
|
||||||
|
|
||||||
#include <fsfw/datapoollocal/HasLocalDataPoolIF.h>
|
#include <fsfw/datapoollocal/HasLocalDataPoolIF.h>
|
||||||
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
||||||
|
#include <fsfw/datapool/PoolReadHelper.h>
|
||||||
#include <unittest/core/CatchDefinitions.h>
|
#include <unittest/core/CatchDefinitions.h>
|
||||||
|
|
||||||
TEST_CASE("LocalDataSet" , "[LocDataSetTest]") {
|
TEST_CASE("LocalDataSet" , "[LocDataSetTest]") {
|
||||||
@ -12,10 +15,49 @@ TEST_CASE("LocalDataSet" , "[LocDataSetTest]") {
|
|||||||
REQUIRE(poolOwner->initializeHkManager() == retval::CATCH_OK);
|
REQUIRE(poolOwner->initializeHkManager() == retval::CATCH_OK);
|
||||||
REQUIRE(poolOwner->initializeHkManagerAfterTaskCreation()
|
REQUIRE(poolOwner->initializeHkManagerAfterTaskCreation()
|
||||||
== retval::CATCH_OK);
|
== retval::CATCH_OK);
|
||||||
|
LocalPoolStaticTestDataSet localSet;
|
||||||
//const uint32_t setId = 0;
|
//const uint32_t setId = 0;
|
||||||
SECTION("BasicTest") {
|
SECTION("BasicTest") {
|
||||||
LocalPoolStaticTestDataSet localSet;
|
{
|
||||||
|
PoolReadHelper readHelper(&localSet);
|
||||||
|
REQUIRE(readHelper.getReadResult() == retval::CATCH_OK);
|
||||||
|
CHECK(not localSet.isValid());
|
||||||
|
CHECK(localSet.localPoolVarUint8.value == 0);
|
||||||
|
CHECK(not localSet.localPoolVarUint8.isValid());
|
||||||
|
CHECK(localSet.localPoolVarFloat.value == Catch::Approx(0.0));
|
||||||
|
CHECK(not localSet.localPoolVarUint8.isValid());
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[0] == 0);
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[1] == 0);
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[2] == 0);
|
||||||
|
CHECK(not localSet.localPoolVarUint8.isValid());
|
||||||
|
|
||||||
|
localSet.localPoolVarUint8 = 232;
|
||||||
|
localSet.localPoolVarFloat = -2324.322;
|
||||||
|
localSet.localPoolUint16Vec.value[0] = 232;
|
||||||
|
localSet.localPoolUint16Vec.value[1] = 23923;
|
||||||
|
localSet.localPoolUint16Vec.value[2] = 1;
|
||||||
|
localSet.setValidity(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
PoolReadHelper readHelper(&localSet);
|
||||||
|
REQUIRE(readHelper.getReadResult() == retval::CATCH_OK);
|
||||||
|
CHECK(localSet.isValid());
|
||||||
|
CHECK(localSet.localPoolVarUint8.value == 232);
|
||||||
|
CHECK(localSet.localPoolVarUint8.isValid());
|
||||||
|
CHECK(localSet.localPoolVarFloat.value == Catch::Approx(-2324.322));
|
||||||
|
CHECK(localSet.localPoolVarUint8.isValid());
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[0] == 232);
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[1] == 23923);
|
||||||
|
CHECK(localSet.localPoolUint16Vec.value[2] == 1);
|
||||||
|
CHECK(localSet.localPoolVarUint8.isValid());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* we need to reset the subscription list because the pool owner
|
||||||
|
is a global object. */
|
||||||
|
CHECK(poolOwner->reset() == retval::CATCH_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ TEST_CASE("LocalPoolManagerTest" , "[LocManTest]") {
|
|||||||
|
|
||||||
/* we need to reset the subscription list because the pool owner
|
/* we need to reset the subscription list because the pool owner
|
||||||
is a global object. */
|
is a global object. */
|
||||||
poolOwner->resetSubscriptionList();
|
CHECK(poolOwner->reset() == retval::CATCH_OK);
|
||||||
mqMock->clearMessages(true);
|
mqMock->clearMessages(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <testcfg/objects/systemObjectList.h>
|
#include <testcfg/objects/systemObjectList.h>
|
||||||
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
||||||
#include <fsfw/unittest/tests/mocks/MessageQueueMockBase.h>
|
#include <fsfw/unittest/tests/mocks/MessageQueueMockBase.h>
|
||||||
|
#include "../../../datapool/PoolReadHelper.h"
|
||||||
|
|
||||||
namespace lpool {
|
namespace lpool {
|
||||||
static constexpr lp_id_t uint8VarId = 0;
|
static constexpr lp_id_t uint8VarId = 0;
|
||||||
@ -187,6 +188,43 @@ public:
|
|||||||
MessageQueueIF::NO_QUEUE, objects::HK_RECEIVER_MOCK, false);
|
MessageQueueIF::NO_QUEUE, objects::HK_RECEIVER_MOCK, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReturnValue_t reset() {
|
||||||
|
resetSubscriptionList();
|
||||||
|
ReturnValue_t status = HasReturnvaluesIF::RETURN_OK;
|
||||||
|
{
|
||||||
|
PoolReadHelper readHelper(&dataset);
|
||||||
|
if(readHelper.getReadResult() != HasReturnvaluesIF::RETURN_OK) {
|
||||||
|
status = readHelper.getReadResult();
|
||||||
|
}
|
||||||
|
dataset.localPoolVarUint8.value = 0;
|
||||||
|
dataset.localPoolVarFloat.value = 0.0;
|
||||||
|
dataset.localPoolUint16Vec.value[0] = 0;
|
||||||
|
dataset.localPoolUint16Vec.value[1] = 0;
|
||||||
|
dataset.localPoolUint16Vec.value[2] = 0;
|
||||||
|
dataset.setValidity(false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
PoolReadHelper readHelper(&testUint32);
|
||||||
|
if(readHelper.getReadResult() != HasReturnvaluesIF::RETURN_OK) {
|
||||||
|
status = readHelper.getReadResult();
|
||||||
|
}
|
||||||
|
testUint32.value = 0;
|
||||||
|
testUint32.setValid(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
PoolReadHelper readHelper(&testInt64Vec);
|
||||||
|
if(readHelper.getReadResult() != HasReturnvaluesIF::RETURN_OK) {
|
||||||
|
status = readHelper.getReadResult();
|
||||||
|
}
|
||||||
|
testInt64Vec.value[0] = 0;
|
||||||
|
testInt64Vec.value[1] = 0;
|
||||||
|
testInt64Vec.setValid(false);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
void resetSubscriptionList() {
|
void resetSubscriptionList() {
|
||||||
poolManager.clearReceiversList();
|
poolManager.clearReceiversList();
|
||||||
}
|
}
|
||||||
@ -195,14 +233,12 @@ public:
|
|||||||
LocalPoolTestDataSet dataset;
|
LocalPoolTestDataSet dataset;
|
||||||
private:
|
private:
|
||||||
|
|
||||||
lp_var_t<uint8_t> testUint8 = lp_var_t<uint8_t>(this, lpool::uint8VarId,
|
lp_var_t<uint8_t> testUint8 = lp_var_t<uint8_t>(this, lpool::uint8VarId);
|
||||||
&dataset);
|
lp_var_t<float> testFloat = lp_var_t<float>(this, lpool::floatVarId);
|
||||||
lp_var_t<float> testFloat = lp_var_t<float>(this, lpool::floatVarId,
|
|
||||||
&dataset);
|
|
||||||
lp_var_t<uint32_t> testUint32 = lp_var_t<uint32_t>(this, lpool::uint32VarId);
|
lp_var_t<uint32_t> testUint32 = lp_var_t<uint32_t>(this, lpool::uint32VarId);
|
||||||
|
|
||||||
lp_vec_t<uint16_t, 3> testUint16Vec = lp_vec_t<uint16_t, 3>(this,
|
lp_vec_t<uint16_t, 3> testUint16Vec = lp_vec_t<uint16_t, 3>(this,
|
||||||
lpool::uint16Vec3Id, &dataset);
|
lpool::uint16Vec3Id);
|
||||||
lp_vec_t<int64_t, 2> testInt64Vec = lp_vec_t<int64_t, 2>(this,
|
lp_vec_t<int64_t, 2> testInt64Vec = lp_vec_t<int64_t, 2>(this,
|
||||||
lpool::int64Vec2Id);
|
lpool::int64Vec2Id);
|
||||||
|
|
||||||
|
@ -118,6 +118,8 @@ TEST_CASE("LocalPoolVariable" , "[LocPoolVarTest]") {
|
|||||||
lpool::uint8VarId);
|
lpool::uint8VarId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CHECK(poolOwner->reset() == retval::CATCH_OK);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user