diff --git a/tools/test/tools_updater_unittest.cpp b/tools/test/tools_updater_unittest.cpp
index 0c9e6b5..706a4c3 100644
--- a/tools/test/tools_updater_unittest.cpp
+++ b/tools/test/tools_updater_unittest.cpp
@@ -87,7 +87,7 @@
         .WillOnce(Return(verificationResponse));
     EXPECT_CALL(blobMock, closeBlob(session)).WillOnce(Return());
 
-    EXPECT_TRUE(updater.verifyFile(ipmi_flash::verifyBlobId));
+    EXPECT_TRUE(updater.verifyFile(ipmi_flash::verifyBlobId, false));
 }
 
 class UpdaterTest : public ::testing::Test
@@ -95,6 +95,7 @@
   protected:
     ipmiblob::BlobInterfaceMock blobMock;
     std::uint16_t session = 0xbeef;
+    bool defaultIgnore = false;
 };
 
 TEST_F(UpdaterTest, UpdateMainReturnsSuccessIfAllSuccess)
@@ -106,12 +107,30 @@
     EXPECT_CALL(handler, checkAvailable(_)).WillOnce(Return(true));
     EXPECT_CALL(handler, sendFile(_, image)).WillOnce(Return());
     EXPECT_CALL(handler, sendFile(_, signature)).WillOnce(Return());
-    EXPECT_CALL(handler, verifyFile(ipmi_flash::verifyBlobId))
+    EXPECT_CALL(handler, verifyFile(ipmi_flash::verifyBlobId, defaultIgnore))
         .WillOnce(Return(true));
-    EXPECT_CALL(handler, verifyFile(ipmi_flash::updateBlobId))
+    EXPECT_CALL(handler, verifyFile(ipmi_flash::updateBlobId, defaultIgnore))
         .WillOnce(Return(true));
 
-    updaterMain(&handler, image, signature, "static");
+    updaterMain(&handler, image, signature, "static", defaultIgnore);
+}
+
+TEST_F(UpdaterTest, UpdateMainReturnsSuccessWithIgnoreUpdate)
+{
+    const std::string image = "image.bin";
+    const std::string signature = "signature.bin";
+    UpdateHandlerMock handler;
+    bool updateIgnore = true;
+
+    EXPECT_CALL(handler, checkAvailable(_)).WillOnce(Return(true));
+    EXPECT_CALL(handler, sendFile(_, image)).WillOnce(Return());
+    EXPECT_CALL(handler, sendFile(_, signature)).WillOnce(Return());
+    EXPECT_CALL(handler, verifyFile(ipmi_flash::verifyBlobId, defaultIgnore))
+        .WillOnce(Return(true));
+    EXPECT_CALL(handler, verifyFile(ipmi_flash::updateBlobId, updateIgnore))
+        .WillOnce(Return(true));
+
+    updaterMain(&handler, image, signature, "static", updateIgnore);
 }
 
 TEST_F(UpdaterTest, UpdateMainCleansUpOnFailure)
@@ -123,12 +142,13 @@
     EXPECT_CALL(handler, checkAvailable(_)).WillOnce(Return(true));
     EXPECT_CALL(handler, sendFile(_, image)).WillOnce(Return());
     EXPECT_CALL(handler, sendFile(_, signature)).WillOnce(Return());
-    EXPECT_CALL(handler, verifyFile(ipmi_flash::verifyBlobId))
+    EXPECT_CALL(handler, verifyFile(ipmi_flash::verifyBlobId, defaultIgnore))
         .WillOnce(Return(false));
     EXPECT_CALL(handler, cleanArtifacts()).WillOnce(Return());
 
-    EXPECT_THROW(updaterMain(&handler, image, signature, "static"),
-                 ToolException);
+    EXPECT_THROW(
+        updaterMain(&handler, image, signature, "static", defaultIgnore),
+        ToolException);
 }
 
 } // namespace host_tool
diff --git a/tools/test/updater_mock.hpp b/tools/test/updater_mock.hpp
index d67991b..9469c62 100644
--- a/tools/test/updater_mock.hpp
+++ b/tools/test/updater_mock.hpp
@@ -14,7 +14,7 @@
   public:
     MOCK_METHOD1(checkAvailable, bool(const std::string&));
     MOCK_METHOD2(sendFile, void(const std::string&, const std::string&));
-    MOCK_METHOD1(verifyFile, bool(const std::string&));
+    MOCK_METHOD2(verifyFile, bool(const std::string&, bool));
     MOCK_METHOD0(cleanArtifacts, void());
 };
 
