Skip to content

Commit 3f4cfa7

Browse files
committed
Added test check that cloned custom error handler was indeed cloned
1 parent 80f0079 commit 3f4cfa7

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

tests/test_misc.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
#include "includes.h"
99
#include "spdlog/details/os.h"
10-
#include "spdlog/sinks/ostream_sink.h"
1110
#include "spdlog/sinks/async_sink.h"
11+
#include "spdlog/sinks/ostream_sink.h"
1212
#include "test_sink.h"
1313

1414
template <class T>
@@ -79,18 +79,27 @@ TEST_CASE("clone-logger", "[clone]") {
7979
auto test_sink = std::make_shared<test_sink_mt>();
8080
auto logger = std::make_shared<spdlog::logger>("orig", test_sink);
8181
logger->set_pattern("%v");
82+
bool error_handled = false;
83+
logger->set_error_handler([&error_handled](const std::string&) { error_handled = true; });
8284
auto cloned = logger->clone("clone");
8385

8486
REQUIRE(cloned->name() == "clone");
8587
REQUIRE(logger->sinks() == cloned->sinks());
8688
REQUIRE(logger->log_level() == cloned->log_level());
8789
REQUIRE(logger->flush_level() == cloned->flush_level());
90+
8891
logger->info("Some message 1");
8992
cloned->info("Some message 2");
9093

9194
REQUIRE(test_sink->lines().size() == 2);
9295
REQUIRE(test_sink->lines()[0] == "Some message 1");
9396
REQUIRE(test_sink->lines()[1] == "Some message 2");
97+
98+
// check that cloned custom error handler was indeed cloned
99+
test_sink->set_exception(std::runtime_error("Some error"));
100+
REQUIRE(error_handled == false);
101+
cloned->error("Some error");
102+
REQUIRE(error_handled == true);
94103
}
95104

96105
TEST_CASE("clone async", "[clone]") {

0 commit comments

Comments
 (0)