X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacket.test.cc;h=e735207bd94192ff0d7a600f5b9140ff78163804;hb=5c330db423b5bbfa1b376d55a83e44bbc299bdd8;hp=a8cba985c11c7844b0ab3e21fdfdb50f5edf9ad9;hpb=3f1ea160b4bd47e86e299c7aa528870747f10a05;p=senf.git diff --git a/senf/Packets/Packet.test.cc b/senf/Packets/Packet.test.cc index a8cba98..e735207 100644 --- a/senf/Packets/Packet.test.cc +++ b/senf/Packets/Packet.test.cc @@ -90,8 +90,8 @@ namespace { using mixin::init; static void dump(packet p, std::ostream & os) { os << "BarPacket:\n" - << " type: " << p->type() << "\n" - << " length: " << p->length() << "\n"; + << senf::fieldName("type") << p->type() << "\n" + << senf::fieldName("length") << p->length() << "\n"; } static void finalize(packet p) { if (p.next(senf::nothrow)) @@ -200,11 +200,10 @@ SENF_AUTO_UNIT_TEST(packet) packet.dump(s); BOOST_CHECK_EQUAL( s.str(), "Annotations:\n" - " (anonymous namespace)::ComplexAnnotation: no value\n" - " (anonymous namespace)::IntAnnotation: 0\n" + " (anonymous namespace)::IntAnnotation : 0\n" "BarPacket:\n" - " type: 0\n" - " length: 0\n" ); + " type : 0\n" + " length : 0\n" ); packet.finalizeAll(); BOOST_CHECK_EQUAL( packet.last().as()->type(), @@ -315,6 +314,8 @@ SENF_AUTO_UNIT_TEST(packetAssign) SENF_AUTO_UNIT_TEST(packetAnnotation) { + typedef senf::detail::AnnotationRegistry Reg; + senf::Packet packet (FooPacket::create()); BarPacket::createAfter(packet); @@ -329,10 +330,25 @@ SENF_AUTO_UNIT_TEST(packetAnnotation) BOOST_CHECK_EQUAL( p2.annotation().s, "dead beef" ); BOOST_CHECK_EQUAL( p2.annotation().i, 0x12345678 ); - BOOST_CHECK( senf::detail::AnnotationIndexer::Small ); - BOOST_CHECK( ! senf::detail::AnnotationIndexer::Small ); - BOOST_CHECK( ! senf::detail::AnnotationIndexer::Small ); - BOOST_CHECK( ! senf::detail::AnnotationIndexer::Small ); + BOOST_CHECK( Reg::lookup() >= 0 ); + BOOST_CHECK( Reg::lookup() < 0 ); + BOOST_CHECK( Reg::lookup() < 0 ); + BOOST_CHECK( Reg::lookup() < 0 ); + +#ifdef SENF_DEBUG + std::stringstream ss; + + senf::dumpPacketAnnotationRegistry(ss); + BOOST_CHECK_EQUAL( + ss.str(), + "SENF_PACKET_ANNOTATION_SLOTS = 8\n" + "SENF_PACKET_ANNOTATION_SLOTSIZE = 16\n" + "SLOT TYPE COMPLEX SIZE\n" + " (anonymous namespace)::ComplexEmptyAnnotation yes 1\n" + " (anonymous namespace)::ComplexAnnotation yes 8\n" + " (anonymous namespace)::LargeAnnotation no 32\n" + " 0 (anonymous namespace)::IntAnnotation no 4\n" ); +#endif } #ifdef COMPILE_CHECK