add tests and options for other functions

pull/2778/head
Markus Ühlein 2 years ago
parent d9c6491730
commit 4a5728509e

@ -116,9 +116,9 @@ SPDLOG_INLINE void logger::disable_backtrace()
tracer_.disable();
}
SPDLOG_INLINE void logger::dump_backtrace()
SPDLOG_INLINE void logger::dump_backtrace(bool with_message)
{
dump_backtrace_();
dump_backtrace_(with_message);
}
// flush functions

@ -329,7 +329,7 @@ public:
// efficiently store all debug/trace messages in a circular buffer until needed for debugging.
void enable_backtrace(size_t n_messages);
void disable_backtrace();
void dump_backtrace();
void dump_backtrace(bool with_message=true);
// flush functions
void flush();
@ -410,7 +410,7 @@ protected:
void log_it_(const details::log_msg &log_msg, bool log_enabled, bool traceback_enabled);
virtual void sink_it_(const details::log_msg &msg);
virtual void flush_();
void dump_backtrace_();
void dump_backtrace_(bool with_message=true);
bool should_flush_(const details::log_msg &msg);
// handle errors during logging.

@ -31,6 +31,33 @@ TEST_CASE("bactrace1", "[bactrace]")
REQUIRE(test_sink->lines()[7] == "****************** Backtrace End ********************");
}
TEST_CASE("bactrace2", "[bactrace]")
{
using spdlog::sinks::test_sink_st;
auto test_sink = std::make_shared<test_sink_st>();
size_t backtrace_size = 5;
spdlog::logger logger("test-backtrace", test_sink);
logger.set_pattern("%v");
logger.enable_backtrace(backtrace_size);
logger.info("info message");
for (int i = 0; i < 100; i++)
logger.debug("debug message {}", i);
REQUIRE(test_sink->lines().size() == 1);
REQUIRE(test_sink->lines()[0] == "info message");
logger.dump_backtrace(false);
REQUIRE(test_sink->lines().size() == backtrace_size + 1);
REQUIRE(test_sink->lines()[1] == "debug message 95");
REQUIRE(test_sink->lines()[2] == "debug message 96");
REQUIRE(test_sink->lines()[3] == "debug message 97");
REQUIRE(test_sink->lines()[4] == "debug message 98");
REQUIRE(test_sink->lines()[5] == "debug message 99");
}
TEST_CASE("bactrace-empty", "[bactrace]")
{
using spdlog::sinks::test_sink_st;

Loading…
Cancel
Save