use new storage manager mock
fsfw/fsfw/pipeline/pr-development This commit looks good Details

This commit is contained in:
Robin Müller 2022-08-09 12:50:50 +02:00
parent 22e1555f50
commit 192956c2c7
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
3 changed files with 19 additions and 4 deletions

View File

@ -5,10 +5,11 @@
#include "fsfw/storagemanager/LocalPool.h"
#include "mocks/AcceptsTcMock.h"
#include "mocks/MessageQueueMock.h"
#include "mocks/StorageManagerMock.h"
TEST_CASE("CFDP Distributor", "[cfdp][distributor]") {
LocalPool::LocalPoolConfig cfg = {{5, 32}, {2, 64}};
LocalPool pool(objects::NO_OBJECT, cfg);
StorageManagerMock pool(objects::NO_OBJECT, cfg);
auto queue = MessageQueueMock(1);
CfdpDistribCfg distribCfg(1, pool, &queue);
auto distributor = CfdpDistributor(distribCfg);
@ -42,7 +43,7 @@ TEST_CASE("CFDP Distributor", "[cfdp][distributor]") {
CHECK(distributor.registerTcDestination(obswEntityId, tcAcceptor) == result::OK);
size_t serLen = 0;
store_address_t storeId;
CHECK(pool.getFreeElement(&storeId, creator.getSerializedSize(), &dataPtr) == result::OK);
CHECK(pool.LocalPool::getFreeElement(&storeId, creator.getSerializedSize(), &dataPtr) == result::OK);
REQUIRE(creator.SerializeIF::serializeBe(dataPtr, serLen, creator.getSerializedSize()) ==
result::OK);
TmTcMessage msg(storeId);

View File

@ -37,10 +37,15 @@ ReturnValue_t StorageManagerMock::modifyData(store_address_t packet_id, uint8_t
}
return LocalPool::modifyData(packet_id, packet_ptr, size);
}
ReturnValue_t StorageManagerMock::getFreeElement(store_address_t *storageId, size_t size,
uint8_t **p_data, bool ignoreFault) {
return 0;
if (nextFreeElementCallFails.first) {
return nextFreeElementCallFails.second;
}
return LocalPool::getFreeElement(storageId, size, p_data, ignoreFault);
}
bool StorageManagerMock::hasDataAtId(store_address_t storeId) const {
return LocalPool::hasDataAtId(storeId);
}
@ -74,4 +79,11 @@ void StorageManagerMock::reset() {
nextGetDataCallFails.second = result::OK;
nextDeleteDataCallFails.first = false;
nextDeleteDataCallFails.second = result::OK;
nextFreeElementCallFails.first = false;
nextFreeElementCallFails.second = result::OK;
}
StorageManagerMock::StorageManagerMock(object_id_t setObjectId,
const LocalPool::LocalPoolConfig &poolConfig)
: LocalPool(setObjectId, poolConfig) {
}

View File

@ -6,6 +6,8 @@
class StorageManagerMock: public LocalPool {
public:
StorageManagerMock(object_id_t setObjectId, const LocalPoolConfig& poolConfig);
ReturnValue_t addData(store_address_t *storageId, const uint8_t *data, size_t size,
bool ignoreFault) override;
ReturnValue_t deleteData(store_address_t packet_id) override;
@ -26,7 +28,7 @@ class StorageManagerMock: public LocalPool {
std::pair<bool, ReturnValue_t> nextModifyDataCallFails;
std::pair<bool, ReturnValue_t> nextGetDataCallFails;
std::pair<bool, ReturnValue_t> nextDeleteDataCallFails;
std::pair<bool, ReturnValue_t> nextFreeElementCallFails;
void reset();
};
#endif // FSFW_TESTS_STORAGEMANAGERMOCK_H