#include "IpV6Extensions.hh"
#include "IpV6Packet.hh"
#include "UDPPacket.hh"
-#include "Packets/DataPacket.hh"
-#include "Socket/INetAddressing.hh"
+#include "Socket/Protocols/INet/INetAddressing.hh"
#include <boost/test/auto_unit_test.hpp>
#include <boost/test/test_tools.hpp>
#define prefix_
///////////////////////////////cc.p////////////////////////////////////////
-using namespace senf;
-
-BOOST_AUTO_UNIT_TEST(ipv6Extension_Fragment_parser)
-{
- unsigned char data[] = { 59, 0, 0x10, 0x20,
- 0x01, 0x02, 0x03, 0x04 };
-
- typedef unsigned char * iterator;
- Parse_IpV6Extension_Fragment<iterator> p (data);
-
- BOOST_CHECK_EQUAL( unsigned(p.nextHeader()), 59u );
- BOOST_CHECK_EQUAL( unsigned(p.fragmentOffset()), 0x1020u >> 3 );
- BOOST_CHECK ( ! p.moreFragments() );
- BOOST_CHECK_EQUAL( unsigned(p.id()), 0x01020304u );
-}
-
BOOST_AUTO_UNIT_TEST(ipv6Extension_Fragment_packet)
{
// Just for the fun of it, we test a nice chain: A fragment of a fragmented UDP packet
0x11, 0x12, 0x13, 0x14
};
- IpV6Packet::ptr p (Packet::create<IpV6Packet>(data, data + sizeof(data)));
+ senf::IpV6Packet p (senf::IpV6Packet::create(data));
BOOST_CHECK_EQUAL( p->version(), 6u );
BOOST_CHECK_EQUAL( p->length(), 20u );
BOOST_CHECK_EQUAL( p->nextHeader(), 44u );
- BOOST_CHECK_EQUAL( INet6Address(p->source().range()), "2001::1" );
- BOOST_CHECK_EQUAL( INet6Address(p->destination().range()), "2001::2" );
- BOOST_CHECK( p->next()->is<IpV6Extension_Fragment>() );
+ BOOST_CHECK_EQUAL( senf::INet6Address(p->source()), "2001::1" );
+ BOOST_CHECK_EQUAL( senf::INet6Address(p->destination()), "2001::2" );
+ BOOST_CHECK( p.next().is<senf::IpV6Extension_Fragment>() );
- IpV6Extension_Fragment::ptr f (p->next()->as<IpV6Extension_Fragment>());
+ senf::IpV6Extension_Fragment f (p.next().as<senf::IpV6Extension_Fragment>());
BOOST_CHECK_EQUAL( f->nextHeader(), 17u );
BOOST_CHECK_EQUAL( f->fragmentOffset(), 160u );
BOOST_CHECK_EQUAL( f->id(), 0x01020304u );
- BOOST_CHECK( f->next()->is<UDPPacket>() );
+ BOOST_CHECK( f.next().is<senf::UDPPacket>() );
- UDPPacket::ptr u (f->next()->as<UDPPacket>());
+ senf::UDPPacket u (f.next().as<senf::UDPPacket>());
BOOST_CHECK_EQUAL( u->source(), 0x1000u );
BOOST_CHECK_EQUAL( u->destination(), 0x2000u );
BOOST_CHECK_EQUAL( u->length(), 12u );
- BOOST_CHECK( u->next()->is<DataPacket>() );
+ BOOST_CHECK( u.next().is<senf::DataPacket>() );
- Packet::iterator i (u->next()->begin());
- BOOST_CHECK_EQUAL( Parse_UInt32<Packet::iterator>(i).value(), 0x11121314u );
+ senf::DataPacket d (u.next().as<senf::DataPacket>());
+ senf::PacketData::iterator i (u.next().data().begin());
+ BOOST_CHECK_EQUAL( d.size(), 4u );
+ BOOST_CHECK_EQUAL( d.data()[0], 0x11 );
}
///////////////////////////////cc.e////////////////////////////////////////
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
+// comment-column: 40
// End: