6#define TEST_FILENAME "test_logs/async_test.log"
11 size_t overrun_counter = 0;
12 size_t queue_size = 128;
13 size_t messages = 256;
17 for (
size_t i = 0; i < messages; i++)
19 logger->info(
"Hello message #{}", i);
22 overrun_counter = tp->overrun_counter();
24 REQUIRE(test_sink->msg_counter() == messages);
25 REQUIRE(test_sink->flush_counter() == 1);
33 size_t queue_size = 4;
34 size_t messages = 1024;
38 for (
size_t i = 0; i < messages; i++)
40 logger->info(
"Hello message");
42 REQUIRE(test_sink->msg_counter() < messages);
43 REQUIRE(tp->overrun_counter() > 0);
46TEST_CASE(
"discard policy using factory ",
"[async]")
48 size_t queue_size = 4;
49 size_t messages = 1024;
52 auto logger = spdlog::create_async_nb<spdlog::sinks::test_sink_mt>(
"as2");
56 for (
size_t i = 0; i < messages; i++)
58 logger->info(
"Hello message");
61 REQUIRE(test_sink->msg_counter() < messages);
68 size_t queue_size = 256;
69 size_t messages = 256;
73 for (
size_t i = 0; i < messages; i++)
75 logger->info(
"Hello message #{}", i);
81 REQUIRE(test_sink->msg_counter() == messages);
82 REQUIRE(test_sink->flush_counter() == 1);
88 auto logger = spdlog::create_async<spdlog::sinks::test_sink_mt>(
"as");
93 REQUIRE(test_sink->flush_counter() == 1);
102 size_t messages = 100;
106 for (
size_t i = 0; i < messages; i++)
108 logger->info(
"Hello message #{}", i);
113 REQUIRE(test_sink->msg_counter() == messages);
114 REQUIRE(test_sink->flush_counter() == 1);
120 size_t queue_size = 128;
121 size_t messages = 256;
122 size_t n_threads = 10;
128 for (
size_t i = 0; i < n_threads; i++)
131 for (
size_t j = 0; j < messages; j++)
133 logger->info(
"Hello message #{}", j);
139 for (
auto &t : threads)
145 REQUIRE(test_sink->msg_counter() == messages * n_threads);
146 REQUIRE(test_sink->flush_counter() == n_threads);
152 size_t messages = 1024;
153 size_t tp_threads = 1;
160 for (
size_t j = 0; j < messages; j++)
162 logger->info(
"Hello message #{}", j);
169 REQUIRE(
ends_with(contents, fmt::format(
"Hello message #1023{}", default_eol)));
175 size_t messages = 1024 * 10;
176 size_t tp_threads = 10;
183 for (
size_t j = 0; j < messages; j++)
185 logger->info(
"Hello message #{}", j);
#define SPDLOG_FILENAME_T(s)
T emplace_back(T... args)
static SPDLOG_CONSTEXPR const char * default_eol
SPDLOG_INLINE void flush_every(std::chrono::seconds interval)
void init_thread_pool(size_t q_size, size_t thread_count, std::function< void()> on_thread_start)
SPDLOG_INLINE void drop_all()
std::string file_contents(const std::string &filename)
void require_message_count(const std::string &filename, const std::size_t messages)
bool ends_with(std::string const &value, std::string const &ending)