diff --git a/test/test-attention.cpp b/test/test-attention.cpp
index 2b33a6d..b773f89 100644
--- a/test/test-attention.cpp
+++ b/test/test-attention.cpp
@@ -34,14 +34,14 @@
 // Attention type
 Attention::AttentionType gType = Attention::AttentionType::Special;
 // pointer to handler callback function
-int (*gHandler)(Attention*)   = &(handleSpecial);
+int (*gHandler)(Attention*) = &(handleSpecial);
 const AttentionFlag gAttnFlag = AttentionFlag::enBreakpoints;
 
 // Start preparation for UT case #1.
 
 // Global variables for UT #1
 const char* gPosPath = "/proc0/pib/perv12";
-const uint32_t gPos  = 12;
+const uint32_t gPos = 12;
 
 /** @brief Fixture class for TEST_F(). */
 class AttentionTestPos : public testing::Test
@@ -69,7 +69,7 @@
     }
 
     std::unique_ptr<Attention> pAttn;
-    Config* config      = nullptr;
+    Config* config = nullptr;
     pdbg_target* target = nullptr;
 };
 
@@ -85,7 +85,7 @@
     EXPECT_EQ(gPos, attr);
 
     // Verify the target in Attention object.
-    attr                    = std::numeric_limits<uint32_t>::max();
+    attr = std::numeric_limits<uint32_t>::max();
     pdbg_target* target_tmp = pAttn->getTarget();
     EXPECT_NE(nullptr, target_tmp);
     pdbg_target_get_attribute(target_tmp, "ATTR_FAPI_POS", 4, 1, &attr);
@@ -138,9 +138,9 @@
     }
 
     std::unique_ptr<Attention> pAttn;
-    Config* config      = nullptr;
+    Config* config = nullptr;
     pdbg_target* target = nullptr;
-    uint32_t attr       = std::numeric_limits<uint32_t>::max();
+    uint32_t attr = std::numeric_limits<uint32_t>::max();
 };
 
 TEST_F(AttentionTestProc, TestAttentionProc)
@@ -149,7 +149,7 @@
     EXPECT_EQ(RC_SUCCESS, pAttn->handle());
 
     // Verify the target in Attention object.
-    attr                    = std::numeric_limits<uint32_t>::max();
+    attr = std::numeric_limits<uint32_t>::max();
     pdbg_target* target_tmp = pAttn->getTarget();
     EXPECT_NE(nullptr, target_tmp);
     attr = getTrgtType(target_tmp);
@@ -199,4 +199,4 @@
     EXPECT_EQ(true, config->getFlag(enVital));
 
     delete config;
-}
\ No newline at end of file
+}
diff --git a/test/test-bin-stream.cpp b/test/test-bin-stream.cpp
index 209c778..7e25ec3 100644
--- a/test/test-bin-stream.cpp
+++ b/test/test-bin-stream.cpp
@@ -34,10 +34,10 @@
 
 TEST(BinStream, TestSet1)
 {
-    uint8_t w1      = 0x11;
-    uint16_t w2     = 0x1122;
-    uint32_t w3     = 0x11223344;
-    uint64_t w4     = 0x1122334455667788;
+    uint8_t w1 = 0x11;
+    uint16_t w2 = 0x1122;
+    uint32_t w3 = 0x11223344;
+    uint64_t w4 = 0x1122334455667788;
     RegisterId_t w5 = static_cast<RegisterId_t>(0x123456);
 
     {
diff --git a/test/test-cli.cpp b/test/test-cli.cpp
index f4c3a9a..35a0ed2 100644
--- a/test/test-cli.cpp
+++ b/test/test-cli.cpp
@@ -9,7 +9,7 @@
     // Test --all on options
     Config* config = new Config();
     char* argv[2];
-    int i     = 0;
+    int i = 0;
     argv[i++] = (char*)"--all";
     argv[i++] = (char*)"on";
     parseConfig(argv, argv + i, config);
@@ -24,7 +24,7 @@
     // Test --all off options
     // Set the dfltTi flag to default value.
     config->clearFlag(dfltTi);
-    i         = 0;
+    i = 0;
     argv[i++] = (char*)"--all";
     argv[i++] = (char*)"off";
     parseConfig(argv, argv + i, config);
@@ -43,7 +43,7 @@
     // Test options with on switch.
     Config* config = new Config();
     char* argv[11];
-    int i     = 0;
+    int i = 0;
     argv[i++] = (char*)"--vital";
     argv[i++] = (char*)"on";
     argv[i++] = (char*)"--checkstop";
@@ -69,7 +69,7 @@
     // Test options with off switch.
     // Set the dfltTi flag to default value.
     config->clearFlag(dfltTi);
-    i         = 0;
+    i = 0;
     argv[i++] = (char*)"--vital";
     argv[i++] = (char*)"off";
     argv[i++] = (char*)"--checkstop";
diff --git a/test/test-end2end.cpp b/test/test-end2end.cpp
index ff7d468..838eae3 100644
--- a/test/test-end2end.cpp
+++ b/test/test-end2end.cpp
@@ -62,9 +62,9 @@
 
         std::for_each(std::begin(attentions), std::end(attentions),
                       [](attn::Attention attention) {
-                          trace::inf("calling handler");
-                          attention.handle();
-                      });
+            trace::inf("calling handler");
+            attention.handle();
+        });
     }
 
     return rc;
