| #include "extensions/openpower-pels/generic.hpp" |
| #include "pel_utils.hpp" |
| |
| #include <gtest/gtest.h> |
| |
| using namespace openpower::pels; |
| |
| TEST(GenericSectionTest, UnflattenFlattenTest) |
| { |
| // Use the private header data |
| auto data = pelDataFactory(TestPelType::privateHeaderSimple); |
| |
| Stream stream(*data); |
| Generic section(stream); |
| |
| EXPECT_EQ(section.header().id, 0x5048); |
| EXPECT_EQ(section.header().size, data->size()); |
| EXPECT_EQ(section.header().version, 0x01); |
| EXPECT_EQ(section.header().subType, 0x02); |
| EXPECT_EQ(section.header().componentID, 0x0304); |
| |
| const auto& sectionData = section.data(); |
| |
| // The data itself starts after the header |
| EXPECT_EQ(sectionData.size(), data->size() - 8); |
| |
| for (size_t i = 0; i < sectionData.size(); i++) |
| { |
| EXPECT_EQ(sectionData[i], (*data)[i + 8]); |
| } |
| |
| // Now flatten |
| std::vector<uint8_t> newData; |
| Stream newStream(newData); |
| section.flatten(newStream); |
| |
| EXPECT_EQ(*data, newData); |
| } |
| |
| TEST(GenericSectionTest, BadDataTest) |
| { |
| // Use the private header data to start with |
| auto data = pelDataFactory(TestPelType::privateHeaderSimple); |
| data->resize(4); |
| |
| Stream stream(*data); |
| Generic section(stream); |
| ASSERT_FALSE(section.valid()); |
| } |