diff options
Diffstat (limited to 'test/openpower-pels/pel_utils.hpp')
-rw-r--r-- | test/openpower-pels/pel_utils.hpp | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/test/openpower-pels/pel_utils.hpp b/test/openpower-pels/pel_utils.hpp new file mode 100644 index 0000000..fae62cd --- /dev/null +++ b/test/openpower-pels/pel_utils.hpp @@ -0,0 +1,106 @@ +#include "extensions/openpower-pels/paths.hpp" + +#include <filesystem> +#include <memory> +#include <vector> + +#include <gtest/gtest.h> + +/** + * @brief Test fixture to remove the pelID file that PELs use. + */ +class CleanLogID : public ::testing::Test +{ + protected: + static void SetUpTestCase() + { + pelIDFile = openpower::pels::getPELIDFile(); + } + + static void TearDownTestCase() + { + std::filesystem::remove_all( + std::filesystem::path{pelIDFile}.parent_path()); + } + + static std::filesystem::path pelIDFile; +}; + +class CleanPELFiles : public ::testing::Test +{ + protected: + void SetUp() override + { + pelIDFile = openpower::pels::getPELIDFile(); + repoPath = openpower::pels::getPELRepoPath(); + registryPath = openpower::pels::getMessageRegistryPath(); + } + + void TearDown() override + { + std::filesystem::remove_all( + std::filesystem::path{pelIDFile}.parent_path()); + std::filesystem::remove_all(repoPath); + std::filesystem::remove_all(registryPath); + } + + static std::filesystem::path pelIDFile; + static std::filesystem::path repoPath; + static std::filesystem::path registryPath; +}; + +/** + * @brief Tells the factory which PEL to create + */ +enum class TestPELType +{ + pelSimple, + privateHeaderSection, + userHeaderSection, + primarySRCSection, + primarySRCSection2Callouts, + failingMTMSSection +}; + +/** + * @brief Tells the SRC factory which data to create + */ +enum class TestSRCType +{ + fruIdentityStructure, + pceIdentityStructure, + mruStructure, + calloutStructureA, + calloutStructureB, + calloutSection2Callouts +}; + +/** + * @brief PEL data factory, for testing + * + * @param[in] type - the type of data to create + * + * @return std::vector<uint8_t> - the PEL data + */ +std::vector<uint8_t> pelDataFactory(TestPELType type); + +/** + * @brief SRC data factory, for testing + * + * Provides pieces of the SRC PEL section, such as a callout. + * + * @param[in] type - the type of data to create + * + * @return std::vector<uint8_t> - The SRC data + */ +std::vector<uint8_t> srcDataFactory(TestSRCType type); + +/** + * @brief Helper function to read raw PEL data from a file + * + * @param[in] path - the path to read + * + * @return std::unique_ptr<std::vector<uint8_t>> - the data from the file + */ +std::unique_ptr<std::vector<uint8_t>> + readPELFile(const std::filesystem::path& path); |