aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2020-03-30 13:59:13 -0400
committerMarcoFalke <falke.marco@gmail.com>2020-03-30 15:18:42 -0400
commitfa3cc0bfc4c4fc13a384fc291403c9fd41082f18 (patch)
treea28305955fc23be7669f3e7eb83ca68900a3aa69
parent5f9cd62f33fb4d440173b9c376cadf4887e81e9d (diff)
downloadbitcoin-fa3cc0bfc4c4fc13a384fc291403c9fd41082f18.tar.xz
test: Remove unsafe BOOST_TEST_MESSAGE
-rw-r--r--src/Makefile.test.include2
-rw-r--r--src/test/main.cpp18
-rw-r--r--test/sanitizer_suppressions/tsan8
3 files changed, 12 insertions, 16 deletions
diff --git a/src/Makefile.test.include b/src/Makefile.test.include
index 059876bec8..93c5973a21 100644
--- a/src/Makefile.test.include
+++ b/src/Makefile.test.include
@@ -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)
diff --git a/src/test/main.cpp b/src/test/main.cpp
index e6529949e2..f32243d1d3 100644
--- a/src/test/main.cpp
+++ b/src/test/main.cpp
@@ -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;
};
diff --git a/test/sanitizer_suppressions/tsan b/test/sanitizer_suppressions/tsan
index b9c5c038d0..70eea34363 100644
--- a/test/sanitizer_suppressions/tsan
+++ b/test/sanitizer_suppressions/tsan
@@ -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/*