diff --git a/test/openpower-pels/pel_test.cpp b/test/openpower-pels/pel_test.cpp
index afab5ca..995f780 100644
--- a/test/openpower-pels/pel_test.cpp
+++ b/test/openpower-pels/pel_test.cpp
@@ -34,7 +34,6 @@
 TEST_F(PELTest, FlattenTest)
 {
     auto data = pelDataFactory(TestPELType::pelSimple);
-    auto origData = data;
     auto pel = std::make_unique<PEL>(data);
 
     // Check a few fields
@@ -46,7 +45,8 @@
 
     // Test that data in == data out
     auto flattenedData = pel->data();
-    ASSERT_EQ(origData, flattenedData);
+    EXPECT_EQ(data, flattenedData);
+    EXPECT_EQ(flattenedData.size(), pel->size());
 }
 
 TEST_F(PELTest, CommitTimeTest)
@@ -58,12 +58,12 @@
     pel->setCommitTime();
     auto newTime = pel->commitTime();
 
-    ASSERT_NE(origTime, newTime);
+    EXPECT_NE(origTime, newTime);
 
     // Make a new PEL and check new value is still there
     auto newData = pel->data();
     auto newPel = std::make_unique<PEL>(newData);
-    ASSERT_EQ(newTime, newPel->commitTime());
+    EXPECT_EQ(newTime, newPel->commitTime());
 }
 
 TEST_F(PELTest, AssignIDTest)
@@ -75,12 +75,12 @@
     pel->assignID();
     auto newID = pel->id();
 
-    ASSERT_NE(origID, newID);
+    EXPECT_NE(origID, newID);
 
     // Make a new PEL and check new value is still there
     auto newData = pel->data();
     auto newPel = std::make_unique<PEL>(newData);
-    ASSERT_EQ(newID, newPel->id());
+    EXPECT_EQ(newID, newPel->id());
 }
 
 TEST_F(PELTest, WithLogIDTest)
diff --git a/test/openpower-pels/pel_utils.cpp b/test/openpower-pels/pel_utils.cpp
index 18095a1..4560b2f 100644
--- a/test/openpower-pels/pel_utils.cpp
+++ b/test/openpower-pels/pel_utils.cpp
@@ -66,7 +66,7 @@
 const std::vector<uint8_t> srcSectionNoCallouts{
 
     // Header
-    'P', 'S', 0x00, 0x80, 0x01, 0x01, 0x02, 0x02,
+    'P', 'S', 0x00, 0x50, 0x01, 0x01, 0x02, 0x02,
 
     0x02, 0x00, 0x00, // version, flags, reserved
     0x09, 0x00, 0x00, // hex word count, reserved2B
diff --git a/test/openpower-pels/real_pel_test.cpp b/test/openpower-pels/real_pel_test.cpp
index 1846239..a170812 100644
--- a/test/openpower-pels/real_pel_test.cpp
+++ b/test/openpower-pels/real_pel_test.cpp
@@ -548,6 +548,7 @@
     // Check that the flat data is correct
     auto flat = pel.data();
     EXPECT_EQ(realPELData, flat);
+    EXPECT_EQ(realPELData.size(), pel.size());
 
     // Check that the code can extract an object for every section.
     //(The PrivateHeader and UserHeader account for the + 2 below.)
diff --git a/test/openpower-pels/src_test.cpp b/test/openpower-pels/src_test.cpp
index 2749c37..c1b5116 100644
--- a/test/openpower-pels/src_test.cpp
+++ b/test/openpower-pels/src_test.cpp
@@ -30,7 +30,7 @@
     EXPECT_TRUE(src.valid());
 
     EXPECT_EQ(src.header().id, 0x5053);
-    EXPECT_EQ(src.header().size, 0x80);
+    EXPECT_EQ(src.header().size, 0x50);
     EXPECT_EQ(src.header().version, 0x01);
     EXPECT_EQ(src.header().subType, 0x01);
     EXPECT_EQ(src.header().componentID, 0x0202);
