Skip to content

Commit 654472a

Browse files
committed
[fuzz] Add serialization to deserialization test
Before commit: 306853 REDUCE cov: 798 ft: 5820 corp: 150/375Kb lim: 68333 exec/s: 1382 rss: 461Mb L: 254/63171 MS: 1 EraseBytes- 1453105 REDUCE cov: 798 ft: 5820 corp: 150/369Kb lim: 79613 exec/s: 1467 rss: 461Mb L: 6027/60873 MS: 1 EraseBytes- After commit: 303389 NEW cov: 1202 ft: 8382 corp: 157/382Kb lim: 68189 exec/s: 1451 rss: 447Mb L: 1386/65459 MS: 1 CopyPart- 1428759 REDUCE cov: 1202 ft: 8512 corp: 169/389Kb lim: 78749 exec/s: 1528 rss: 463Mb L: 1627/60488 MS: 1 EraseBytes-
1 parent be41716 commit 654472a

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/Makefile.test.include

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ test_fuzz_fuzz_SOURCES = \
257257
test/fuzz/netaddress.cpp \
258258
test/fuzz/netbase_dns_lookup.cpp \
259259
test/fuzz/node_eviction.cpp \
260-
test/fuzz/p2p_transport_deserializer.cpp \
260+
test/fuzz/p2p_transport_serialization.cpp \
261261
test/fuzz/parse_hd_keypath.cpp \
262262
test/fuzz/parse_iso8601.cpp \
263263
test/fuzz/parse_numbers.cpp \

src/test/fuzz/p2p_transport_deserializer.cpp renamed to src/test/fuzz/p2p_transport_serialization.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <chainparams.h>
66
#include <net.h>
7+
#include <netmessagemaker.h>
78
#include <protocol.h>
89
#include <test/fuzz/fuzz.h>
910

@@ -13,15 +14,16 @@
1314
#include <optional>
1415
#include <vector>
1516

16-
void initialize_p2p_transport_deserializer()
17+
void initialize_p2p_transport_serialization()
1718
{
1819
SelectParams(CBaseChainParams::REGTEST);
1920
}
2021

21-
FUZZ_TARGET_INIT(p2p_transport_deserializer, initialize_p2p_transport_deserializer)
22+
FUZZ_TARGET_INIT(p2p_transport_serialization, initialize_p2p_transport_serialization)
2223
{
2324
// Construct deserializer, with a dummy NodeId
2425
V1TransportDeserializer deserializer{Params(), (NodeId)0, SER_NETWORK, INIT_PROTO_VERSION};
26+
V1TransportSerializer serializer{};
2527
Span<const uint8_t> msg_bytes{buffer};
2628
while (msg_bytes.size() > 0) {
2729
const int handled = deserializer.Read(msg_bytes);
@@ -37,6 +39,10 @@ FUZZ_TARGET_INIT(p2p_transport_deserializer, initialize_p2p_transport_deserializ
3739
assert(result->m_raw_message_size <= buffer.size());
3840
assert(result->m_raw_message_size == CMessageHeader::HEADER_SIZE + result->m_message_size);
3941
assert(result->m_time == m_time);
42+
43+
std::vector<unsigned char> header;
44+
auto msg = CNetMsgMaker{result->m_recv.GetVersion()}.Make(result->m_command, MakeUCharSpan(result->m_recv));
45+
serializer.prepareForTransport(msg, header);
4046
}
4147
}
4248
}

0 commit comments

Comments
 (0)