From 3f4cfa72d198a4cca7c4e4b42f5e31a0f7978cd5 Mon Sep 17 00:00:00 2001 From: gabime Date: Fri, 17 Jan 2025 18:46:52 +0200 Subject: [PATCH] Added test check that cloned custom error handler was indeed cloned --- tests/test_misc.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp index 304ed9c4..018710c9 100644 --- a/tests/test_misc.cpp +++ b/tests/test_misc.cpp @@ -7,8 +7,8 @@ #include "includes.h" #include "spdlog/details/os.h" -#include "spdlog/sinks/ostream_sink.h" #include "spdlog/sinks/async_sink.h" +#include "spdlog/sinks/ostream_sink.h" #include "test_sink.h" template @@ -79,18 +79,27 @@ TEST_CASE("clone-logger", "[clone]") { auto test_sink = std::make_shared(); auto logger = std::make_shared("orig", test_sink); logger->set_pattern("%v"); + bool error_handled = false; + logger->set_error_handler([&error_handled](const std::string&) { error_handled = true; }); auto cloned = logger->clone("clone"); REQUIRE(cloned->name() == "clone"); REQUIRE(logger->sinks() == cloned->sinks()); REQUIRE(logger->log_level() == cloned->log_level()); REQUIRE(logger->flush_level() == cloned->flush_level()); + logger->info("Some message 1"); cloned->info("Some message 2"); REQUIRE(test_sink->lines().size() == 2); REQUIRE(test_sink->lines()[0] == "Some message 1"); REQUIRE(test_sink->lines()[1] == "Some message 2"); + + // check that cloned custom error handler was indeed cloned + test_sink->set_exception(std::runtime_error("Some error")); + REQUIRE(error_handled == false); + cloned->error("Some error"); + REQUIRE(error_handled == true); } TEST_CASE("clone async", "[clone]") {