From 75adf9e75ecef9ab55650d80c1b7224a75726a62 Mon Sep 17 00:00:00 2001 From: gabime Date: Tue, 27 Aug 2019 17:18:09 +0300 Subject: [PATCH] Improved test_sink in unit tests --- tests/test_sink.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/tests/test_sink.h b/tests/test_sink.h index ae08e980..98484964 100644 --- a/tests/test_sink.h +++ b/tests/test_sink.h @@ -7,7 +7,7 @@ #include "spdlog/details/null_mutex.h" #include "spdlog/sinks/base_sink.h" - +#include "spdlog/fmt/fmt.h" #include #include #include @@ -36,20 +36,33 @@ public: delay_ = delay; } + // return last output without the eol + std::string last_output() + { + std::lock_guard lock(base_sink::mutex_); + auto eol_len = strlen(spdlog::details::os::default_eol); + return std::string(last_output_.begin(), last_output_.end() - eol_len); + } + protected: - void sink_it_(const details::log_msg &) override - { - msg_counter_++; - std::this_thread::sleep_for(delay_); + void sink_it_(const details::log_msg &msg) override + { + fmt::memory_buffer formatted; + base_sink::formatter_->format(msg, formatted); + last_output_.assign(formatted.begin(), formatted.end()); + msg_counter_++; + std::this_thread::sleep_for(delay_); } void flush_() override { flush_counter_++; } + size_t msg_counter_{0}; size_t flush_counter_{0}; std::chrono::milliseconds delay_{std::chrono::milliseconds::zero()}; + std::string last_output_; }; using test_sink_mt = test_sink;