updated icmp unittests
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Thu, 12 Mar 2015 16:44:45 +0000 (17:44 +0100)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Thu, 12 Mar 2015 16:44:45 +0000 (17:44 +0100)
test/test_icmpv4header.cpp
test/test_icmpv6header.cpp

index 5a3af8a..2ca35f8 100644 (file)
@@ -26,7 +26,9 @@ on this file might be covered by the GNU General Public License.
 #include <boost/test/unit_test.hpp>
 
 #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<uint8_t> is( &sb );
 
-    Icmpv4Header icmp_header;
-    reinterpret_cast<std::istream&>(is) >> icmp_header;
+    IcmpHeader icmp_header;
+    IcmpEchoData icmp_data(64 - 4);
+    reinterpret_cast<std::istream&>(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<uint8_t> is( &sb );
 
-    Icmpv4Header icmp_header;
-    reinterpret_cast<std::istream&>(is) >> icmp_header;
+    IcmpHeader icmp_header;
+    IcmpEchoData icmp_data(64 - 4);
+    reinterpret_cast<std::istream&>(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<uint8_t> is( &sb );
 
-    Icmpv4Header icmp_header;
-    reinterpret_cast<std::istream&>(is) >> icmp_header;
+    IcmpHeader icmp_header;
+    IcmpDestinationUnreachableData icmp_data(92-4);
+    reinterpret_cast<std::istream&>(is) >> icmp_header >> icmp_data;
 
     BOOST_CHECK_EQUAL( icmp_header.get_type(), Icmpv4Type_DestinationUnreachable );
     BOOST_CHECK_EQUAL( icmp_header.get_code(), 1 );
index df24a28..58b90e0 100644 (file)
@@ -26,7 +26,9 @@ on this file might be covered by the GNU General Public License.
 #include <boost/test/unit_test.hpp>
 
 #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<uint8_t> is( &sb );
 
-    Icmpv6Header icmp_header;
-    reinterpret_cast<std::istream&>(is) >> icmp_header;
+    IcmpHeader icmp_header;
+    IcmpEchoData icmp_data(64 - 4);
+    reinterpret_cast<std::istream&>(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<uint8_t> is( &sb );
 
-    Icmpv6Header icmp_header;
-    reinterpret_cast<std::istream&>(is) >> icmp_header;
+    IcmpHeader icmp_header;
+    IcmpEchoData icmp_data(64 - 4);
+    reinterpret_cast<std::istream&>(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()