X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.test.cc;h=18b8fe9ed174a8ee2b3453fe00b93299ca011622;hb=c45c112ae88196ea8da9c5a9efb0e167196744d2;hp=e61d67adf2818d03850cf552466f9defea254ea7;hpb=55d09e34a5b9a9c7af23cc5ecb0ab79d58757a2d;p=senf.git diff --git a/Packets/Packet.test.cc b/Packets/Packet.test.cc index e61d67a..18b8fe9 100644 --- a/Packets/Packet.test.cc +++ b/Packets/Packet.test.cc @@ -21,7 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief Packet.test unit tests */ + \brief Packet unit tests */ //#include "Packet.test.hh" //#include "Packet.test.ih" @@ -136,7 +136,7 @@ namespace { BOOST_AUTO_UNIT_TEST(packet) { - senf::Packet packet (FooPacket::create()); + senf::Packet packet (FooPacket::create()); BarPacket::createAfter(packet); BOOST_REQUIRE( packet ); @@ -197,7 +197,7 @@ BOOST_AUTO_UNIT_TEST(packet) senf::PacketData::byte data[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x82, 0x83 }; - BarPacket::createAfter(packet,data); + BarPacket::createAfter(packet, data); BOOST_REQUIRE( packet.next() ); BOOST_REQUIRE( packet.next().is() ); BOOST_CHECK( packet.last().is() ); @@ -214,6 +214,10 @@ BOOST_AUTO_UNIT_TEST(packet) BOOST_CHECK( packet.last().rfind() == packet.last() ); BOOST_CHECK( packet.next() == packet.next() ); BOOST_CHECK( packet.last().prev().prev() == packet ); + + senf::DataPacket::createAfter(packet); + BOOST_CHECK_THROW( packet.next().next().next().parseNextAs(), + senf::InvalidPacketChainException ); } BOOST_AUTO_UNIT_TEST(concretePacket) @@ -257,6 +261,17 @@ BOOST_AUTO_UNIT_TEST(concretePacket) BOOST_CHECK_EQUAL( BarPacket::create()->reserved(), 0xA0A0u ); } +BOOST_AUTO_UNIT_TEST(packetAssign) +{ + BarPacket bar1 (BarPacket::create()); + BarPacket bar2 (BarPacket::create()); + + bar2->type() << 0x2A2Bu; + bar1.parser() << bar2; + + BOOST_CHECK_EQUAL( bar1->type(), 0x2A2Bu ); +} + BOOST_AUTO_UNIT_TEST(packetAnnotation) { senf::Packet packet (FooPacket::create()); @@ -283,16 +298,18 @@ BOOST_AUTO_UNIT_TEST(packetAnnotation) COMPILE_FAIL(invalidAnnotation) { +#if 0 // The traits check fails for user defined but trivial constructors so ... # ifdef BOOST_HAS_TYPE_TRAITS_INTRINSICS senf::Packet packet (FooPacket::create()); (void) packet.annotation(); # else +# endif +#endif invalid_annotation_check_disabled(); -# endif } #endif