diff --git a/phosphor-regulators/test/actions/i2c_write_byte_action_tests.cpp b/phosphor-regulators/test/actions/i2c_write_byte_action_tests.cpp
index b09e3fa..986ca2e 100644
--- a/phosphor-regulators/test/actions/i2c_write_byte_action_tests.cpp
+++ b/phosphor-regulators/test/actions/i2c_write_byte_action_tests.cpp
@@ -132,7 +132,6 @@
     // Test where fails: Getting I2CInterface fails
     try
     {
-
         // Create IDMap, MockServices, and ActionEnvironment
         IDMap idMap{};
         MockServices services{};
diff --git a/phosphor-regulators/test/actions/set_device_action_tests.cpp b/phosphor-regulators/test/actions/set_device_action_tests.cpp
index 2651f13..139abd1 100644
--- a/phosphor-regulators/test/actions/set_device_action_tests.cpp
+++ b/phosphor-regulators/test/actions/set_device_action_tests.cpp
@@ -53,8 +53,8 @@
     idMap.addDevice(reg1);
 
     // Create Device regulator2 and add to IDMap
-    i2cInterface =
-        i2c::create(1, 0x72, i2c::I2CInterface::InitialState::CLOSED);
+    i2cInterface = i2c::create(1, 0x72,
+                               i2c::I2CInterface::InitialState::CLOSED);
     Device reg2{
         "regulator2", true,
         "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2",
diff --git a/phosphor-regulators/test/device_tests.cpp b/phosphor-regulators/test/device_tests.cpp
index 0c43b1e..d5fdf74 100644
--- a/phosphor-regulators/test/device_tests.cpp
+++ b/phosphor-regulators/test/device_tests.cpp
@@ -74,8 +74,8 @@
         std::vector<std::unique_ptr<Rule>> rules{};
         std::vector<std::unique_ptr<Chassis>> chassisVec{};
         chassisVec.emplace_back(std::move(chassis));
-        this->system =
-            std::make_unique<System>(std::move(rules), std::move(chassisVec));
+        this->system = std::make_unique<System>(std::move(rules),
+                                                std::move(chassisVec));
     }
 
   protected:
@@ -456,8 +456,8 @@
             EXPECT_CALL(*action, execute).Times(0);
             std::vector<std::unique_ptr<Action>> actions{};
             actions.emplace_back(std::move(action));
-            configuration =
-                std::make_unique<Configuration>(volts, std::move(actions));
+            configuration = std::make_unique<Configuration>(volts,
+                                                            std::move(actions));
         }
 
         // Create Device
@@ -517,8 +517,8 @@
                 std::make_unique<Configuration>(volts, std::move(actions));
 
             // Create Rail
-            auto rail =
-                std::make_unique<Rail>("vdd0", std::move(configuration));
+            auto rail = std::make_unique<Rail>("vdd0",
+                                               std::move(configuration));
             rails.emplace_back(std::move(rail));
         }
 
@@ -534,8 +534,8 @@
                 std::make_unique<Configuration>(volts, std::move(actions));
 
             // Create Rail
-            auto rail =
-                std::make_unique<Rail>("vio0", std::move(configuration));
+            auto rail = std::make_unique<Rail>("vio0",
+                                               std::move(configuration));
             rails.emplace_back(std::move(rail));
         }
 
diff --git a/phosphor-regulators/test/id_map_tests.cpp b/phosphor-regulators/test/id_map_tests.cpp
index 15ace68..6c8d1ca 100644
--- a/phosphor-regulators/test/id_map_tests.cpp
+++ b/phosphor-regulators/test/id_map_tests.cpp
@@ -68,8 +68,8 @@
     // Test where device ID already exists in map
     try
     {
-        i2cInterface =
-            i2c::create(1, 0x72, i2c::I2CInterface::InitialState::CLOSED);
+        i2cInterface = i2c::create(1, 0x72,
+                                   i2c::I2CInterface::InitialState::CLOSED);
         Device device2{"vio_reg", true,
                        "/xyz/openbmc_project/inventory/system/chassis/"
                        "motherboard/vio_reg2",
diff --git a/phosphor-regulators/test/phase_fault_detection_tests.cpp b/phosphor-regulators/test/phase_fault_detection_tests.cpp
index c85970c..d7fa5f3 100644
--- a/phosphor-regulators/test/phase_fault_detection_tests.cpp
+++ b/phosphor-regulators/test/phase_fault_detection_tests.cpp
@@ -108,8 +108,8 @@
         std::vector<std::unique_ptr<Rule>> rules{};
         std::vector<std::unique_ptr<Chassis>> chassisVec{};
         chassisVec.emplace_back(std::move(chassis));
-        this->system =
-            std::make_unique<System>(std::move(rules), std::move(chassisVec));
+        this->system = std::make_unique<System>(std::move(rules),
+                                                std::move(chassisVec));
     }
 
   protected:
diff --git a/phosphor-regulators/test/system_tests.cpp b/phosphor-regulators/test/system_tests.cpp
index 1ea34b3..6cff029 100644
--- a/phosphor-regulators/test/system_tests.cpp
+++ b/phosphor-regulators/test/system_tests.cpp
@@ -102,8 +102,8 @@
     // Create Chassis that contains Device
     std::vector<std::unique_ptr<Device>> devices{};
     devices.emplace_back(std::move(device));
-    auto chassis =
-        std::make_unique<Chassis>(1, chassisInvPath, std::move(devices));
+    auto chassis = std::make_unique<Chassis>(1, chassisInvPath,
+                                             std::move(devices));
     Chassis* chassisPtr = chassis.get();
 
     // Create System that contains Chassis
@@ -157,8 +157,8 @@
     // Create Chassis that contains Device
     std::vector<std::unique_ptr<Device>> devices{};
     devices.emplace_back(std::move(device));
-    auto chassis =
-        std::make_unique<Chassis>(1, chassisInvPath, std::move(devices));
+    auto chassis = std::make_unique<Chassis>(1, chassisInvPath,
+                                             std::move(devices));
 
     // Create System that contains Chassis
     std::vector<std::unique_ptr<Rule>> rules{};
diff --git a/phosphor-regulators/test/test_sdbus_error.hpp b/phosphor-regulators/test/test_sdbus_error.hpp
index 1937e2d..ff4f4e2 100644
--- a/phosphor-regulators/test/test_sdbus_error.hpp
+++ b/phosphor-regulators/test/test_sdbus_error.hpp
@@ -28,8 +28,7 @@
 class TestSDBusError : public sdbusplus::exception_t
 {
   public:
-    TestSDBusError(const std::string& error) : error{error}
-    {}
+    TestSDBusError(const std::string& error) : error{error} {}
 
     const char* what() const noexcept override
     {
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index 16b2fec..10cd7ce 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -3367,8 +3367,8 @@
     }
     // Invalid: -s specified more than once
     {
-        command =
-            validateTool + "-s -s " + schemaFile + configuration + fileName;
+        command = validateTool + "-s -s " + schemaFile + configuration +
+                  fileName;
         expectCommandLineSyntax(outputMessageHelp, outputMessage, command, 2);
     }
     // Invalid: No file name specified after -c
