aboutsummaryrefslogtreecommitdiff
path: root/src/test/fuzz/addrman.cpp
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2020-11-19 10:43:00 +0000
committerpracticalswift <practicalswift@users.noreply.github.com>2020-11-19 17:21:55 +0000
commit17a5f172fa9ec509b1c3f950ee8dfb6f025534d2 (patch)
tree084e4fafaa6c1672c3f91d95c91b2d96f3e2ef01 /src/test/fuzz/addrman.cpp
parent3457054c61d5b74800797e2c26a8126a21352382 (diff)
downloadbitcoin-17a5f172fa9ec509b1c3f950ee8dfb6f025534d2.tar.xz
fuzz: Make addrman fuzzing harness deterministic
Diffstat (limited to 'src/test/fuzz/addrman.cpp')
-rw-r--r--src/test/fuzz/addrman.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/test/fuzz/addrman.cpp b/src/test/fuzz/addrman.cpp
index 0ceeea2d36..ae595be742 100644
--- a/src/test/fuzz/addrman.cpp
+++ b/src/test/fuzz/addrman.cpp
@@ -22,12 +22,22 @@ void initialize()
SelectParams(CBaseChainParams::REGTEST);
}
+class CAddrManDeterministic : public CAddrMan
+{
+public:
+ void MakeDeterministic(const uint256& random_seed)
+ {
+ insecure_rand = FastRandomContext{random_seed};
+ Clear();
+ }
+};
+
void test_one_input(const std::vector<uint8_t>& buffer)
{
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
-
SetMockTime(ConsumeTime(fuzzed_data_provider));
- CAddrMan addr_man;
+ CAddrManDeterministic addr_man;
+ addr_man.MakeDeterministic(ConsumeUInt256(fuzzed_data_provider));
if (fuzzed_data_provider.ConsumeBool()) {
addr_man.m_asmap = ConsumeRandomLengthBitVector(fuzzed_data_provider);
if (!SanityCheckASMap(addr_man.m_asmap)) {