diff --git a/test/test-pdbg-dts.cpp b/test/test-pdbg-dts.cpp
index 83d3f89..49c74fd 100644
--- a/test/test-pdbg-dts.cpp
+++ b/test/test-pdbg-dts.cpp
@@ -13,15 +13,15 @@
 
 TEST(PDBG, PdbgDtsTest1)
 {
-    const char* perv1_fapi_pos_path  = "/proc0/pib/perv1";
+    const char* perv1_fapi_pos_path = "/proc0/pib/perv1";
     const char* perv12_fapi_pos_path = "/proc0/pib/perv12";
-    const uint32_t perv1_fapi_pos    = 1;
-    const uint32_t perv12_fapi_pos   = 12;
+    const uint32_t perv1_fapi_pos = 1;
+    const uint32_t perv12_fapi_pos = 12;
 
     pdbg_targets_init(nullptr);
 
     trace::inf("retrieving fapi pos.");
-    uint32_t attr     = std::numeric_limits<uint32_t>::max();
+    uint32_t attr = std::numeric_limits<uint32_t>::max();
     pdbg_target* trgt = pdbg_target_from_path(nullptr, perv1_fapi_pos_path);
     pdbg_target_get_attribute(trgt, "ATTR_FAPI_POS", 4, 1, &attr);
     trace::inf("perv1 fapi pos in DTS: %u", attr);
@@ -38,13 +38,13 @@
 {
     const char* dimm0_path =
         "/proc0/pib/perv12/mc0/mi0/mcc0/omi0/ocmb0/mem_port0/dimm0";
-    const uint32_t index    = 0;
+    const uint32_t index = 0;
     const uint32_t fapi_pos = 0;
 
     pdbg_targets_init(nullptr);
 
     trace::inf("retrieving fapi pos.");
-    uint32_t attr     = std::numeric_limits<uint32_t>::max();
+    uint32_t attr = std::numeric_limits<uint32_t>::max();
     pdbg_target* trgt = pdbg_target_from_path(nullptr, dimm0_path);
     pdbg_target_get_attribute(trgt, "index", 4, 1, &attr);
     trace::inf("index in DTS: %u", attr);
@@ -58,7 +58,7 @@
 
 TEST(PDBG, PdbgDtsTest3)
 {
-    const uint32_t chipId  = 0; // ID for proc0.
+    const uint32_t chipId = 0;  // ID for proc0.
     const uint32_t fapiPos = 0; // FAPI Position for proc0.
 
     pdbg_targets_init(nullptr);
@@ -87,9 +87,9 @@
 
 TEST(PDBG, PdbgDtsTest4)
 {
-    const uint32_t index    = 1;
+    const uint32_t index = 1;
     const uint32_t fapi_pos = 1;
-    const char* perv1_path  = "/proc0/pib/perv1";
+    const char* perv1_path = "/proc0/pib/perv1";
 
     pdbg_targets_init(nullptr);
 
@@ -117,7 +117,7 @@
     pdbg_targets_init(nullptr);
 
     auto procChip = getTrgt("/proc0");
-    auto omiUnit  = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
+    auto omiUnit = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
 
     EXPECT_EQ(procChip, getParentChip(procChip)); // get self
     EXPECT_EQ(procChip, getParentChip(omiUnit));  // get unit
@@ -135,8 +135,8 @@
     using namespace util::pdbg;
     pdbg_targets_init(nullptr);
 
-    auto procChip   = getTrgt("/proc0");
-    auto omiUnit    = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
+    auto procChip = getTrgt("/proc0");
+    auto omiUnit = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
     auto omiUnitPos = 5;
 
     // Get the unit and verify.
@@ -173,14 +173,14 @@
 
     auto procChip = getTrgt("/proc0");
     auto ocmbChip = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1/ocmb0");
-    auto omiUnit  = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
+    auto omiUnit = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
 
     sim::ScomAccess& scom = sim::ScomAccess::getSingleton();
     scom.flush();
     scom.add(procChip, 0x11111111, 0x0011223344556677);
     scom.error(ocmbChip, 0x22222222);
 
-    int rc       = 0;
+    int rc = 0;
     uint64_t val = 0;
 
     // Test good path.
@@ -207,14 +207,14 @@
     pdbg_targets_init(nullptr);
 
     auto procChip = getTrgt("/proc0");
-    auto omiUnit  = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
+    auto omiUnit = getTrgt("/proc0/pib/perv13/mc1/mi0/mcc0/omi1");
 
     sim::CfamAccess& cfam = sim::CfamAccess::getSingleton();
     cfam.flush();
     cfam.add(procChip, 0x11111111, 0x00112233);
     cfam.error(procChip, 0x22222222);
 
-    int rc       = 0;
+    int rc = 0;
     uint32_t val = 0;
 
     // Test good path.
diff --git a/test/test-resolution.cpp b/test/test-resolution.cpp
index c759442..6898bc4 100644
--- a/test/test-resolution.cpp
+++ b/test/test-resolution.cpp
@@ -13,11 +13,11 @@
 constexpr auto chip_str = "/proc0";
 
 // Unit paths
-constexpr auto proc_str   = "";
+constexpr auto proc_str = "";
 constexpr auto iolink_str = "pib/perv26/pauc1/iohs0/smpgroup0";
-constexpr auto omi_str    = "pib/perv12/mc0/mi0/mcc0/omi0";
-constexpr auto ocmb_str   = "pib/perv12/mc0/mi0/mcc0/omi0/ocmb0";
-constexpr auto core_str   = "pib/perv39/eq7/fc1/core1";
+constexpr auto omi_str = "pib/perv12/mc0/mi0/mcc0/omi0";
+constexpr auto ocmb_str = "pib/perv12/mc0/mi0/mcc0/omi0/ocmb0";
+constexpr auto core_str = "pib/perv39/eq7/fc1/core1";
 
 using namespace analyzer;
 
diff --git a/test/test-tod-step-check-fault.cpp b/test/test-tod-step-check-fault.cpp
index de31f03..68ed39d 100644
--- a/test/test-tod-step-check-fault.cpp
+++ b/test/test-tod-step-check-fault.cpp
@@ -62,8 +62,8 @@
     ServiceData sd{sig1, AnalysisType::SYSTEM_CHECKSTOP, isoData};
 
     // Call the plugin.
-    auto plugin =
-        PluginMap::getSingleton().get(chip1.getType(), "tod_step_check_fault");
+    auto plugin = PluginMap::getSingleton().get(chip1.getType(),
+                                                "tod_step_check_fault");
 
     plugin(0, chip1, sd);
 
