diff --git a/test/bus/match.cpp b/test/bus/match.cpp
index 049e033..d925c7a 100644
--- a/test/bus/match.cpp
+++ b/test/bus/match.cpp
@@ -29,8 +29,8 @@
 TEST_F(Match, FunctorIs_sd_bus_message_handler_t)
 {
     bool triggered = false;
-    auto trigger = [](sd_bus_message* /*m*/, void* context,
-                      sd_bus_error* /*e*/) {
+    auto trigger =
+        [](sd_bus_message* /*m*/, void* context, sd_bus_error* /*e*/) {
         *static_cast<bool*>(context) = true;
         return 0;
     };
diff --git a/test/message/call.cpp b/test/message/call.cpp
index f0122ee..69c8d43 100644
--- a/test/message/call.cpp
+++ b/test/message/call.cpp
@@ -87,13 +87,13 @@
 {
     EXPECT_DEATH(
         [] {
-            auto b = bus::new_bus();
-            while (b.process_discard())
-                ;
-            auto slot = newBusIdReq(b).call_async(
-                [&](message&&) { throw std::runtime_error("testerror"); });
-            b.wait(1s);
-            b.process_discard();
+        auto b = bus::new_bus();
+        while (b.process_discard())
+            ;
+        auto slot = newBusIdReq(b).call_async(
+            [&](message&&) { throw std::runtime_error("testerror"); });
+        b.wait(1s);
+        b.process_discard();
         }(),
         "testerror");
 }
diff --git a/test/unpack_properties.cpp b/test/unpack_properties.cpp
index bd349e7..3ed04ca 100644
--- a/test/unpack_properties.cpp
+++ b/test/unpack_properties.cpp
@@ -34,7 +34,7 @@
         unpackPropertiesNoThrow(
             [&error](sdbusplus::UnpackErrorReason reason,
                      const std::string& property) {
-                error.emplace(reason, property);
+            error.emplace(reason, property);
             },
             std::forward<Args>(args)...);
         return error;
