|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
#include "includes.h"
|
|
|
|
|
#include "test_sink.h"
|
|
|
|
|
|
|
|
|
|
#include <chrono>
|
|
|
|
|
|
|
|
|
|
using spdlog::memory_buf_t;
|
|
|
|
|
using spdlog::details::to_string_view;
|
|
|
|
|
|
|
|
|
@ -19,6 +21,21 @@ static std::string log_to_str(const std::string &msg, const Args &...args) {
|
|
|
|
|
return oss.str();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// log to str and return it
|
|
|
|
|
template <typename... Args>
|
|
|
|
|
static std::string log_to_str(spdlog::log_clock::time_point log_time, const std::string &msg, const Args &...args) {
|
|
|
|
|
std::ostringstream oss;
|
|
|
|
|
auto oss_sink = std::make_shared<spdlog::sinks::ostream_sink_mt>(oss);
|
|
|
|
|
spdlog::logger oss_logger("pattern_tester", oss_sink);
|
|
|
|
|
oss_logger.set_level(spdlog::level::info);
|
|
|
|
|
|
|
|
|
|
oss_logger.set_formatter(
|
|
|
|
|
std::unique_ptr<spdlog::formatter>(new spdlog::pattern_formatter(args...)));
|
|
|
|
|
|
|
|
|
|
oss_logger.log(log_time, {}, spdlog::level::info, msg);
|
|
|
|
|
return oss.str();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("custom eol", "[pattern_formatter]") {
|
|
|
|
|
std::string msg = "Hello custom eol test";
|
|
|
|
|
std::string eol = ";)";
|
|
|
|
@ -58,6 +75,15 @@ TEST_CASE("date MM/DD/YY ", "[pattern_formatter]") {
|
|
|
|
|
oss.str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("GMT offset ", "[pattern_formatter]") {
|
|
|
|
|
using namespace std::chrono_literals;
|
|
|
|
|
const auto now = std::chrono::system_clock::now();
|
|
|
|
|
const auto yesterday = now - 24h;
|
|
|
|
|
|
|
|
|
|
REQUIRE(log_to_str(yesterday, "Some message", "%z", spdlog::pattern_time_type::utc) ==
|
|
|
|
|
"+00:00\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("color range test1", "[pattern_formatter]") {
|
|
|
|
|
auto formatter = std::make_shared<spdlog::pattern_formatter>(
|
|
|
|
|
"%^%v%$", spdlog::pattern_time_type::local, "\n");
|
|
|
|
|