Changeset View
Changeset View
Standalone View
Standalone View
src/seeder/test/message_writer_tests.cpp
| Show All 38 Lines | BOOST_AUTO_TEST_CASE(simple_header_and_payload_message_writer_test) { | ||||
| std::string user_agent = "/Bitcoin ABC:0.0.0(seeder)/"; | std::string user_agent = "/Bitcoin ABC:0.0.0(seeder)/"; | ||||
| int start_height = 1; | int start_height = 1; | ||||
| CDataStream versionPayload(SER_NETWORK, PROTOCOL_VERSION); | CDataStream versionPayload(SER_NETWORK, PROTOCOL_VERSION); | ||||
| // The following .reserve() call is a workaround for a spurious | // The following .reserve() call is a workaround for a spurious | ||||
| // [-Werror=stringop-overflow=] warning in gcc <= 12.2. | // [-Werror=stringop-overflow=] warning in gcc <= 12.2. | ||||
| // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100366#c20 | // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100366#c20 | ||||
| versionPayload.reserve(200); | versionPayload.reserve(200); | ||||
| versionPayload << PROTOCOL_VERSION << serviceFlags << now << addrTo | versionPayload << PROTOCOL_VERSION << serviceFlags << now | ||||
| << addrFrom << nonce << user_agent << start_height; | << WithParams(CAddress::V1_NETWORK, addrTo) | ||||
| << WithParams(CAddress::V1_NETWORK, addrFrom) << nonce | |||||
| << user_agent << start_height; | |||||
| CMessageHeader versionhdr(Params().NetMagic(), NetMsgType::VERSION, | CMessageHeader versionhdr(Params().NetMagic(), NetMsgType::VERSION, | ||||
| versionPayload.size()); | versionPayload.size()); | ||||
| uint256 hash = Hash(versionPayload); | uint256 hash = Hash(versionPayload); | ||||
| memcpy(versionhdr.pchChecksum, hash.begin(), CMessageHeader::CHECKSUM_SIZE); | memcpy(versionhdr.pchChecksum, hash.begin(), CMessageHeader::CHECKSUM_SIZE); | ||||
| CDataStream expectedVersion(SER_NETWORK, PROTOCOL_VERSION); | CDataStream expectedVersion(SER_NETWORK, PROTOCOL_VERSION); | ||||
| expectedVersion << versionhdr; | expectedVersion << versionhdr; | ||||
| expectedVersion.write(versionPayload); | expectedVersion.write(versionPayload); | ||||
| CheckMessage(expectedVersion, NetMsgType::VERSION, PROTOCOL_VERSION, | CheckMessage(expectedVersion, NetMsgType::VERSION, PROTOCOL_VERSION, | ||||
| serviceFlags, now, addrTo, addrFrom, nonce, user_agent, | serviceFlags, now, WithParams(CAddress::V1_NETWORK, addrTo), | ||||
| WithParams(CAddress::V1_NETWORK, addrFrom), nonce, user_agent, | |||||
| start_height); | start_height); | ||||
| } | } | ||||
| BOOST_AUTO_TEST_CASE(header_empty_payload_message_writer_test) { | BOOST_AUTO_TEST_CASE(header_empty_payload_message_writer_test) { | ||||
| SelectParams(ChainType::MAIN); | SelectParams(ChainType::MAIN); | ||||
| CMessageHeader verackHeader(Params().NetMagic(), NetMsgType::VERACK, 0); | CMessageHeader verackHeader(Params().NetMagic(), NetMsgType::VERACK, 0); | ||||
| CDataStream expectedVerack(SER_NETWORK, PROTOCOL_VERSION); | CDataStream expectedVerack(SER_NETWORK, PROTOCOL_VERSION); | ||||
| // This is an empty payload, but is still necessary for the checksum | // This is an empty payload, but is still necessary for the checksum | ||||
| Show All 31 Lines | |||||