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)