mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04: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()
|
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.
|
// Terminate immediately if a fuzzing harness ever tries to create a socket.
|
||||||
// Individual tests can override this by pointing CreateSock to a mocked alternative.
|
// Individual tests can override this by pointing CreateSock to a mocked alternative.
|
||||||
CreateSock = [](int, int, int) -> std::unique_ptr<Sock> { std::terminate(); };
|
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")) {
|
if (!m_node.args->IsArgSet("-testdatadir")) {
|
||||||
// By default, the data directory has a random name
|
// By default, the data directory has a random name
|
||||||
const auto rand_str{g_insecure_rand_ctx_temp_path.rand256().ToString()};
|
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));
|
gArgs.ForceSetArg("-datadir", fs::PathToString(m_path_root));
|
||||||
|
|
||||||
SelectParams(chainType);
|
SelectParams(chainType);
|
||||||
SeedRandomForTest();
|
|
||||||
if (G_TEST_LOG_FUN) LogInstance().PushBackCallback(G_TEST_LOG_FUN);
|
if (G_TEST_LOG_FUN) LogInstance().PushBackCallback(G_TEST_LOG_FUN);
|
||||||
InitLogging(*m_node.args);
|
InitLogging(*m_node.args);
|
||||||
AppInitParameterInteraction(*m_node.args);
|
AppInitParameterInteraction(*m_node.args);
|
||||||
|
|
Loading…
Add table
Reference in a new issue