add fs mock feed function
This commit is contained in:
@ -1,7 +1,21 @@
|
||||
#include "FilesystemMock.h"
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
#include "fsfw/serialize/SerializeIF.h"
|
||||
|
||||
ReturnValue_t FilesystemMock::feedFile(const std::string &filename, std::ifstream &file) {
|
||||
if (not std::filesystem::exists(filename)) {
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
size_t fileSize = std::filesystem::file_size(filename);
|
||||
FileOpParams params(filename.c_str(), fileSize);
|
||||
std::vector<uint8_t> rawData(fileSize);
|
||||
file.read(reinterpret_cast<char *>(rawData.data()), static_cast<unsigned int>(rawData.size()));
|
||||
createOrAddToFile(params, rawData.data());
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t FilesystemMock::writeToFile(FileOpParams params, const uint8_t *data) {
|
||||
createOrAddToFile(params, data);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
@ -75,7 +89,9 @@ void FilesystemMock::createOrAddToFile(FileOpParams params, const uint8_t *data)
|
||||
auto iter = fileMap.find(filename);
|
||||
if (iter == fileMap.end()) {
|
||||
FileSegmentQueue queue;
|
||||
queue.push(FileWriteInfo(filename, params.offset, data, params.size));
|
||||
if (params.size > 0) {
|
||||
queue.push(FileWriteInfo(filename, params.offset, data, params.size));
|
||||
}
|
||||
FileInfo info;
|
||||
info.fileSegQueue = queue;
|
||||
if (data != nullptr) {
|
||||
@ -105,4 +121,6 @@ void FilesystemMock::createOrAddToFile(FileOpParams params, const uint8_t *data)
|
||||
void FilesystemMock::reset() {
|
||||
fileMap.clear();
|
||||
dirMap.clear();
|
||||
std::queue<RenameInfo> empty;
|
||||
std::swap(renameQueue, empty);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#ifndef FSFW_MOCKS_FILESYSTEMMOCK_H
|
||||
#define FSFW_MOCKS_FILESYSTEMMOCK_H
|
||||
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
#include <queue>
|
||||
#include <string>
|
||||
@ -53,6 +54,7 @@ class FilesystemMock : public HasFileSystemIF {
|
||||
};
|
||||
std::queue<RenameInfo> renameQueue;
|
||||
|
||||
ReturnValue_t feedFile(const std::string &filename, std::ifstream &file);
|
||||
ReturnValue_t writeToFile(FileOpParams params, const uint8_t *data) override;
|
||||
ReturnValue_t readFromFile(FileOpParams params, uint8_t **buffer, size_t &readSize,
|
||||
size_t maxSize) override;
|
||||
@ -64,6 +66,10 @@ class FilesystemMock : public HasFileSystemIF {
|
||||
|
||||
void reset();
|
||||
|
||||
using HasFileSystemIF::createDirectory;
|
||||
using HasFileSystemIF::createFile;
|
||||
using HasFileSystemIF::readFromFile;
|
||||
|
||||
private:
|
||||
void createOrAddToFile(FileOpParams params, const uint8_t *data);
|
||||
};
|
||||
|
Reference in New Issue
Block a user