+10
-9
@@ -15,11 +15,12 @@
|
||||
|
||||
#include <modulus.hpp>
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
struct stderr_capture {
|
||||
std::ostringstream stream{};
|
||||
std::streambuf* previous{std::cerr.rdbuf(stream.rdbuf())};
|
||||
std::streambuf *previous{std::cerr.rdbuf(stream.rdbuf())};
|
||||
~stderr_capture();
|
||||
};
|
||||
|
||||
@@ -71,7 +72,7 @@ BOOST_AUTO_TEST_CASE(modulus_logger_filters_and_reports_caller_location) {
|
||||
auto records = std::vector<modulus::log_record>{};
|
||||
auto logger = modulus::logger{};
|
||||
logger.set_level(modulus::log_level::DEBUG);
|
||||
logger.set_sink([&](const modulus::log_record& record) {
|
||||
logger.set_sink([&](const modulus::log_record &record) {
|
||||
records.push_back(record);
|
||||
});
|
||||
logger.log(modulus::log_level::TRACE, "hidden");
|
||||
@@ -85,7 +86,7 @@ BOOST_AUTO_TEST_CASE(modulus_logger_serializes_custom_sink_writes) {
|
||||
auto records = std::vector<modulus::log_record>{};
|
||||
auto logger = modulus::logger{};
|
||||
logger.set_level(modulus::log_level::INFO);
|
||||
logger.set_sink([&](const modulus::log_record& record) {
|
||||
logger.set_sink([&](const modulus::log_record &record) {
|
||||
records.push_back(record);
|
||||
});
|
||||
auto threads = std::vector<std::thread>{};
|
||||
@@ -96,12 +97,12 @@ BOOST_AUTO_TEST_CASE(modulus_logger_serializes_custom_sink_writes) {
|
||||
}
|
||||
});
|
||||
}
|
||||
for (auto& thread : threads) {
|
||||
for (auto &thread : threads) {
|
||||
thread.join();
|
||||
}
|
||||
BOOST_TEST(records.size() == std::size_t{200});
|
||||
auto messages = std::set<std::string>{};
|
||||
for (const auto& record : records) {
|
||||
for (const auto &record : records) {
|
||||
messages.insert(record.message);
|
||||
}
|
||||
BOOST_TEST(messages.size() == std::size_t{200});
|
||||
@@ -111,10 +112,10 @@ BOOST_AUTO_TEST_CASE(modulus_logger_tolerates_concurrent_configuration_changes)
|
||||
auto records = std::vector<modulus::log_record>{};
|
||||
auto logger = modulus::logger{};
|
||||
logger.set_level(modulus::log_level::INFO);
|
||||
logger.set_sink([&](const modulus::log_record& record) {
|
||||
logger.set_sink([&](const modulus::log_record &record) {
|
||||
records.push_back(record);
|
||||
});
|
||||
auto sink = [&](const modulus::log_record& record) -> void {
|
||||
auto sink = [&](const modulus::log_record &record) -> void {
|
||||
records.push_back(record);
|
||||
};
|
||||
auto mutator = std::thread{[&]() -> void {
|
||||
@@ -132,7 +133,7 @@ BOOST_AUTO_TEST_CASE(modulus_logger_tolerates_concurrent_configuration_changes)
|
||||
}
|
||||
});
|
||||
}
|
||||
for (auto& thread : threads) {
|
||||
for (auto &thread : threads) {
|
||||
thread.join();
|
||||
}
|
||||
mutator.join();
|
||||
@@ -159,7 +160,7 @@ BOOST_AUTO_TEST_CASE(modulus_default_logger_serializes_stderr_lines) {
|
||||
}
|
||||
});
|
||||
}
|
||||
for (auto& thread : threads) {
|
||||
for (auto &thread : threads) {
|
||||
thread.join();
|
||||
}
|
||||
auto captured = std::istringstream{capture.stream.str()};
|
||||
|
||||
Reference in New Issue
Block a user