test: Remove unsafe BOOST_TEST_MESSAGE

pull/764/head
MarcoFalke 5 years ago
parent 5f9cd62f33
commit fa3cc0bfc4
No known key found for this signature in database
GPG Key ID: CE2B75697E69A548

@ -1011,7 +1011,7 @@ endif
%.cpp.test: %.cpp
@echo Running tests: `cat $< | grep -E "(BOOST_FIXTURE_TEST_SUITE\\(|BOOST_AUTO_TEST_SUITE\\()" | cut -d '(' -f 2 | cut -d ',' -f 1 | cut -d ')' -f 1` from $<
$(AM_V_at)$(TEST_BINARY) --catch_system_errors=no -l test_suite -t "`cat $< | grep -E "(BOOST_FIXTURE_TEST_SUITE\\(|BOOST_AUTO_TEST_SUITE\\()" | cut -d '(' -f 2 | cut -d ',' -f 1 | cut -d ')' -f 1`" > $<.log 2>&1 || (cat $<.log && false)
$(AM_V_at)$(TEST_BINARY) --catch_system_errors=no -l test_suite -t "`cat $< | grep -E "(BOOST_FIXTURE_TEST_SUITE\\(|BOOST_AUTO_TEST_SUITE\\()" | cut -d '(' -f 2 | cut -d ',' -f 1 | cut -d ')' -f 1`" -- DEBUG_LOG_OUT > $<.log 2>&1 || (cat $<.log && false)
%.json.h: %.json
@$(MKDIR_P) $(@D)

@ -11,12 +11,16 @@
#include <test/util/setup_common.h>
/** Redirect debug log to boost log */
#include <iostream>
/** Redirect debug log to unit_test.log files */
const std::function<void(const std::string&)> G_TEST_LOG_FUN = [](const std::string& s) {
if (s.back() == '\n') {
// boost will insert the new line
BOOST_TEST_MESSAGE(s.substr(0, s.size() - 1));
} else {
BOOST_TEST_MESSAGE(s);
}
static const bool should_log{std::any_of(
&boost::unit_test::framework::master_test_suite().argv[1],
&boost::unit_test::framework::master_test_suite().argv[boost::unit_test::framework::master_test_suite().argc],
[](const char* arg) {
return std::string{"DEBUG_LOG_OUT"} == arg;
})};
if (!should_log) return;
std::cout << s;
};

@ -7,14 +7,6 @@ deadlock:WalletBatch
# Intentional deadlock in tests
deadlock:TestPotentialDeadLockDetected
# Race due to unprotected calls to thread-unsafe BOOST_TEST_MESSAGE from different threads:
# * G_TEST_LOG_FUN in the index thread
# * boost test case invoker (entering a test case) in the main thread
# TODO: get rid of BOOST_ macros, see also https://github.com/bitcoin/bitcoin/issues/8670
race:blockfilter_index_initial_sync_invoker
race:txindex_initial_sync_invoker
race:validation_block_tests::TestSubscriber
# Wildcard for all gui tests, should be replaced with non-wildcard suppressions
race:src/qt/test/*
deadlock:src/qt/test/*

Loading…
Cancel
Save