1 #include "extensions/openpower-pels/paths.hpp" 2 3 #include <filesystem> 4 #include <memory> 5 #include <vector> 6 7 #include <gtest/gtest.h> 8 9 /** 10 * @brief Test fixture to remove the pelID file that PELs use. 11 */ 12 class CleanLogID : public ::testing::Test 13 { 14 protected: 15 static void SetUpTestCase() 16 { 17 pelIDFile = openpower::pels::getPELIDFile(); 18 } 19 20 static void TearDownTestCase() 21 { 22 std::filesystem::remove_all( 23 std::filesystem::path{pelIDFile}.parent_path()); 24 } 25 26 static std::filesystem::path pelIDFile; 27 }; 28 29 class CleanPELFiles : public ::testing::Test 30 { 31 protected: 32 static void SetUpTestCase() 33 { 34 pelIDFile = openpower::pels::getPELIDFile(); 35 repoPath = openpower::pels::getPELRepoPath(); 36 } 37 38 static void TearDownTestCase() 39 { 40 std::filesystem::remove_all( 41 std::filesystem::path{pelIDFile}.parent_path()); 42 std::filesystem::remove_all(repoPath); 43 } 44 45 static std::filesystem::path pelIDFile; 46 static std::filesystem::path repoPath; 47 }; 48 49 /** 50 * @brief Tells the factory which PEL to create 51 */ 52 enum class TestPelType 53 { 54 pelSimple, 55 privateHeaderSimple, 56 userHeaderSimple 57 }; 58 59 /** 60 * @brief PEL data factory, for testing 61 * 62 * @param[in] type - the type of data to create 63 * 64 * @return std::unique_ptr<std::vector<uint8_t>> - the PEL data 65 */ 66 std::unique_ptr<std::vector<uint8_t>> pelDataFactory(TestPelType type); 67 68 /** 69 * @brief Helper function to read raw PEL data from a file 70 * 71 * @param[in] path - the path to read 72 * 73 * @return std::unique_ptr<std::vector<uint8_t>> - the data from the file 74 */ 75 std::unique_ptr<std::vector<uint8_t>> 76 readPELFile(const std::filesystem::path& path); 77