2ba5628 validation: use parallel input prevout fetching in TestBlockValidity:
TestBlockValidity() previously used a local cache. This PR changes it to reuse ConnectBlockView(), which a synchronous BlockChecked callback can reach while ConnectTip() still has a fetch active.
Could we first record that both paths now select the same overlay?
BOOST_AUTO_TEST_CASE(testblockvalidity_with_active_connect_view)
{
auto tip_hash{WITH_LOCK(cs_main, return Assert(m_node.chainman)->ActiveTip()->GetBlockHash())};
auto outer_block{BadBlock(tip_hash)};
auto candidate_block{GoodBlock(tip_hash)};
LOCK(cs_main);
auto& chainstate{Assert(m_node.chainman)->ActiveChainstate()};
auto reset_guard{chainstate.ConnectBlockView().StartFetching(*outer_block)};
BOOST_CHECK(&chainstate.TestBlockValidityView() != &chainstate.ConnectBlockView());
BOOST_CHECK(TestBlockValidity(chainstate, *candidate_block, /*check_pow=*/false, /*check_merkle_root=*/false).IsValid());
}