From: Christian Herdtweck Date: Thu, 12 Mar 2015 16:44:45 +0000 (+0100) Subject: updated icmp unittests X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=447f9ac57cddc48045aedb31c49d03ae78c97ec9;p=pingcheck updated icmp unittests --- diff --git a/test/test_icmpv4header.cpp b/test/test_icmpv4header.cpp index 5a3af8a..2ca35f8 100644 --- a/test/test_icmpv4header.cpp +++ b/test/test_icmpv4header.cpp @@ -26,7 +26,9 @@ on this file might be covered by the GNU General Public License. #include #include "icmp/icmptype.h" -#include "icmp/icmpv4header.h" +#include "icmp/icmpheader.h" +#include "icmp/icmpechodata.h" +#include "icmp/icmpdestinationunreachabledata.h" BOOST_AUTO_TEST_SUITE( TestIcmpv4Header ) @@ -45,14 +47,15 @@ BOOST_AUTO_TEST_CASE( echo_reply ) sb.pubsetbuf( raw_packet_stream, sizeof(raw_packet_stream) ); std::basic_istream is( &sb ); - Icmpv4Header icmp_header; - reinterpret_cast(is) >> icmp_header; + IcmpHeader icmp_header; + IcmpEchoData icmp_data(64 - 4); + reinterpret_cast(is) >> icmp_header >> icmp_data; BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv4Type_EchoReply ); BOOST_CHECK_EQUAL( icmp_header.get_code(), 0 ); BOOST_CHECK_EQUAL( icmp_header.get_checksum(), 0x787D ); - BOOST_CHECK_EQUAL( icmp_header.get_identifier(), 0x090F ); - BOOST_CHECK_EQUAL( icmp_header.get_sequence_number(), 1 ); + BOOST_CHECK_EQUAL( icmp_data.get_identifier(), 0x090F ); + BOOST_CHECK_EQUAL( icmp_data.get_sequence_number(), 1 ); } BOOST_AUTO_TEST_CASE( echo_request ) @@ -70,14 +73,15 @@ BOOST_AUTO_TEST_CASE( echo_request ) sb.pubsetbuf( raw_packet_stream, sizeof(raw_packet_stream) ); std::basic_istream is( &sb ); - Icmpv4Header icmp_header; - reinterpret_cast(is) >> icmp_header; + IcmpHeader icmp_header; + IcmpEchoData icmp_data(64 - 4); + reinterpret_cast(is) >> icmp_header >> icmp_data; BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv4Type_EchoRequest ); BOOST_CHECK_EQUAL( icmp_header.get_code(), 0 ); BOOST_CHECK_EQUAL( icmp_header.get_checksum(), 0x28D1 ); - BOOST_CHECK_EQUAL( icmp_header.get_identifier(), 0x0921 ); - BOOST_CHECK_EQUAL( icmp_header.get_sequence_number(), 2 ); + BOOST_CHECK_EQUAL( icmp_data.get_identifier(), 0x0921 ); + BOOST_CHECK_EQUAL( icmp_data.get_sequence_number(), 2 ); } BOOST_AUTO_TEST_CASE( destination_unreachable ) @@ -97,8 +101,9 @@ BOOST_AUTO_TEST_CASE( destination_unreachable ) sb.pubsetbuf( raw_packet_stream, sizeof(raw_packet_stream) ); std::basic_istream is( &sb ); - Icmpv4Header icmp_header; - reinterpret_cast(is) >> icmp_header; + IcmpHeader icmp_header; + IcmpDestinationUnreachableData icmp_data(92-4); + reinterpret_cast(is) >> icmp_header >> icmp_data; BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv4Type_DestinationUnreachable ); BOOST_CHECK_EQUAL( icmp_header.get_code(), 1 ); diff --git a/test/test_icmpv6header.cpp b/test/test_icmpv6header.cpp index df24a28..58b90e0 100644 --- a/test/test_icmpv6header.cpp +++ b/test/test_icmpv6header.cpp @@ -26,7 +26,9 @@ on this file might be covered by the GNU General Public License. #include #include "icmp/icmptype.h" -#include "icmp/icmpv6header.h" +#include "icmp/icmpheader.h" +#include "icmp/icmpechodata.h" +#include "icmp/icmpdestinationunreachabledata.h" BOOST_AUTO_TEST_SUITE( TestIcmpv6Header ) @@ -45,14 +47,15 @@ BOOST_AUTO_TEST_CASE( echo_reply ) sb.pubsetbuf( raw_packet_stream, sizeof(raw_packet_stream) ); std::basic_istream is( &sb ); - Icmpv6Header icmp_header; - reinterpret_cast(is) >> icmp_header; + IcmpHeader icmp_header; + IcmpEchoData icmp_data(64 - 4); + reinterpret_cast(is) >> icmp_header >> icmp_data; BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv6Type_EchoReply ); BOOST_CHECK_EQUAL( icmp_header.get_code(), 0 ); BOOST_CHECK_EQUAL( icmp_header.get_checksum(), 0xBF50 ); - BOOST_CHECK_EQUAL( icmp_header.get_identifier(), 0x0EBE ); - BOOST_CHECK_EQUAL( icmp_header.get_sequence_number(), 26 ); + BOOST_CHECK_EQUAL( icmp_data.get_identifier(), 0x0EBE ); + BOOST_CHECK_EQUAL( icmp_data.get_sequence_number(), 26 ); } BOOST_AUTO_TEST_CASE( echo_request ) @@ -70,14 +73,15 @@ BOOST_AUTO_TEST_CASE( echo_request ) sb.pubsetbuf( raw_packet_stream, sizeof(raw_packet_stream) ); std::basic_istream is( &sb ); - Icmpv6Header icmp_header; - reinterpret_cast(is) >> icmp_header; + IcmpHeader icmp_header; + IcmpEchoData icmp_data(64 - 4); + reinterpret_cast(is) >> icmp_header >> icmp_data; BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv6Type_EchoRequest ); BOOST_CHECK_EQUAL( icmp_header.get_code(), 0 ); BOOST_CHECK_EQUAL( icmp_header.get_checksum(), 0xEDA4 ); - BOOST_CHECK_EQUAL( icmp_header.get_identifier(), 0x11FD ); - BOOST_CHECK_EQUAL( icmp_header.get_sequence_number(), 6 ); + BOOST_CHECK_EQUAL( icmp_data.get_identifier(), 0x11FD ); + BOOST_CHECK_EQUAL( icmp_data.get_sequence_number(), 6 ); } BOOST_AUTO_TEST_SUITE_END()