fuzz: Fix misplaced SeedRand::ZEROS

After commit fae63bf130 this must be
placed even before test_setup.
This commit is contained in:
MarcoFalke 2024-12-18 09:13:35 +01:00
parent 477b357460
commit fadd568931
No known key found for this signature in database
2 changed files with 4 additions and 4 deletions

View file

@ -24,12 +24,12 @@ struct CheckGlobalsImpl {
"The current fuzz target used the global random state.\n\n" "The current fuzz target used the global random state.\n\n"
"This is acceptable, but requires the fuzz target to call \n" "This is acceptable, but requires the fuzz target to call \n"
"SeedRandomStateForTest(SeedRand::ZEROS) at the beginning \n" "SeedRandomStateForTest(SeedRand::ZEROS) in the first line \n"
"of processing the fuzz input.\n\n" "of the FUZZ_TARGET function.\n\n"
"An alternative solution would be to avoid any use of globals.\n\n" "An alternative solution would be to avoid any use of globals.\n\n"
"Without a solution, fuzz stability and determinism can lead \n" "Without a solution, fuzz instability and non-determinism can lead \n"
"to non-reproducible bugs or inefficient fuzzing.\n\n" "to non-reproducible bugs or inefficient fuzzing.\n\n"
<< std::endl; << std::endl;
std::abort(); // Abort, because AFL may try to recover from a std::exit std::abort(); // Abort, because AFL may try to recover from a std::exit

View file

@ -21,6 +21,7 @@ using node::BlockAssembler;
FUZZ_TARGET(utxo_total_supply) FUZZ_TARGET(utxo_total_supply)
{ {
SeedRandomStateForTest(SeedRand::ZEROS);
/** The testing setup that creates a chainman only (no chainstate) */ /** The testing setup that creates a chainman only (no chainstate) */
ChainTestingSetup test_setup{ ChainTestingSetup test_setup{
ChainType::REGTEST, ChainType::REGTEST,
@ -28,7 +29,6 @@ FUZZ_TARGET(utxo_total_supply)
.extra_args = {"-testactivationheight=bip34@2"}, .extra_args = {"-testactivationheight=bip34@2"},
}, },
}; };
SeedRandomStateForTest(SeedRand::ZEROS); // Can not be done before test_setup
// Create chainstate // Create chainstate
test_setup.LoadVerifyActivateChainstate(); test_setup.LoadVerifyActivateChainstate();
auto& node{test_setup.m_node}; auto& node{test_setup.m_node};