X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FGenericTLV.test.cc;h=d35523cdc696bdd72eb3a81955d8ade38c97063e;hb=cf48e83de9d4793ca5bd67d1e5acdb5b20968638;hp=84be10c9df42ff8e6afa96dfde0b26d283b3f8cc;hpb=a79c5e98760ea8232c13d8266eb7ca0ac5cdefd3;p=senf.git diff --git a/senf/Packets/GenericTLV.test.cc b/senf/Packets/GenericTLV.test.cc index 84be10c..d35523c 100644 --- a/senf/Packets/GenericTLV.test.cc +++ b/senf/Packets/GenericTLV.test.cc @@ -59,11 +59,20 @@ namespace { SENF_PARSER_FINALIZE ( MyConcreteTLVParser ); SENF_PARSER_INIT() { - type() = TYPEID; + type() = typeId; length_() = 4; - } - static const type_t::value_type TYPEID = 0x42; + } + static type_t::value_type const typeId; + + void dump(std::ostream & os) const { + boost::io::ios_all_saver ias(os); + os << "MyConcreteTLVParser\n" + << " type: " << senf::format::dumpint(type()) << "\n" + << " length: " << senf::format::dumpint(length()) << "\n" + << " value: " << senf::format::dumpint(myValue()) << "\n"; + } }; + MyConcreteTLVParser::type_t::value_type const MyConcreteTLVParser::typeId = 0x42; class MyTestPacketParser : public senf::PacketParserBase @@ -141,6 +150,29 @@ BOOST_AUTO_UNIT_TEST(GenericTLV_packet) } +BOOST_AUTO_UNIT_TEST(GenericTLV_registry) +{ + MyTestPacket p ( MyTestPacket::create()); + MyTestPacket::Parser::tlv_list_t::container tlvContainer (p->tlv_list() ); + MyConcreteTLVParser conreteTLVParser ( + tlvContainer.push_back_space().init()); + conreteTLVParser.myValue() << 0xffff; + p.finalizeThis(); + + typedef senf::GenericTLVParserRegistry MyTLVParserRegistry; + + std::stringstream ss; + MyTLVParserRegistry::instance().dump(ss, *tlvContainer.begin()); + BOOST_CHECK_EQUAL( ss.str().substr(0,56), "GenericTLVParser<(anonymous namespace)::MyTLVParserBase>" ); + + MyTLVParserRegistry::instance().registerParser(); + ss.str(""); ss.clear(); + + MyTLVParserRegistry::instance().dump(ss, *tlvContainer.begin()); + BOOST_CHECK_EQUAL( ss.str().substr(0,19), "MyConcreteTLVParser" ); +} + + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_