Commit 0f25b25b authored by Alexander Zilberkant's avatar Alexander Zilberkant

add async_logger tests

cover discarded messages use-case
parent 42258a10
......@@ -10,7 +10,7 @@ find_package(Threads)
add_library(catch INTERFACE)
target_include_directories(catch INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB catch_tests LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
file(GLOB catch_tests LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp *.h *.hpp)
add_executable(catch_tests ${catch_tests})
target_link_libraries(catch_tests spdlog ${CMAKE_THREAD_LIBS_INIT})
......
#include <iostream>
#include "includes.h"
#include "../include/spdlog/common.h"
#include "../include/spdlog/tweakme.h"
TEST_CASE("async_logging_overflow ", "[async_logging]")
{
std::string filename = "logs/async_log_overflow.txt";
auto sink = std::make_shared<spdlog::sinks::simple_file_sink_st>(filename, true);
auto logger = std::make_shared<spdlog::async_logger>(
"overflow_logger",
sink,
2, // queue size
spdlog::async_overflow_policy::discard_log_msg
);
for (int i = 0; i < 8; i++) {
logger->info("Message #{}", i);
}
logger->flush();
logger.reset();
std::string the_log = file_contents(filename);
#if defined(SPDLOG_ASYNC_COUNT_DISCARDED_MSG)
std::cout << the_log << std::endl;
REQUIRE(the_log.find("Dropped 6 messages") != std::string::npos);
#endif
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment