diff --git a/test/Makefile.am b/test/Makefile.am
index ddd42e6..8484d62 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -11,7 +11,8 @@
 	remote_logging_test_config \
 	sdjournal_mock_test \
 	extensions_test \
-	elog_update_ts_test
+	elog_update_ts_test \
+	elog_quiesce_test
 
 test_cppflags = \
 	-Igtest \
@@ -114,6 +115,14 @@
 elog_update_ts_test_LDFLAGS = \
 	$(test_ldflags)
 
+elog_quiesce_test_CPPFLAGS = $(test_cppflags)
+elog_quiesce_test_CXXFLAGS = $(test_cxxflags)
+elog_quiesce_test_SOURCES = elog_quiesce_test.cpp
+elog_quiesce_test_LDADD = $(test_ldadd)
+elog_quiesce_test_LDFLAGS = \
+	$(test_ldflags)
+
+
 # TODO Remove once the test-case failure is resolved openbmc/phosphor-logging#11
 XFAIL_TESTS = elog_errorwrap_test
 
diff --git a/test/elog_quiesce_test.cpp b/test/elog_quiesce_test.cpp
new file mode 100644
index 0000000..a29dc3e
--- /dev/null
+++ b/test/elog_quiesce_test.cpp
@@ -0,0 +1,83 @@
+#include "config.h"
+
+#include "elog_entry.hpp"
+#include "log_manager.hpp"
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/test/sdbus_mock.hpp>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+namespace phosphor
+{
+namespace logging
+{
+namespace test
+{
+
+class TestQuiesceOnError : public testing::Test
+{
+  public:
+    sdbusplus::SdBusMock sdbusMock;
+    sdbusplus::bus::bus mockedBus = sdbusplus::get_mocked_new(&sdbusMock);
+    phosphor::logging::internal::Manager manager;
+
+    TestQuiesceOnError() : manager(mockedBus, OBJ_INTERNAL)
+    {
+    }
+};
+
+// Test that false is returned when no callout is present in the log
+TEST_F(TestQuiesceOnError, testNoCallout)
+{
+    uint32_t id = 99;
+    uint64_t timestamp{100};
+    std::string message{"test error"};
+    std::string fwLevel{"level42"};
+    std::vector<std::string> testData{"no", "callout"};
+    phosphor::logging::AssociationList associations{};
+
+    Entry elog{mockedBus,
+               std::string(OBJ_ENTRY) + '/' + std::to_string(id),
+               id,
+               timestamp,
+               Entry::Level::Informational,
+               std::move(message),
+               std::move(testData),
+               std::move(associations),
+               fwLevel,
+               manager};
+
+    EXPECT_EQ(manager.isCalloutPresent(elog), false);
+}
+
+// Test that trues is returned when a callout is present in the log
+TEST_F(TestQuiesceOnError, testCallout)
+{
+    uint32_t id = 99;
+    uint64_t timestamp{100};
+    std::string message{"test error"};
+    std::string fwLevel{"level42"};
+    std::vector<std::string> testData{
+        "CALLOUT_INVENTORY_PATH=/xyz/openbmc_project/inventory/system/chassis/"
+        "motherboard/powersupply0/"};
+    phosphor::logging::AssociationList associations{};
+
+    Entry elog{mockedBus,
+               std::string(OBJ_ENTRY) + '/' + std::to_string(id),
+               id,
+               timestamp,
+               Entry::Level::Informational,
+               std::move(message),
+               std::move(testData),
+               std::move(associations),
+               fwLevel,
+               manager};
+
+    EXPECT_EQ(manager.isCalloutPresent(elog), true);
+}
+
+} // namespace test
+} // namespace logging
+} // namespace phosphor
