Page MenuHomePhabricator

D11678.diff
No OneTemporary

D11678.diff

diff --git a/src/test/fuzz/banman.cpp b/src/test/fuzz/banman.cpp
--- a/src/test/fuzz/banman.cpp
+++ b/src/test/fuzz/banman.cpp
@@ -30,7 +30,7 @@
} // namespace
void initialize() {
- InitializeFuzzingContext();
+ static const auto testing_setup = MakeFuzzingContext<>();
}
void test_one_input(const std::vector<uint8_t> &buffer) {
diff --git a/src/test/fuzz/load_external_block_file.cpp b/src/test/fuzz/load_external_block_file.cpp
--- a/src/test/fuzz/load_external_block_file.cpp
+++ b/src/test/fuzz/load_external_block_file.cpp
@@ -15,7 +15,7 @@
#include <vector>
void initialize() {
- InitializeFuzzingContext();
+ static const auto testing_setup = MakeFuzzingContext<>();
}
void test_one_input(const std::vector<uint8_t> &buffer) {
diff --git a/src/test/fuzz/net.cpp b/src/test/fuzz/net.cpp
--- a/src/test/fuzz/net.cpp
+++ b/src/test/fuzz/net.cpp
@@ -23,7 +23,8 @@
#include <vector>
void initialize() {
- static const BasicTestingSetup basic_testing_setup;
+ static const auto testing_setup =
+ MakeFuzzingContext<>(CBaseChainParams::MAIN);
}
void test_one_input(const std::vector<uint8_t> &buffer) {
diff --git a/src/test/fuzz/process_message.cpp b/src/test/fuzz/process_message.cpp
--- a/src/test/fuzz/process_message.cpp
+++ b/src/test/fuzz/process_message.cpp
@@ -18,6 +18,7 @@
#include <test/fuzz/FuzzedDataProvider.h>
#include <test/fuzz/fuzz.h>
+#include <test/fuzz/util.h>
#include <test/util/mining.h>
#include <test/util/net.h>
#include <test/util/setup_common.h>
@@ -46,14 +47,8 @@
} // namespace
void initialize() {
- 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(GetConfig(), g_setup->m_node, CScript() << OP_TRUE);
}
diff --git a/src/test/fuzz/process_messages.cpp b/src/test/fuzz/process_messages.cpp
--- a/src/test/fuzz/process_messages.cpp
+++ b/src/test/fuzz/process_messages.cpp
@@ -18,17 +18,13 @@
#include <test/util/net.h>
#include <test/util/setup_common.h>
+namespace {
const TestingSetup *g_setup;
+} // namespace
void initialize() {
- 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(GetConfig(), g_setup->m_node, CScript() << OP_TRUE);
}
diff --git a/src/test/fuzz/util.h b/src/test/fuzz/util.h
--- a/src/test/fuzz/util.h
+++ b/src/test/fuzz/util.h
@@ -16,6 +16,7 @@
#include <serialize.h>
#include <streams.h>
#include <uint256.h>
+#include <util/vector.h>
#include <version.h>
#include <test/fuzz/FuzzedDataProvider.h>
@@ -255,10 +256,18 @@
fuzzed_data_provider.ConsumeIntegral<uint8_t>()};
}
-void InitializeFuzzingContext(
- const std::string &chain_name = CBaseChainParams::REGTEST) {
- static const BasicTestingSetup basic_testing_setup{chain_name,
- {"-nodebuglogfile"}};
+template <class T = const BasicTestingSetup>
+std::unique_ptr<T>
+MakeFuzzingContext(const std::string &chain_name = CBaseChainParams::REGTEST,
+ const std::vector<const char *> &extra_args = {}) {
+ // Prepend default arguments for fuzzing
+ const std::vector<const char *> arguments = Cat(
+ {
+ "-nodebuglogfile",
+ },
+ extra_args);
+
+ return std::make_unique<T>(chain_name, arguments);
}
class FuzzedFileProvider {

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 09:27 (3 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187200
Default Alt Text
D11678.diff (3 KB)

Event Timeline