diff --git a/test/vpd-manager-test/reader_test.cpp b/test/vpd-manager-test/reader_test.cpp
index 54c98f0..dd576e6 100644
--- a/test/vpd-manager-test/reader_test.cpp
+++ b/test/vpd-manager-test/reader_test.cpp
@@ -152,8 +152,8 @@
 
     MockUtilCalls uCalls;
     ReaderImpl read(uCalls);
-    ListOfPaths paths = read.getFrusAtLocation(LocationCode, nodeNumber,
-                                               fruLocationCode);
+    ListOfPaths paths =
+        read.getFrusAtLocation(LocationCode, nodeNumber, fruLocationCode);
     std::string expected =
         "/xyz/openbmc_project/inventory/system/chassis/motherboard";
     EXPECT_EQ(paths.at(0), expected);
@@ -168,8 +168,8 @@
     ReaderImpl read(uCalls);
     ListOfPaths paths;
     EXPECT_ANY_THROW({
-        paths = read.getFRUsByExpandedLocationCode(locationCode,
-                                                   fruLocationCode);
+        paths =
+            read.getFRUsByExpandedLocationCode(locationCode, fruLocationCode);
     });
 
     // unused variable warning
@@ -178,8 +178,8 @@
     // length is les sthan 17 for expanded location code
     locationCode = "U9105.22A.SIMP10";
     EXPECT_ANY_THROW({
-        paths = read.getFRUsByExpandedLocationCode(locationCode,
-                                                   fruLocationCode);
+        paths =
+            read.getFRUsByExpandedLocationCode(locationCode, fruLocationCode);
     });
 
     // Invalid location code. No "."
@@ -195,8 +195,8 @@
     // unused variable warning
     (void)paths;
     EXPECT_ANY_THROW({
-        paths = read.getFRUsByExpandedLocationCode(locationCode,
-                                                   fruLocationCode);
+        paths =
+            read.getFRUsByExpandedLocationCode(locationCode, fruLocationCode);
     });
 }
 
@@ -213,8 +213,8 @@
             testing::Return("78DAPQRS")); // return a dummy value for FC keyword
 
     ReaderImpl read(uCalls);
-    ListOfPaths paths = read.getFRUsByExpandedLocationCode(validLocationCode,
-                                                           fruLocationCode);
+    ListOfPaths paths =
+        read.getFRUsByExpandedLocationCode(validLocationCode, fruLocationCode);
 
     std::string expected =
         "/xyz/openbmc_project/inventory/system/chassis/motherboard";
@@ -241,8 +241,8 @@
             testing::Return("9105PQRS")); // return a dummy value for TM keyword
 
     ReaderImpl read(uCalls);
-    ListOfPaths paths = read.getFRUsByExpandedLocationCode(validLocationCode,
-                                                           fruLocationCode);
+    ListOfPaths paths =
+        read.getFRUsByExpandedLocationCode(validLocationCode, fruLocationCode);
 
     std::string expected = "/xyz/openbmc_project/inventory/system";
     EXPECT_EQ(paths.at(0), expected);
