Skip to content

Commit faefed8

Browse files
author
MarcoFalke
committed
fuzz: Count message type fuzzers before main()
1 parent b69eab9 commit faefed8

File tree

1 file changed

+41
-24
lines changed

1 file changed

+41
-24
lines changed

src/test/fuzz/process_message.cpp

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,23 @@ namespace {
3535
const TestingSetup* g_setup;
3636
} // namespace
3737

38+
size_t& GetNumMsgTypes()
39+
{
40+
static size_t g_num_msg_types{0};
41+
return g_num_msg_types;
42+
}
43+
#define FUZZ_TARGET_MSG(msg_type) \
44+
struct msg_type##_Count_Before_Main { \
45+
msg_type##_Count_Before_Main() \
46+
{ \
47+
++GetNumMsgTypes(); \
48+
} \
49+
} const static g_##msg_type##_count_before_main; \
50+
FUZZ_TARGET_INIT(process_message_##msg_type, initialize_process_message) \
51+
{ \
52+
fuzz_target(buffer, #msg_type); \
53+
}
54+
3855
void initialize_process_message()
3956
{
4057
static const auto testing_setup = MakeFuzzingContext<const TestingSetup>();
@@ -86,27 +103,27 @@ void fuzz_target(FuzzBufferType buffer, const std::string& LIMIT_TO_MESSAGE_TYPE
86103
}
87104

88105
FUZZ_TARGET_INIT(process_message, initialize_process_message) { fuzz_target(buffer, ""); }
89-
FUZZ_TARGET_INIT(process_message_addr, initialize_process_message) { fuzz_target(buffer, "addr"); }
90-
FUZZ_TARGET_INIT(process_message_block, initialize_process_message) { fuzz_target(buffer, "block"); }
91-
FUZZ_TARGET_INIT(process_message_blocktxn, initialize_process_message) { fuzz_target(buffer, "blocktxn"); }
92-
FUZZ_TARGET_INIT(process_message_cmpctblock, initialize_process_message) { fuzz_target(buffer, "cmpctblock"); }
93-
FUZZ_TARGET_INIT(process_message_feefilter, initialize_process_message) { fuzz_target(buffer, "feefilter"); }
94-
FUZZ_TARGET_INIT(process_message_filteradd, initialize_process_message) { fuzz_target(buffer, "filteradd"); }
95-
FUZZ_TARGET_INIT(process_message_filterclear, initialize_process_message) { fuzz_target(buffer, "filterclear"); }
96-
FUZZ_TARGET_INIT(process_message_filterload, initialize_process_message) { fuzz_target(buffer, "filterload"); }
97-
FUZZ_TARGET_INIT(process_message_getaddr, initialize_process_message) { fuzz_target(buffer, "getaddr"); }
98-
FUZZ_TARGET_INIT(process_message_getblocks, initialize_process_message) { fuzz_target(buffer, "getblocks"); }
99-
FUZZ_TARGET_INIT(process_message_getblocktxn, initialize_process_message) { fuzz_target(buffer, "getblocktxn"); }
100-
FUZZ_TARGET_INIT(process_message_getdata, initialize_process_message) { fuzz_target(buffer, "getdata"); }
101-
FUZZ_TARGET_INIT(process_message_getheaders, initialize_process_message) { fuzz_target(buffer, "getheaders"); }
102-
FUZZ_TARGET_INIT(process_message_headers, initialize_process_message) { fuzz_target(buffer, "headers"); }
103-
FUZZ_TARGET_INIT(process_message_inv, initialize_process_message) { fuzz_target(buffer, "inv"); }
104-
FUZZ_TARGET_INIT(process_message_mempool, initialize_process_message) { fuzz_target(buffer, "mempool"); }
105-
FUZZ_TARGET_INIT(process_message_notfound, initialize_process_message) { fuzz_target(buffer, "notfound"); }
106-
FUZZ_TARGET_INIT(process_message_ping, initialize_process_message) { fuzz_target(buffer, "ping"); }
107-
FUZZ_TARGET_INIT(process_message_pong, initialize_process_message) { fuzz_target(buffer, "pong"); }
108-
FUZZ_TARGET_INIT(process_message_sendcmpct, initialize_process_message) { fuzz_target(buffer, "sendcmpct"); }
109-
FUZZ_TARGET_INIT(process_message_sendheaders, initialize_process_message) { fuzz_target(buffer, "sendheaders"); }
110-
FUZZ_TARGET_INIT(process_message_tx, initialize_process_message) { fuzz_target(buffer, "tx"); }
111-
FUZZ_TARGET_INIT(process_message_verack, initialize_process_message) { fuzz_target(buffer, "verack"); }
112-
FUZZ_TARGET_INIT(process_message_version, initialize_process_message) { fuzz_target(buffer, "version"); }
106+
FUZZ_TARGET_MSG(addr);
107+
FUZZ_TARGET_MSG(block);
108+
FUZZ_TARGET_MSG(blocktxn);
109+
FUZZ_TARGET_MSG(cmpctblock);
110+
FUZZ_TARGET_MSG(feefilter);
111+
FUZZ_TARGET_MSG(filteradd);
112+
FUZZ_TARGET_MSG(filterclear);
113+
FUZZ_TARGET_MSG(filterload);
114+
FUZZ_TARGET_MSG(getaddr);
115+
FUZZ_TARGET_MSG(getblocks);
116+
FUZZ_TARGET_MSG(getblocktxn);
117+
FUZZ_TARGET_MSG(getdata);
118+
FUZZ_TARGET_MSG(getheaders);
119+
FUZZ_TARGET_MSG(headers);
120+
FUZZ_TARGET_MSG(inv);
121+
FUZZ_TARGET_MSG(mempool);
122+
FUZZ_TARGET_MSG(notfound);
123+
FUZZ_TARGET_MSG(ping);
124+
FUZZ_TARGET_MSG(pong);
125+
FUZZ_TARGET_MSG(sendcmpct);
126+
FUZZ_TARGET_MSG(sendheaders);
127+
FUZZ_TARGET_MSG(tx);
128+
FUZZ_TARGET_MSG(verack);
129+
FUZZ_TARGET_MSG(version);

0 commit comments

Comments
 (0)