diff --git a/test/openpower-pels/Makefile.include b/test/openpower-pels/Makefile.include
index e6f08e2..611a2fa 100644
--- a/test/openpower-pels/Makefile.include
+++ b/test/openpower-pels/Makefile.include
@@ -4,6 +4,7 @@
 	additional_data_test \
 	bcd_time_test \
 	failing_mtms_test \
+	generic_section_test \
 	log_id_test \
 	mtms_test \
 	pel_test \
@@ -155,3 +156,12 @@
 	$(test_ldflags) \
 	$(top_builddir)/extensions/openpower-pels/pel_values.o
 pel_values_test_LDFLAGS = $(test_ldflags)
+
+generic_section_test_SOURCES = \
+	%reldir%/generic_section_test.cpp %reldir%/pel_utils.cpp
+generic_section_test_CPPFLAGS = $(test_cppflags)
+generic_section_test_CXXFLAGS = $(test_cxxflags)
+generic_section_test_LDADD = \
+	$(test_ldadd) \
+	$(top_builddir)/extensions/openpower-pels/generic.o
+generic_section_test_LDFLAGS = $(test_ldflags)
diff --git a/test/openpower-pels/generic_section_test.cpp b/test/openpower-pels/generic_section_test.cpp
new file mode 100644
index 0000000..9fb6d9a
--- /dev/null
+++ b/test/openpower-pels/generic_section_test.cpp
@@ -0,0 +1,49 @@
+#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());
+}
