Changeset View
Changeset View
Standalone View
Standalone View
src/test/fuzz/p2p_transport_deserializer.cpp
Show All 26 Lines | void test_one_input(const std::vector<uint8_t> &buffer) { | ||||
while (n_bytes > 0) { | while (n_bytes > 0) { | ||||
const int handled = deserializer.Read(config, pch, n_bytes); | const int handled = deserializer.Read(config, pch, n_bytes); | ||||
if (handled < 0) { | if (handled < 0) { | ||||
break; | break; | ||||
} | } | ||||
pch += handled; | pch += handled; | ||||
n_bytes -= handled; | n_bytes -= handled; | ||||
if (deserializer.Complete()) { | if (deserializer.Complete()) { | ||||
const int64_t m_time = std::numeric_limits<int64_t>::max(); | const std::chrono::microseconds m_time{ | ||||
std::numeric_limits<int64_t>::max()}; | |||||
const CNetMessage msg = deserializer.GetMessage(config, m_time); | const CNetMessage msg = deserializer.GetMessage(config, m_time); | ||||
assert(msg.m_command.size() <= CMessageHeader::COMMAND_SIZE); | assert(msg.m_command.size() <= CMessageHeader::COMMAND_SIZE); | ||||
assert(msg.m_raw_message_size <= buffer.size()); | assert(msg.m_raw_message_size <= buffer.size()); | ||||
assert(msg.m_raw_message_size == | assert(msg.m_raw_message_size == | ||||
CMessageHeader::HEADER_SIZE + msg.m_message_size); | CMessageHeader::HEADER_SIZE + msg.m_message_size); | ||||
assert(msg.m_time == m_time); | assert(msg.m_time == m_time); | ||||
if (msg.m_valid_header) { | if (msg.m_valid_header) { | ||||
assert(msg.m_valid_netmagic); | assert(msg.m_valid_netmagic); | ||||
} | } | ||||
if (!msg.m_valid_netmagic) { | if (!msg.m_valid_netmagic) { | ||||
assert(!msg.m_valid_header); | assert(!msg.m_valid_header); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } |