mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
tests: make fuzz tests (mostly) deterministic with fixed seed
This commit is contained in:
parent
2c91330dd6
commit
97e16f5704
2 changed files with 10 additions and 1 deletions
|
@ -102,6 +102,12 @@ void ResetCoverageCounters() {}
|
|||
|
||||
void initialize()
|
||||
{
|
||||
// By default, make the RNG deterministic with a fixed seed. This will affect all
|
||||
// randomness during the fuzz test, except:
|
||||
// - GetStrongRandBytes(), which is used for the creation of private key material.
|
||||
// - Creating a BasicTestingSetup or derived class will switch to a random seed.
|
||||
SeedRandomForTest(SeedRand::ZEROS);
|
||||
|
||||
// Terminate immediately if a fuzzing harness ever tries to create a socket.
|
||||
// Individual tests can override this by pointing CreateSock to a mocked alternative.
|
||||
CreateSock = [](int, int, int) -> std::unique_ptr<Sock> { std::terminate(); };
|
||||
|
|
|
@ -145,6 +145,10 @@ BasicTestingSetup::BasicTestingSetup(const ChainType chainType, const std::vecto
|
|||
}
|
||||
}
|
||||
|
||||
// Use randomly chosen seed for deterministic PRNG, so that (by default) test
|
||||
// data directories use a random name that doesn't overlap with other tests.
|
||||
SeedRandomForTest(SeedRand::SEED);
|
||||
|
||||
if (!m_node.args->IsArgSet("-testdatadir")) {
|
||||
// By default, the data directory has a random name
|
||||
const auto rand_str{g_insecure_rand_ctx_temp_path.rand256().ToString()};
|
||||
|
@ -178,7 +182,6 @@ BasicTestingSetup::BasicTestingSetup(const ChainType chainType, const std::vecto
|
|||
gArgs.ForceSetArg("-datadir", fs::PathToString(m_path_root));
|
||||
|
||||
SelectParams(chainType);
|
||||
SeedRandomForTest();
|
||||
if (G_TEST_LOG_FUN) LogInstance().PushBackCallback(G_TEST_LOG_FUN);
|
||||
InitLogging(*m_node.args);
|
||||
AppInitParameterInteraction(*m_node.args);
|
||||
|
|
Loading…
Add table
Reference in a new issue