X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacket.test.cc;h=8fe977146782417937dd220dcaebcf4e33c56b3c;hb=9bc655e14d2d8c204ed835896cb51e42d49bd68f;hp=e735207bd94192ff0d7a600f5b9140ff78163804;hpb=5c330db423b5bbfa1b376d55a83e44bbc299bdd8;p=senf.git diff --git a/senf/Packets/Packet.test.cc b/senf/Packets/Packet.test.cc index e735207..8fe9771 100644 --- a/senf/Packets/Packet.test.cc +++ b/senf/Packets/Packet.test.cc @@ -29,6 +29,7 @@ // Custom includes #include #include +#include #include "Packets.hh" #include @@ -111,7 +112,7 @@ namespace { } struct IntAnnotation { - unsigned value; + boost::uint32_t value; }; std::ostream & operator<<(std::ostream & os, IntAnnotation const & v) @@ -126,9 +127,12 @@ namespace { struct ComplexAnnotation : senf::ComplexAnnotation { - ComplexAnnotation() : s(), i() {} + ComplexAnnotation() : s("empty"), i(-1) {} std::string s; - int i; + boost::int32_t i; + // padding so the size does not depend on the platform ... + struct _ {std::string s;boost::int32_t i;}; + char __ [32-sizeof(_)]; }; std::ostream & operator<<(std::ostream & os, ComplexAnnotation const & v) @@ -320,6 +324,10 @@ SENF_AUTO_UNIT_TEST(packetAnnotation) BarPacket::createAfter(packet); ComplexAnnotation & ca (packet.annotation()); + + BOOST_CHECK_EQUAL( ca.s, "empty" ); + BOOST_CHECK_EQUAL( ca.i, -1 ); + ca.s = "dead beef"; ca.i = 0x12345678; SENF_CHECK_NO_THROW( packet.annotation().value = 0xDEADBEEF ); @@ -335,20 +343,17 @@ SENF_AUTO_UNIT_TEST(packetAnnotation) 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 + "TYPE FAST COMPLEX SIZE\n" + "(anonymous namespace)::ComplexAnnotation no yes 32\n" + "(anonymous namespace)::ComplexEmptyAnnotation no yes 1\n" + "(anonymous namespace)::IntAnnotation yes no 4\n" + "(anonymous namespace)::LargeAnnotation no no 32\n" ); } #ifdef COMPILE_CHECK