mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-20 05:42:50 +02:00
fuzz: move init code to the CAddrManDeterministic constructor
Move the addrman init code from the test case to a newly added `CAddrManDeterministic` constructor. This way it can be reused by other tests.
This commit is contained in:
parent
dcd116950f
commit
6408b24517
@ -25,10 +25,15 @@ void initialize_addrman()
|
|||||||
class CAddrManDeterministic : public CAddrMan
|
class CAddrManDeterministic : public CAddrMan
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void MakeDeterministic(const uint256& random_seed)
|
explicit CAddrManDeterministic(FuzzedDataProvider& fuzzed_data_provider)
|
||||||
{
|
{
|
||||||
WITH_LOCK(cs, insecure_rand = FastRandomContext{random_seed});
|
WITH_LOCK(cs, insecure_rand = FastRandomContext{ConsumeUInt256(fuzzed_data_provider)});
|
||||||
Clear();
|
if (fuzzed_data_provider.ConsumeBool()) {
|
||||||
|
m_asmap = ConsumeRandomLengthBitVector(fuzzed_data_provider);
|
||||||
|
if (!SanityCheckASMap(m_asmap)) {
|
||||||
|
m_asmap.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -36,14 +41,7 @@ FUZZ_TARGET_INIT(addrman, initialize_addrman)
|
|||||||
{
|
{
|
||||||
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
||||||
SetMockTime(ConsumeTime(fuzzed_data_provider));
|
SetMockTime(ConsumeTime(fuzzed_data_provider));
|
||||||
CAddrManDeterministic addr_man;
|
CAddrManDeterministic addr_man{fuzzed_data_provider};
|
||||||
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)) {
|
|
||||||
addr_man.m_asmap.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (fuzzed_data_provider.ConsumeBool()) {
|
if (fuzzed_data_provider.ConsumeBool()) {
|
||||||
const std::vector<uint8_t> serialized_data{ConsumeRandomLengthByteVector(fuzzed_data_provider)};
|
const std::vector<uint8_t> serialized_data{ConsumeRandomLengthByteVector(fuzzed_data_provider)};
|
||||||
CDataStream ds(serialized_data, SER_DISK, INIT_PROTO_VERSION);
|
CDataStream ds(serialized_data, SER_DISK, INIT_PROTO_VERSION);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user