Skip to content

Commit 7de24f7

Browse files
committed
test: skip sv2 TPTester tests on Windows
The template_provider_tests `client_tests`, `fee_timer_blocking_test` and `new_tip_bypasses_fee_timer_test` cases each construct and tear down a TPTester. Like the lifecycle test skipped in the previous commit, that teardown deadlocks intermittently on Windows in std::thread::join during libmultiprocess thread-local state cleanup. This is a known libmultiprocess Windows issue, not specific to sv2-tp: bitcoin-core/libmultiprocess#231 bitcoin/bitcoin#32387 Gate the three TPTester-using cases off on _WIN32 with a TODO. The non-IPC test `block_reserved_weight_floor` continues to run on Windows. Assisted-by: GitHub Copilot Assisted-by: Anthropic Claude Opus 4
1 parent d42af54 commit 7de24f7

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

src/test/sv2_template_provider_tests.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ BOOST_AUTO_TEST_CASE(block_reserved_weight_floor)
3838
BOOST_REQUIRE_EQUAL(options.block_reserved_weight, node::MIN_BLOCK_RESERVED_WEIGHT);
3939
}
4040

41+
// TODO: Re-enable on Windows once the libmultiprocess shutdown hang is fixed
42+
// upstream. Tearing down TPTester (and with it the IPC EventLoop / per-thread
43+
// state) deadlocks in std::thread::join on mingw winpthreads. This is a known
44+
// libmultiprocess Windows issue, not specific to sv2-tp. Tracked in
45+
// libmultiprocess#231 and bitcoin#32387.
46+
#ifndef WIN32
4147
BOOST_AUTO_TEST_CASE(client_tests)
4248
{
4349
TPTester tester{};
@@ -282,5 +288,6 @@ BOOST_AUTO_TEST_CASE(new_tip_bypasses_fee_timer_test)
282288

283289
tester.m_mining_control->Shutdown();
284290
}
291+
#endif // !WIN32
285292

286293
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)