diff --git a/src/test/fuzz/cmpctblock.cpp b/src/test/fuzz/cmpctblock.cpp index 497389a67de..d5e6e0d19de 100644 --- a/src/test/fuzz/cmpctblock.cpp +++ b/src/test/fuzz/cmpctblock.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -48,7 +47,6 @@ #include #include #include -#include #include #include @@ -104,15 +102,6 @@ public: }; -//! Used to run tasks in a std::thread to avoid DEBUG_LOCKORDER false positives. -class ImmediateBackgroundTaskRunner : public util::TaskRunnerInterface -{ -public: - void insert(std::function func) override { std::thread(std::move(func)).join(); } - void flush() override {} - size_t size() override { return 0; } -}; - } // namespace extern void MakeRandDeterministicDANGEROUS(const uint256& seed) noexcept; diff --git a/src/test/fuzz/process_messages.cpp b/src/test/fuzz/process_messages.cpp index f893ebe43d8..f4a93df8dc1 100644 --- a/src/test/fuzz/process_messages.cpp +++ b/src/test/fuzz/process_messages.cpp @@ -50,6 +50,8 @@ void initialize_process_messages() {}), }; g_setup = testing_setup.get(); + // Replace validation_signals before creating chainman and mempool so they use it. + g_setup->m_node.validation_signals = std::make_unique(std::make_unique()); ResetChainmanAndMempool(*g_setup, init_clock); } diff --git a/src/test/util/validation.h b/src/test/util/validation.h index 91930b3dd73..f5d05ec4888 100644 --- a/src/test/util/validation.h +++ b/src/test/util/validation.h @@ -7,8 +7,12 @@ #include #include +#include #include +#include +#include +#include #include #include @@ -19,6 +23,15 @@ class CValidationInterface; class FakeNodeClock; struct TestingSetup; +/// Runs callbacks synchronously and deterministically, while avoiding DEBUG_LOCKORDER false positives. +class ImmediateBackgroundTaskRunner : public util::TaskRunnerInterface +{ +public: + void insert(std::function func) override { std::thread(std::move(func)).join(); } + void flush() override {} + size_t size() override { return 0; } +}; + struct TestBlockManager : public node::BlockManager { /** Test-only method to clear internal state for fuzzing */ void CleanupForFuzzing();