Merge 85fee49c39 into merged_master (Bitcoin PR #20946)

This commit is contained in:
Andrew Poelstra 2021-06-18 03:52:20 +00:00
commit d7061d9c10
12 changed files with 26 additions and 29 deletions

View file

@ -26,7 +26,7 @@ int64_t ConsumeBanTimeOffset(FuzzedDataProvider& fuzzed_data_provider) noexcept
void initialize_banman()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<>();
}
FUZZ_TARGET_INIT(banman, initialize_banman)

View file

@ -36,9 +36,7 @@ bool operator==(const Coin& a, const Coin& b)
void initialize_coins_view()
{
static const ECCVerifyHandle ecc_verify_handle;
ECC_Start();
SelectParams(CBaseChainParams::REGTEST);
static const auto testing_setup = MakeFuzzingContext<const TestingSetup>();
}
FUZZ_TARGET_INIT(coins_view, initialize_coins_view)

View file

@ -17,7 +17,7 @@
void initialize_connman()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<>();
}
FUZZ_TARGET_INIT(connman, initialize_connman)

View file

@ -13,7 +13,7 @@
void initialize_data_stream_addr_man()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<>();
}
FUZZ_TARGET_INIT(data_stream_addr_man, initialize_data_stream_addr_man)

View file

@ -15,7 +15,7 @@
void initialize_load_external_block_file()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<const TestingSetup>();
}
FUZZ_TARGET_INIT(load_external_block_file, initialize_load_external_block_file)

View file

@ -22,7 +22,7 @@
void initialize_net()
{
static const BasicTestingSetup basic_testing_setup;
static const auto testing_setup = MakeFuzzingContext<>(CBaseChainParams::MAIN);
}
FUZZ_TARGET_INIT(net, initialize_net)

View file

@ -16,7 +16,7 @@
void initialize_policy_estimator()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<>();
}
FUZZ_TARGET_INIT(policy_estimator, initialize_policy_estimator)

View file

@ -12,7 +12,7 @@
void initialize_policy_estimator_io()
{
InitializeFuzzingContext();
static const auto testing_setup = MakeFuzzingContext<>();
}
FUZZ_TARGET_INIT(policy_estimator_io, initialize_policy_estimator_io)

View file

@ -38,14 +38,8 @@ const TestingSetup* g_setup;
void initialize_process_message()
{
static TestingSetup setup{
CBaseChainParams::REGTEST,
{
"-nodebuglogfile",
},
};
g_setup = &setup;
static const auto testing_setup = MakeFuzzingContext<const TestingSetup>();
g_setup = testing_setup.get();
for (int i = 0; i < 2 * COINBASE_MATURITY; i++) {
MineBlock(g_setup->m_node, CScript() << OP_TRUE);
}

View file

@ -17,18 +17,14 @@
#include <validation.h>
#include <validationinterface.h>
namespace {
const TestingSetup* g_setup;
} // namespace
void initialize_process_messages()
{
static TestingSetup setup{
CBaseChainParams::REGTEST,
{
"-nodebuglogfile",
},
};
g_setup = &setup;
static const auto testing_setup = MakeFuzzingContext<const TestingSetup>();
g_setup = testing_setup.get();
for (int i = 0; i < 2 * COINBASE_MATURITY; i++) {
MineBlock(g_setup->m_node, CScript() << OP_TRUE);
}

View file

@ -17,7 +17,7 @@
void initialize_signet()
{
InitializeFuzzingContext(CBaseChainParams::SIGNET);
static const auto testing_setup = MakeFuzzingContext<>(CBaseChainParams::SIGNET);
}
FUZZ_TARGET_INIT(signet, initialize_signet)

View file

@ -27,6 +27,7 @@
#include <txmempool.h>
#include <uint256.h>
#include <util/time.h>
#include <util/vector.h>
#include <version.h>
#include <algorithm>
@ -339,9 +340,17 @@ inline void FillNode(FuzzedDataProvider& fuzzed_data_provider, CNode& node, cons
}
}
inline void InitializeFuzzingContext(const std::string& chain_name = CBaseChainParams::REGTEST)
template <class T = const BasicTestingSetup>
std::unique_ptr<T> MakeFuzzingContext(const std::string& chain_name = CBaseChainParams::REGTEST, const std::string& fedpegscript = "", const std::vector<const char*>& extra_args = {})
{
static const BasicTestingSetup basic_testing_setup{chain_name, {"-nodebuglogfile"}};
// Prepend default arguments for fuzzing
const std::vector<const char*> arguments = Cat(
{
"-nodebuglogfile",
},
extra_args);
return MakeUnique<T>(chain_name, fedpegscript, arguments);
}
class FuzzedFileProvider