diff --git a/test/message/pack.cpp b/test/message/pack.cpp
index 2eae1ec..334750e 100644
--- a/test/message/pack.cpp
+++ b/test/message/pack.cpp
@@ -483,8 +483,8 @@
                             sizeof(currentSessions) + 3 * sizeof(uint8_t) +
                             sizeof(uint32_t) + sizeof(uint8_t) * macSize +
                             sizeof(uint16_t));
-    uint8_t protocol_channel =
-        (static_cast<uint8_t>(protocol) << 4) | static_cast<uint8_t>(channel);
+    uint8_t protocol_channel = (static_cast<uint8_t>(protocol) << 4) |
+                               static_cast<uint8_t>(channel);
     ipmi::SecureBuffer k = {handle, maxSessions, currentSessions, userID, priv,
                             protocol_channel,
                             // ip addr
diff --git a/test/message/payload.cpp b/test/message/payload.cpp
index 59947c6..5931694 100644
--- a/test/message/payload.cpp
+++ b/test/message/payload.cpp
@@ -19,6 +19,7 @@
 
 #include <ipmid/api.hpp>
 #include <ipmid/message.hpp>
+
 #include <stdexcept>
 
 #include <gtest/gtest.h>
@@ -314,19 +315,22 @@
 
 std::vector<std::string> logs;
 
-extern "C" {
-int sd_journal_send(const char* format, ...)
+extern "C"
 {
-    logs.push_back(format);
-    return 0;
-}
+    int sd_journal_send(const char* format, ...)
+    {
+        logs.push_back(format);
+        return 0;
+    }
 
-int sd_journal_send_with_location(const char* /*file*/, const char* /*line*/,
-                                  const char* /*func*/, const char* format, ...)
-{
-    logs.push_back(format);
-    return 0;
-}
+    int sd_journal_send_with_location(const char* /*file*/,
+                                      const char* /*line*/,
+                                      const char* /*func*/, const char* format,
+                                      ...)
+    {
+        logs.push_back(format);
+        return 0;
+    }
 }
 
 class PayloadLogging : public testing::Test
@@ -436,7 +440,6 @@
         throw std::runtime_error("test");
     }
     catch (...)
-    {
-    }
+    {}
     EXPECT_EQ(logs.size(), 0);
 }
