X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FDefaultBundle%2FNDPMessage.test.cc;h=d356007705f68232eade3064824171558e2ce15f;hb=e3179a2123ad51d0d9eb63834a581145c4f77c92;hp=5c99be8eaf3fcc3fe088c24d019e2d0001e37320;hpb=209950ee5f6898978cd68614ef339ae3531c5c53;p=senf.git diff --git a/senf/Packets/DefaultBundle/NDPMessage.test.cc b/senf/Packets/DefaultBundle/NDPMessage.test.cc index 5c99be8..d356007 100644 --- a/senf/Packets/DefaultBundle/NDPMessage.test.cc +++ b/senf/Packets/DefaultBundle/NDPMessage.test.cc @@ -1,4 +1,4 @@ -// $Id: ICMPv6Packet.test.cc 1550 2010-01-26 09:34:24Z tho $ +// $Id$ // // Copyright (C) 2010 // Fraunhofer Institute for Open Communication Systems (FOKUS) @@ -21,7 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief ICMPv6Packet unit tests */ + \brief NDPMessage unit tests */ // Custom includes #include "ICMPv6Packet.hh" @@ -31,51 +31,43 @@ #include #include -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// SENF_AUTO_UNIT_TEST(NDPMessage_create) { - senf::ICMPv6Packet icmp (senf::ICMPv6Packet::create()); - icmp->code() = 0; + senf::dumpPacketRegistries(std::cout); - senf::NDPNeighborAdvertisementMessage nadm (senf::NDPNeighborAdvertisementMessage::createAfter(icmp)); - nadm->r() = true; - nadm->s() = true; - nadm->o() = false; - nadm->target() = senf::INet6Address::Loopback; + unsigned char data[] = { + 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3a, 0xff, //IPv6 + 0x20, 0x01, 0x08, 0x90, 0x06, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xff, 0x03, 0x00, 0x02, + 0x87, 0x00, 0xaf, 0x30, //ICMPv6 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x08, 0x90, //Neighbor Solicitation + 0x60, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x02, + 0x01, 0x01, 0x00, 0x0d, //Source Option + 0x88, 0x70, 0xe4, 0xc0, + }; - senf::NDPNeighborAdvertisementMessage::Parser::options_t::container optC(nadm->options()); - senf::NDPMTUTLVParser opt( - optC.push_back_space().init ()); - senf::NDPTargetLLAddressTLVParser opt2( - optC.push_back_space().init ()); - opt.mtu() = 1234u; - opt2.target() = senf::MACAddress::Broadcast; + senf::IPv6Packet ip (senf::IPv6Packet::create(data)); + senf::ICMPv6Packet icmp (ip.find()); - icmp.finalizeAll(); - - BOOST_CHECK_EQUAL(icmp->type(), 0x88 ); + BOOST_CHECK_EQUAL(icmp->type(), 0x87 ); BOOST_CHECK( icmp.next() ); - BOOST_CHECK( icmp.next().is() ); - senf::NDPNeighborAdvertisementMessage rnadm (icmp.next().as()); - - BOOST_CHECK_EQUAL( rnadm->r(), true ); - BOOST_CHECK_EQUAL( rnadm->s(), true ); - BOOST_CHECK_EQUAL( rnadm->o(), false ); + BOOST_CHECK( icmp.next().is() ); + senf::NDPNeighborSolicitationMessage rnadm (icmp.next().as()); + BOOST_CHECK_EQUAL(rnadm.size(),28); - senf::NDPNeighborAdvertisementMessage::Parser::options_t::container roptC(rnadm->options() ); - senf::NDPNeighborAdvertisementMessage::Parser::options_t::container::iterator listIter (roptC.begin()); - BOOST_CHECK( listIter->is() ); - BOOST_CHECK_EQUAL( listIter->type(), 5u ); - BOOST_CHECK_EQUAL( listIter->length(), 1u ); - senf::NDPMTUTLVParser mtuopt (listIter->as()); - BOOST_CHECK_EQUAL( mtuopt.mtu(), 1234u ); - listIter++; - BOOST_CHECK( listIter->is() ); - BOOST_CHECK_EQUAL( listIter->type(), 2u ); + senf::NDPNeighborSolicitationMessage::Parser::options_t::container roptC(rnadm->options() ); + senf::NDPNeighborSolicitationMessage::Parser::options_t::container::const_iterator listIter (roptC.begin()); + BOOST_CHECK( listIter->is() ); + BOOST_CHECK_EQUAL( listIter->type(), 1u ); BOOST_CHECK_EQUAL( listIter->length(), 1u ); + senf::NDPSourceLLAddressTLVParser llopt (listIter->as()); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // Local Variables: