X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FIpV6Packet.test.cc;h=bcfcbb76127bfc7fc9b5599b15035a5b827846ce;hb=9a988902090d28007578e93bffd809f6bd913155;hp=70008a46e30b0410e67454f50b53f27b1ef64805;hpb=33157146abaca548e145c577a0840cd1bd427789;p=senf.git diff --git a/Packets/IpV6Packet.test.cc b/Packets/IpV6Packet.test.cc index 70008a4..bcfcbb7 100644 --- a/Packets/IpV6Packet.test.cc +++ b/Packets/IpV6Packet.test.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2007 +// Copyright (C) 2007 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -39,14 +39,14 @@ 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 }; + 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); + Parse_IpV6 p (data); BOOST_CHECK_EQUAL( unsigned(p.version()), 0x06u ); BOOST_CHECK_EQUAL( unsigned(p.trafficClass()), 0x01u ); @@ -54,10 +54,38 @@ BOOST_AUTO_UNIT_TEST(ipV6Packet_parser) 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_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, + 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//////////////////////////////////////// @@ -68,5 +96,6 @@ BOOST_AUTO_UNIT_TEST(ipV6Packet_parser) // mode: c++ // fill-column: 100 // c-file-style: "senf" +// indent-tabs-mode: nil // ispell-local-dictionary: "american" // End: