diff --git a/test/openpower-pels/data_interface_test.cpp b/test/openpower-pels/data_interface_test.cpp
index 3041bc2..febf937 100644
--- a/test/openpower-pels/data_interface_test.cpp
+++ b/test/openpower-pels/data_interface_test.cpp
@@ -33,4 +33,4 @@
     std::string uptime = dataIntf.getBMCUptime(seconds);
 
     EXPECT_EQ(uptime, retUptime);
-}
\ No newline at end of file
+}
diff --git a/test/openpower-pels/host_notifier_test.cpp b/test/openpower-pels/host_notifier_test.cpp
index 42a87c7..6fc235b 100644
--- a/test/openpower-pels/host_notifier_test.cpp
+++ b/test/openpower-pels/host_notifier_test.cpp
@@ -121,8 +121,8 @@
 {
     bool hostState = false;
     bool called = false;
-    DataInterfaceBase::HostStateChangeFunc func = [&hostState,
-                                                   &called](bool state) {
+    DataInterfaceBase::HostStateChangeFunc func =
+        [&hostState, &called](bool state) {
         hostState = state;
         called = true;
     };
diff --git a/test/openpower-pels/mocks.hpp b/test/openpower-pels/mocks.hpp
index df85066..094c670 100644
--- a/test/openpower-pels/mocks.hpp
+++ b/test/openpower-pels/mocks.hpp
@@ -191,8 +191,8 @@
         int fd = open(_fifo.c_str(), O_NONBLOCK | O_RDWR);
         EXPECT_TRUE(fd >= 0) << "Unable to open FIFO";
 
-        auto callback = [this](sdeventplus::source::IO& source, int fd,
-                               uint32_t events) {
+        auto callback =
+            [this](sdeventplus::source::IO& source, int fd, uint32_t events) {
             this->receive(source, fd, events);
         };
 
diff --git a/test/openpower-pels/pel_test.cpp b/test/openpower-pels/pel_test.cpp
index 66cb6cf..9fa8f2b 100644
--- a/test/openpower-pels/pel_test.cpp
+++ b/test/openpower-pels/pel_test.cpp
@@ -261,11 +261,11 @@
 
     // Make sure that there are still 2 UD sections.
     const auto& optSections = pel.optionalSections();
-    auto udCount = std::count_if(
-        optSections.begin(), optSections.end(), [](const auto& section) {
-            return section->header().id ==
-                   static_cast<uint16_t>(SectionID::userData);
-        });
+    auto udCount = std::count_if(optSections.begin(), optSections.end(),
+                                 [](const auto& section) {
+        return section->header().id ==
+               static_cast<uint16_t>(SectionID::userData);
+    });
 
     EXPECT_EQ(udCount, 2); // AD section and sysInfo section
 }
diff --git a/test/openpower-pels/pel_utils.cpp b/test/openpower-pels/pel_utils.cpp
index b9b46a6..9b33818 100644
--- a/test/openpower-pels/pel_utils.cpp
+++ b/test/openpower-pels/pel_utils.cpp
@@ -32,10 +32,10 @@
 
 const std::vector<uint8_t> privateHeaderSection{
     // section header
-    0x50, 0x48, // ID 'PH'
-    0x00, 0x30, // Size
-    0x01, 0x02, // version, subtype
-    0x03, 0x04, // comp ID
+    0x50, 0x48,                                     // ID 'PH'
+    0x00, 0x30,                                     // Size
+    0x01, 0x02,                                     // version, subtype
+    0x03, 0x04,                                     // comp ID
 
     0x20, 0x30, 0x05, 0x09, 0x11, 0x1E, 0x1,  0x63, // create timestamp
     0x20, 0x31, 0x06, 0x0F, 0x09, 0x22, 0x3A, 0x00, // commit timestamp
@@ -50,10 +50,10 @@
 
 const std::vector<uint8_t> userHeaderSection{
     // section header
-    0x55, 0x48, // ID 'UH'
-    0x00, 0x18, // Size
-    0x01, 0x0A, // version, subtype
-    0x0B, 0x0C, // comp ID
+    0x55, 0x48,             // ID 'UH'
+    0x00, 0x18,             // Size
+    0x01, 0x0A,             // version, subtype
+    0x0B, 0x0C,             // comp ID
 
     0x10, 0x04,             // subsystem, scope
     0x20, 0x00,             // severity, type
