#include #include #include "fsfw/timemanager/Clock.h" uint8_t extractSuffix(const std::string& pathStr) { std::string numberStr; // Find the position of the dot at the end of the file path size_t dotPos = pathStr.find_last_of('.'); if (dotPos != std::string::npos && dotPos < pathStr.length() - 1) { // Extract the substring after the dot numberStr = pathStr.substr(dotPos + 1); } int number = std::stoi(numberStr); if (number < 0 or number > std::numeric_limits::max()) { return 0; } return static_cast(number); } TEST_CASE("Stamp in Filename", "[Stamp In Filename]") { Clock::TimeOfDay_t tod; std::string baseName = "verif"; std::string pathStr = "verif_2022-05-25T16:55:23Z.bin"; unsigned int underscorePos = pathStr.find_last_of('_'); std::string stampStr = pathStr.substr(underscorePos + 1); float seconds = 0.0; char* prefix = nullptr; int count = sscanf(stampStr.c_str(), "%4" SCNu32 "-%2" SCNu32 "-%2" SCNu32 "T%2" SCNu32 ":%2" SCNu32 ":%2" SCNu32 "Z", &tod.year, &tod.month, &tod.day, &tod.hour, &tod.minute, &tod.second); static_cast(count); CHECK(count == 6); } TEST_CASE("Suffix Extraction") { std::string pathStr = "/mnt/sd0/tm/hk/hk-some-stamp.bin.0"; CHECK(extractSuffix(pathStr) == 0); pathStr = "/mnt/sd0/tm/hk/hk-some-stamp.bin.2"; CHECK(extractSuffix(pathStr) == 2); }