metadata PDU seems to be correct
This commit is contained in:
@ -58,14 +58,10 @@ TEST_CASE("Reserved Message Parser", "[cfdp]") {
|
||||
REQUIRE(putRequest.deSerialize(&data, &dummy, SerializeIF::Endianness::MACHINE) == OK);
|
||||
CHECK(putRequest.getDestId().getValue() == entityId.getValue());
|
||||
CHECK(putRequest.getDestId().getWidth() == entityId.getWidth());
|
||||
size_t sourceNameSize = 0;
|
||||
auto& sourceNameLv = putRequest.getSourceName();
|
||||
const char* sourceString = sourceNameLv.getString(sourceNameSize);
|
||||
CHECK(sourceNameSize == srcFileName.size());
|
||||
CHECK(std::strncmp(sourceString, srcFileName.c_str(), sourceNameSize) == 0);
|
||||
size_t destNameSize = 0;
|
||||
std::string srcNameRead = sourceNameLv.getString();
|
||||
CHECK(srcNameRead == srcFileName);
|
||||
auto& destNameLv = putRequest.getDestName();
|
||||
const char* destString = destNameLv.getString(destNameSize);
|
||||
CHECK(destNameSize == destFileName.size());
|
||||
CHECK(std::strncmp(destString, destFileName.c_str(), destNameSize) == 0);
|
||||
std::string destNameRead = destNameLv.getString();
|
||||
CHECK(destNameRead == destFileName);
|
||||
}
|
||||
|
@ -54,18 +54,21 @@ TEST_CASE("CFDP Source Handler", "[cfdp]") {
|
||||
}
|
||||
|
||||
SECTION("Transfer empty file") {
|
||||
// using StorageManagerIF::getData;
|
||||
RemoteEntityCfg cfg;
|
||||
EntityId id(cfdp::WidthInBytes::ONE_BYTE, 5);
|
||||
EntityId id(cfdp::WidthInBytes::TWO_BYTES, 5);
|
||||
cfg.remoteId = id;
|
||||
FilesystemParams srcFileName("/tmp/cfdp-test.txt");
|
||||
fsMock.createFile(srcFileName);
|
||||
cfdp::StringLv srcNameLv(srcFileName.path, std::strlen(srcFileName.path));
|
||||
FilesystemParams destFileName("/tmp/cfdp-test2.txt");
|
||||
cfdp::StringLv destNameLv(destFileName.path, std::strlen(destFileName.path));
|
||||
std::string srcFileName = "/tmp/cfdp-test.txt";
|
||||
std::string destFileName = "/tmp/cfdp-test2.txt";
|
||||
FilesystemParams srcFileNameFs(srcFileName.c_str());
|
||||
fsMock.createFile(srcFileNameFs);
|
||||
cfdp::StringLv srcNameLv(srcFileNameFs.path, std::strlen(srcFileNameFs.path));
|
||||
FilesystemParams destFileNameFs(destFileName.c_str());
|
||||
cfdp::StringLv destNameLv(destFileNameFs.path, std::strlen(destFileNameFs.path));
|
||||
PutRequest putRequest(id, srcNameLv, destNameLv);
|
||||
CHECK(sourceHandler.transactionStart(putRequest, cfg) == OK);
|
||||
SourceHandler::FsmResult& fsmResult = sourceHandler.stateMachine();
|
||||
|
||||
// Verify metadata PDU was sent.
|
||||
CHECK(fsmResult.packetsSent == 1);
|
||||
CHECK(mqMock.numberOfSentMessages() == 1);
|
||||
TmTcMessage tmtcMessage;
|
||||
@ -76,12 +79,15 @@ TEST_CASE("CFDP Source Handler", "[cfdp]") {
|
||||
CHECK(accessor.second.size() == 55);
|
||||
MetadataGenericInfo metadataInfo;
|
||||
MetadataPduReader metadataReader(pduPtr, accessor.second.size(), metadataInfo, nullptr, 0);
|
||||
size_t srcFileSize = 0;
|
||||
arrayprinter::print(pduPtr, accessor.second.size());
|
||||
REQUIRE(metadataReader.parseData() == OK);
|
||||
const char* srcNameRead = metadataReader.getSourceFileName().getString(srcFileSize);
|
||||
REQUIRE(srcNameRead != nullptr);
|
||||
std::string srcNameReadStr(srcNameRead, srcFileSize);
|
||||
CHECK(std::string(srcFileName.path) == srcNameReadStr);
|
||||
std::string srcNameRead = metadataReader.getSourceFileName().getString();
|
||||
CHECK(srcNameRead == srcFileName);
|
||||
std::string destNameRead = metadataReader.getDestFileName().getString();
|
||||
CHECK(destNameRead == destFileName);
|
||||
CHECK(metadataInfo.getChecksumType() == ChecksumType::NULL_CHECKSUM);
|
||||
CHECK(metadataInfo.getFileSize().value() == 0);
|
||||
CHECK(!metadataInfo.isClosureRequested());
|
||||
|
||||
// Verify EOF PDU was sent. No file data PDU is sent for an empty file.
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user