X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FIpV6Packet.test.cc;h=41fdcb25a68d3d8bf301269bf8ec2249a420d001;hb=5d62f84a80b2c72cc0aa5cabc3ddad752e87fcc8;hp=70008a46e30b0410e67454f50b53f27b1ef64805;hpb=33157146abaca548e145c577a0840cd1bd427789;p=senf.git diff --git a/Packets/IpV6Packet.test.cc b/Packets/IpV6Packet.test.cc index 70008a4..41fdcb2 100644 --- a/Packets/IpV6Packet.test.cc +++ b/Packets/IpV6Packet.test.cc @@ -46,7 +46,7 @@ BOOST_AUTO_UNIT_TEST(ipV6Packet_parser) 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f }; typedef unsigned char * iterator; - Parse_IpV6 p(data); + Parse_IpV6 p (data); BOOST_CHECK_EQUAL( unsigned(p.version()), 0x06u ); BOOST_CHECK_EQUAL( unsigned(p.trafficClass()), 0x01u ); @@ -60,6 +60,34 @@ BOOST_AUTO_UNIT_TEST(ipV6Packet_parser) "2021:2223:2425:2627:2829:2a2b:2c2d:2e2f" ); } +BOOST_AUTO_UNIT_TEST(ipV6Packet_packet) +{ + unsigned char data[] = { 0x60, 0x12, 0x20, 0x30, + 0x01, 0x02, 0x03, 0x04, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f }; + + IpV6Packet::ptr p (Packet::create(data, data+sizeof(data))); + + + BOOST_CHECK_EQUAL( unsigned(p->version()), 0x06u ); + BOOST_CHECK_EQUAL( unsigned(p->trafficClass()), 0x01u ); + BOOST_CHECK_EQUAL( unsigned(p->flowLabel()), 0x22030u ); + BOOST_CHECK_EQUAL( unsigned(p->length()), 0x0102u ); + BOOST_CHECK_EQUAL( unsigned(p->nextHeader()), 0x03u ); + BOOST_CHECK_EQUAL( unsigned(p->hopLimit()), 0x04u ); + BOOST_CHECK_EQUAL( INet6Address(p->source().range()).address() , + "1011:1213:1415:1617:1819:1a1b:1c1d:1e1f" ); + BOOST_CHECK_EQUAL( INet6Address(p->destination().range()).address() , + "2021:2223:2425:2627:2829:2a2b:2c2d:2e2f" ); + + BOOST_CHECK( p->next() ); + BOOST_CHECK( p->next()->is() ); + BOOST_CHECK_EQUAL( p->next()->size(), 0u ); +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_