X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FListBParser.test.cc;h=82b6dd353c855da60cd413c976b472c43f0a2acd;hb=2ffca72ed06b10829071cd1b28d9047ff735f929;hp=0a53ae4405be8d7657052dacc1d26a946e096084;hpb=8f1a688cea76f2e76bfa0193dff9c1538929147e;p=senf.git diff --git a/Packets/ListBParser.test.cc b/Packets/ListBParser.test.cc index 0a53ae4..82b6dd3 100644 --- a/Packets/ListBParser.test.cc +++ b/Packets/ListBParser.test.cc @@ -44,12 +44,15 @@ namespace { # include SENF_PARSER() SENF_PARSER_PRIVATE_FIELD( size, senf::UInt8Parser ); - SENF_PARSER_VEC_N( vec, size, senf::UInt16Parser ); + SENF_PARSER_VECTOR( vec, size, senf::UInt16Parser ); SENF_PARSER_FINALIZE(VectorParser); }; - typedef senf::ListBParser::parser MyListBParser; + typedef senf::ListParser< + senf::detail::ListBParser_Policy< + VectorParser, + senf::detail::PrefixAuxParserPolicy > > MyListBParser; } BOOST_AUTO_UNIT_TEST(ListBParser) @@ -147,6 +150,13 @@ BOOST_AUTO_UNIT_TEST(ListBParser_container) namespace { + struct TestTransform + { + typedef unsigned value_type; + static unsigned get(unsigned v) { return v/2; } + static unsigned set(unsigned v) { return 2*v; } + }; + struct TestListParser : public senf::PacketParserBase { @@ -156,7 +166,8 @@ namespace { SENF_PARSER_PRIVATE_FIELD ( size2 , senf::UInt8Parser ); SENF_PARSER_FIELD ( dummy , senf::UInt32Parser ); SENF_PARSER_LIST ( list1 , bytes(size1) , VectorParser ); - SENF_PARSER_LIST ( list2 , bytes(size2) , VectorParser ); + SENF_PARSER_LIST ( list2 , transform(TestTransform, bytes(size2)) , + VectorParser ); SENF_PARSER_FINALIZE(TestListParser); }; @@ -165,8 +176,8 @@ namespace { BOOST_AUTO_UNIT_TEST(listBytesMacro) { - unsigned char data[] = { 0x08, // size1 - 0x09, // size2 + unsigned char data[] = { 8, // size1 + 18, // size2 0x01, 0x02, 0x03, 0x04, // dummy 0x01, // list1()[0].size() 0x05, 0x06, // list1().vec()[0]