added additional flags in optionType Parser and unittests
[senf.git] / senf / Packets / DefaultBundle / IPv6Extensions.test.cc
index 55563a4..8be4f32 100644 (file)
@@ -149,7 +149,7 @@ BOOST_AUTO_UNIT_TEST(ipv6Extensions)
 }
     //==============================================================================================
     
-BOOST_AUTO_UNIT_TEST(ipv6Extensions_hopByHop)
+BOOST_AUTO_UNIT_TEST(ipv6Extensions_hopByHop_parse)
 {
     unsigned char HopByHop_packetData[] = {
         0x60, 0x00, 0x00, 0x00, //IP version, class, flow label
@@ -197,18 +197,29 @@ BOOST_AUTO_UNIT_TEST(ipv6Extensions_hopByHop)
     BOOST_CHECK_EQUAL( pHop_extension->headerLength(), 0x00 );
 
     SENF_CHECK_NO_THROW( pHop_extension.dump( oss ));
-    pHop_extension.dump(std::cout);
+    pHop_extension.dump(oss);
     senf::IPv6Extension_HopByHop::Parser::options_t::container optC(pHop_extension->options() );
     senf::IPv6Extension_HopByHop::Parser::options_t::container::iterator listIter (optC.begin());
+
+    BOOST_CHECK_EQUAL( listIter->altAction(), 0u);
+    BOOST_CHECK_EQUAL( listIter->changeFlag(), 0u);
     BOOST_CHECK_EQUAL( listIter->optionType(), 5u);
     BOOST_CHECK_EQUAL( listIter->optionLength(), 2u);
-    std::cout << listIter->value() << std::endl;
     ++listIter;
+    BOOST_CHECK_EQUAL( listIter->altAction(), 0u);
+    BOOST_CHECK_EQUAL( listIter->changeFlag(), 0u);
     BOOST_CHECK_EQUAL( listIter->optionType(), 2u);
     BOOST_CHECK_EQUAL( listIter->optionLength(), 0);
-//    pHop_extension.dump(std::cout);  //( no optiontype output ... sth wrong here! )
+    pHop_extension.dump(oss);
+
+    BOOST_REQUIRE( pHop_extension.next().is<senf::ICMPv6Packet>() );
+    senf::ICMPv6Packet pICMPv6  (pHop_extension.next().as<senf::ICMPv6Packet>());
+    BOOST_CHECK_EQUAL( pICMPv6->type(), 0x8f);
+    BOOST_CHECK_EQUAL( pICMPv6->code(), 0u);
+    BOOST_CHECK_EQUAL( pICMPv6->checksum(), 0x50cc);
 }
 
+
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_