X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FIpV6Packet.test.cc;h=c3bf90bf43abeae4b8ff933a754af141d312d0c9;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=9385937bb7948a9683a092e3ea495320b3c393b3;hpb=145f6a7d0f3a6aaa77b3625351c952d24cb0b8a1;p=senf.git diff --git a/Packets/DefaultBundle/IpV6Packet.test.cc b/Packets/DefaultBundle/IpV6Packet.test.cc index 9385937..c3bf90b 100644 --- a/Packets/DefaultBundle/IpV6Packet.test.cc +++ b/Packets/DefaultBundle/IpV6Packet.test.cc @@ -26,7 +26,8 @@ // Custom includes #include "IpV6Packet.hh" -#include "Socket/INetAddressing.hh" +#include "Socket/Protocols/INet/INetAddressing.hh" +#include "Packets/DataPacket.hh" #include #include @@ -34,32 +35,6 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -using namespace senf; - -BOOST_AUTO_UNIT_TEST(ipV6Packet_parser) -{ - 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 }; - - typedef unsigned char * iterator; - Parse_IpV6 p (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_AUTO_UNIT_TEST(ipV6Packet_packet) { unsigned char data[] = { 0x60, 0x12, 0x20, 0x30, @@ -67,25 +42,26 @@ BOOST_AUTO_UNIT_TEST(ipV6Packet_packet) 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 ); + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0xff }; + + senf::IpV6Packet p (senf::IpV6Packet::create(data)); + + + BOOST_CHECK_EQUAL( p->version(), 0x06u ); + BOOST_CHECK_EQUAL( p->trafficClass(), 0x01u ); + BOOST_CHECK_EQUAL( p->flowLabel(), 0x22030u ); + BOOST_CHECK_EQUAL( p->length(), 0x0102u ); + BOOST_CHECK_EQUAL( p->nextHeader(), 0x03u ); + BOOST_CHECK_EQUAL( p->hopLimit(), 0x04u ); + BOOST_CHECK_EQUAL( p->source().value(), + senf::INet6Address::from_string("1011:1213:1415:1617:1819:1a1b:1c1d:1e1f") ); + BOOST_CHECK_EQUAL( p->destination().value(), + senf::INet6Address::from_string("2021:2223:2425:2627:2829:2a2b:2c2d:2e2f") ); + + BOOST_CHECK( p.next() ); + BOOST_CHECK( p.next().is() ); + BOOST_CHECK_EQUAL( p.next().size(), 1u ); } ///////////////////////////////cc.e////////////////////////////////////////