aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2019-10-24 08:31:28 -0400
committerMarcoFalke <falke.marco@gmail.com>2019-10-24 08:32:07 -0400
commitd53828cb79688d72a18d2cc550dcd1dfe2d3dd85 (patch)
treefff2ec0558bd006bb235539e3389b59c4187fe12 /src
parent205cffaf383cbefaca47965ce4f99e7c5704a75f (diff)
parentc2f964a6745be085f2891c909d6c998687de9080 (diff)
downloadbitcoin-d53828cb79688d72a18d2cc550dcd1dfe2d3dd85.tar.xz
Merge #17235: tests: Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed.
c2f964a6745be085f2891c909d6c998687de9080 tests: Remove Cygwin WinMain workaround (practicalswift) db4bd32cc31789fc017f5db0b86a69ee43e41575 tests: Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed. (practicalswift) Pull request description: Skip unnecessary fuzzer initialisation. Hold `ECCVerifyHandle` only when needed. As suggested by MarcoFalke in https://github.com/bitcoin/bitcoin/pull/17018#discussion_r336645391. Top commit has no ACKs. Tree-SHA512: 598da44859d736e3fdc143b93e07f444d8ad19dfdab0cfe7c6ccff8644e862664d869337dfe6b49416ed09a0024e4a5f2220ca6246de568f9e9227d721baa28e
Diffstat (limited to 'src')
-rw-r--r--src/test/fuzz/deserialize.cpp7
-rw-r--r--src/test/fuzz/fuzz.cpp16
2 files changed, 11 insertions, 12 deletions
diff --git a/src/test/fuzz/deserialize.cpp b/src/test/fuzz/deserialize.cpp
index 3a6876ad39..bcd8691359 100644
--- a/src/test/fuzz/deserialize.cpp
+++ b/src/test/fuzz/deserialize.cpp
@@ -12,6 +12,7 @@
#include <net.h>
#include <primitives/block.h>
#include <protocol.h>
+#include <pubkey.h>
#include <streams.h>
#include <undo.h>
#include <version.h>
@@ -23,6 +24,12 @@
#include <test/fuzz/fuzz.h>
+void initialize()
+{
+ // Fuzzers using pubkey must hold an ECCVerifyHandle.
+ static const auto verify_handle = MakeUnique<ECCVerifyHandle>();
+}
+
void test_one_input(const std::vector<uint8_t>& buffer)
{
CDataStream ds(buffer, SER_NETWORK, INIT_PROTO_VERSION);
diff --git a/src/test/fuzz/fuzz.cpp b/src/test/fuzz/fuzz.cpp
index a8a108cd18..da4e623e98 100644
--- a/src/test/fuzz/fuzz.cpp
+++ b/src/test/fuzz/fuzz.cpp
@@ -4,11 +4,9 @@
#include <test/fuzz/fuzz.h>
+#include <cstdint>
#include <unistd.h>
-
-#include <pubkey.h>
-#include <util/memory.h>
-
+#include <vector>
static bool read_stdin(std::vector<uint8_t>& data)
{
@@ -23,10 +21,8 @@ static bool read_stdin(std::vector<uint8_t>& data)
}
// Default initialization: Override using a non-weak initialize().
-__attribute__((weak))
-void initialize()
+__attribute__((weak)) void initialize()
{
- const static auto verify_handle = MakeUnique<ECCVerifyHandle>();
}
// This function is used by libFuzzer
@@ -44,13 +40,9 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
return 0;
}
-// Disabled under WIN32 due to clash with Cygwin's WinMain.
-#ifndef WIN32
// Declare main(...) "weak" to allow for libFuzzer linking. libFuzzer provides
// the main(...) function.
-__attribute__((weak))
-#endif
-int main(int argc, char **argv)
+__attribute__((weak)) int main(int argc, char** argv)
{
initialize();
#ifdef __AFL_INIT