X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacket.test.cc;h=6aecfbea691148c55825d8e8464df082575f0f27;hb=1e7062482bb6d99a0c36b641069c73a4a93da9cc;hp=521dfcba3966d0d5bace85e4db871111fe74256f;hpb=ecfce1384902b0e341536988c821ab03d1af77f2;p=senf.git diff --git a/Packets/Packet.test.cc b/Packets/Packet.test.cc index 521dfcb..6aecfbe 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" @@ -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"; + << " type: " << p->type() << "\n" + << " length: " << p->length() << "\n"; } static void finalize(packet p) { if (p.next(senf::nothrow)) @@ -113,25 +113,41 @@ namespace { struct IntAnnotation { unsigned value; }; + + std::ostream & operator<<(std::ostream & os, IntAnnotation const & v) + { os << v.value; return os; } struct LargeAnnotation { char value[32]; }; + std::ostream & operator<<(std::ostream & os, LargeAnnotation const & v) + { os << v.value; return os; } + struct ComplexAnnotation : senf::ComplexAnnotation { + ComplexAnnotation() : s(), i() {} std::string s; int i; }; + std::ostream & operator<<(std::ostream & os, ComplexAnnotation const & v) + { os << "('" << v.s << "' " << v.i << ')'; return os; } + struct ComplexEmptyAnnotation : senf::ComplexAnnotation {}; + std::ostream & operator<<(std::ostream & os, ComplexEmptyAnnotation const & v) + { os << "(empty)"; return os; } + struct InvalidAnnotation { std::string value; }; + std::ostream & operator<<(std::ostream & os, InvalidAnnotation const & v) + { os << v.value; return os; } + } BOOST_AUTO_UNIT_TEST(packet) @@ -180,7 +196,13 @@ BOOST_AUTO_UNIT_TEST(packet) std::stringstream s; packet.dump(s); - BOOST_CHECK_EQUAL( s.str(), "BarPacket:\ntype: 0\nlength: 0\n" ); + BOOST_CHECK_EQUAL( s.str(), + "Annotations:\n" + " (anonymous namespace)::ComplexAnnotation: no value\n" + " (anonymous namespace)::IntAnnotation: 0\n" + "BarPacket:\n" + " type: 0\n" + " length: 0\n" ); packet.finalizeAll(); BOOST_CHECK_EQUAL( packet.last().as()->type(),