From 841068ee92c0ff0bec1cf5ea9d02632d3c45f7bc Mon Sep 17 00:00:00 2001 From: rustaceanrob Date: Fri, 5 Jun 2026 09:16:47 +0100 Subject: [PATCH 1/2] Tighten constraints on a few `BOOST_CHECK_EQUAL` --- src/test/dbwrapper_tests.cpp | 2 +- src/test/result_tests.cpp | 1 + src/test/settings_tests.cpp | 4 ++-- src/test/threadpool_tests.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/dbwrapper_tests.cpp b/src/test/dbwrapper_tests.cpp index 185bf491e57b..864b43b6ceb9 100644 --- a/src/test/dbwrapper_tests.cpp +++ b/src/test/dbwrapper_tests.cpp @@ -425,7 +425,7 @@ BOOST_AUTO_TEST_CASE(iterator_string_ordering) for (int z = 0; z < y; ++z) exp_key += exp_key; StringContentsSerializer key; - uint32_t value; + uint32_t value{}; BOOST_CHECK(it->Valid()); if (!it->Valid()) // Avoid spurious errors about invalid iterator's key and value in case of failure break; diff --git a/src/test/result_tests.cpp b/src/test/result_tests.cpp index dfb6da2e4887..b0d74af23e0f 100644 --- a/src/test/result_tests.cpp +++ b/src/test/result_tests.cpp @@ -2,6 +2,7 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include #include #include diff --git a/src/test/settings_tests.cpp b/src/test/settings_tests.cpp index 54d3b0581186..d6e0b4ec19bc 100644 --- a/src/test/settings_tests.cpp +++ b/src/test/settings_tests.cpp @@ -146,9 +146,9 @@ BOOST_AUTO_TEST_CASE(NullOverride) { common::Settings settings; settings.command_line_options["name"].emplace_back("value"); - BOOST_CHECK_EQUAL(R"("value")", GetSetting(settings, "section", "name", false, false, false).write().c_str()); + BOOST_CHECK_EQUAL(R"("value")", GetSetting(settings, "section", "name", false, false, false).write()); settings.forced_settings["name"] = {}; - BOOST_CHECK_EQUAL(R"(null)", GetSetting(settings, "section", "name", false, false, false).write().c_str()); + BOOST_CHECK_EQUAL(R"(null)", GetSetting(settings, "section", "name", false, false, false).write()); } // Test different ways settings can be merged, and verify results. This test can diff --git a/src/test/threadpool_tests.cpp b/src/test/threadpool_tests.cpp index 1100e87686f2..aee82071eb19 100644 --- a/src/test/threadpool_tests.cpp +++ b/src/test/threadpool_tests.cpp @@ -384,7 +384,7 @@ BOOST_AUTO_TEST_CASE(start_mid_stop_does_not_deadlock) try { threadPool.Start(NUM_WORKERS_DEFAULT); } catch (std::exception& e) { - BOOST_CHECK_EQUAL(e.what(), "Thread pool has been interrupted or is stopping"); + BOOST_CHECK_EQUAL(std::string{e.what()}, "Thread pool has been interrupted or is stopping"); } workers_blocker.release(NUM_WORKERS_DEFAULT); WAIT_FOR(blocking_tasks); From e6280fc8e670f61732d7c58fba5187b179c1eaa5 Mon Sep 17 00:00:00 2001 From: rustaceanrob Date: Fri, 5 Jun 2026 09:21:16 +0100 Subject: [PATCH 2/2] Reduce floating point precision on i686 `Boost.Test` was silently changing the precision of floating point arthimetic on i686. This brings this behavior forward. The test that failed was a member of `blockchain_tests`, which asserted difficulty adjustment calculations were within a certain epsilon. This failed when removing boost because the computation became _too_ precise. --- CMakePresets.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakePresets.json b/CMakePresets.json index 8ff3d5d8deb3..d0cc560e8c34 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -123,6 +123,8 @@ "displayName": "CI i686 Linux build", "errors": {"dev": true}, "cacheVariables": { + "APPEND_CFLAGS": "-msse2 -mfpmath=sse", + "APPEND_CXXFLAGS": "-msse2 -mfpmath=sse", "APPEND_CPPFLAGS": "-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE", "BUILD_BENCH": "ON", "BUILD_CLI": "ON",