diff options
Diffstat (limited to 'test/openpower-pels')
-rw-r--r-- | test/openpower-pels/Makefile.include | 10 | ||||
-rw-r--r-- | test/openpower-pels/log_id_test.cpp | 42 | ||||
-rw-r--r-- | test/openpower-pels/paths.cpp | 26 |
3 files changed, 78 insertions, 0 deletions
diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include index f860db2..0e0257c 100644 --- a/test/openpower-pels/Makefile.include +++ b/test/openpower-pels/Makefile.include @@ -3,6 +3,7 @@ TESTS += $(check_PROGRAMS) check_PROGRAMS += \ additional_data_test \ bcd_time_test \ + log_id_test \ private_header_test \ section_header_test \ stream_test \ @@ -58,3 +59,12 @@ user_header_test_LDADD = \ $(test_ldadd) \ $(pel_objects) user_header_test_LDFLAGS = $(test_ldflags) + +log_id_test_SOURCES = \ + %reldir%/log_id_test.cpp %reldir%/paths.cpp +log_id_test_CPPFLAGS = $(test_cppflags) +log_id_test_CXXFLAGS = $(test_cxxflags) +log_id_test_LDADD = \ + $(test_ldadd) \ + $(top_builddir)/extensions/openpower-pels/log_id.o +log_id_test_LDFLAGS = $(test_ldflags) diff --git a/test/openpower-pels/log_id_test.cpp b/test/openpower-pels/log_id_test.cpp new file mode 100644 index 0000000..e5f2632 --- /dev/null +++ b/test/openpower-pels/log_id_test.cpp @@ -0,0 +1,42 @@ +#include "extensions/openpower-pels/log_id.hpp" +#include "extensions/openpower-pels/paths.hpp" + +#include <arpa/inet.h> + +#include <filesystem> + +#include <gtest/gtest.h> + +using namespace openpower::pels; +namespace fs = std::filesystem; + +TEST(LogIdTest, TimeBasedIDTest) +{ + uint32_t lastID = 0; + for (int i = 0; i < 10; i++) + { + auto id = detail::getTimeBasedLogID(); + + EXPECT_EQ(id & 0xFF000000, 0x50000000); + EXPECT_NE(id, lastID); + lastID = id; + } +} + +TEST(LogIdTest, IDTest) +{ + EXPECT_EQ(generatePELID(), 0x50000001); + EXPECT_EQ(generatePELID(), 0x50000002); + EXPECT_EQ(generatePELID(), 0x50000003); + EXPECT_EQ(generatePELID(), 0x50000004); + EXPECT_EQ(generatePELID(), 0x50000005); + EXPECT_EQ(generatePELID(), 0x50000006); + + auto backingFile = getPELIDFile(); + fs::remove(backingFile); + EXPECT_EQ(generatePELID(), 0x50000001); + EXPECT_EQ(generatePELID(), 0x50000002); + EXPECT_EQ(generatePELID(), 0x50000003); + + fs::remove_all(fs::path{backingFile}.parent_path()); +} diff --git a/test/openpower-pels/paths.cpp b/test/openpower-pels/paths.cpp new file mode 100644 index 0000000..464b92c --- /dev/null +++ b/test/openpower-pels/paths.cpp @@ -0,0 +1,26 @@ +#include "extensions/openpower-pels/paths.hpp" + +#include <filesystem> + +namespace openpower +{ +namespace pels +{ + +// Use paths that work in unit tests. + +std::filesystem::path getPELIDFile() +{ + static std::string idFile; + + if (idFile.empty()) + { + char templ[] = "/tmp/logidtestXXXXXX"; + std::filesystem::path dir = mkdtemp(templ); + idFile = dir / "logid"; + } + return idFile; +} + +} // namespace pels +} // namespace openpower |