From 1b5c72b57c67a5dac581061ea92f7234500b68f0 Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Wed, 10 Jul 2019 10:32:06 -0500 Subject: PEL: Add PEL section header structure A PEL is made up of sections, and every section has an 8B section header. This commit adds a SectionHeader structure that will represent that header. It will then be included in all upcoming PEL sections. Signed-off-by: Matt Spinler Change-Id: Ia5356560f49707e21aebca28f4a0b525aa24158d --- test/openpower-pels/Makefile.include | 10 +++++++- test/openpower-pels/section_header_test.cpp | 40 +++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 test/openpower-pels/section_header_test.cpp (limited to 'test/openpower-pels') diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include index a68b229..07e596d 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 \ + section_header_test \ stream_test additional_data_test_SOURCES = %reldir%/additional_data_test.cpp @@ -24,4 +25,11 @@ bcd_time_test_CXXFLAGS = $(test_cxxflags) bcd_time_test_LDADD = \ $(test_ldadd) \ $(top_builddir)/extensions/openpower-pels/bcd_time.o -bcd_time_test_LDFLAGS = $(test_ldflags) \ No newline at end of file +bcd_time_test_LDFLAGS = $(test_ldflags) + +section_header_test_SOURCES = \ + %reldir%/section_header_test.cpp +section_header_test_CPPFLAGS = $(test_cppflags) +section_header_test_CXXFLAGS = $(test_cxxflags) +section_header_test_LDADD = $(test_ldadd) +section_header_test_LDFLAGS = $(test_ldflags) \ No newline at end of file diff --git a/test/openpower-pels/section_header_test.cpp b/test/openpower-pels/section_header_test.cpp new file mode 100644 index 0000000..2d5827c --- /dev/null +++ b/test/openpower-pels/section_header_test.cpp @@ -0,0 +1,40 @@ + +#include "extensions/openpower-pels/section_header.hpp" + +#include + +using namespace openpower::pels; + +TEST(SectionHeaderTest, SizeTest) +{ + EXPECT_EQ(SectionHeader::flattenedSize(), 8); +} + +TEST(SectionHeaderTest, UnflattenTest) +{ + std::vector data{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}; + Stream reader{data}; + SectionHeader header; + + reader >> header; + + EXPECT_EQ(header.id, 0x1122); + EXPECT_EQ(header.size, 0x3344); + EXPECT_EQ(header.version, 0x55); + EXPECT_EQ(header.subType, 0x66); + EXPECT_EQ(header.componentID, 0x7788); +} + +TEST(SectionHeaderTest, FlattenTest) +{ + SectionHeader header{0xAABB, 0xCCDD, 0xEE, 0xFF, 0xA0A0}; + + std::vector data; + Stream writer{data}; + + writer << header; + + std::vector expected{0xAA, 0xBB, 0xCC, 0xDD, + 0xEE, 0xFF, 0xA0, 0xA0}; + EXPECT_EQ(data, expected); +} -- cgit v1.2.1