X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FVectorParser.test.cc;h=e1f9d2b747eb57ac9dc736205d6a27dc997f3036;hb=a4ebeef29f8eb69dc2dad10668d762540002b924;hp=b51b392b6f23eaca9532e51a2eb14777be1dea52;hpb=4ee78597a1dae53669f5295cbb686c58146d2449;p=senf.git diff --git a/Packets/VectorParser.test.cc b/Packets/VectorParser.test.cc index b51b392..e1f9d2b 100644 --- a/Packets/VectorParser.test.cc +++ b/Packets/VectorParser.test.cc @@ -200,6 +200,13 @@ BOOST_AUTO_UNIT_TEST(dynamicPolicyVector) namespace { + struct TestTransform + { + typedef unsigned value_type; + static unsigned get(unsigned v) { return v-2; } + static unsigned set(unsigned v) { return v+2; } + }; + struct TestVectorParser : public senf::PacketParserBase { @@ -208,8 +215,8 @@ namespace { SENF_PARSER_PRIVATE_FIELD ( size1 , senf::UInt8Parser ); SENF_PARSER_PRIVATE_FIELD ( size2 , senf::UInt8Parser ); SENF_PARSER_FIELD ( dummy , senf::UInt32Parser ); - SENF_PARSER_VECTOR ( vec1 , size1, senf::UInt16Parser ); - SENF_PARSER_VECTOR ( vec2 , size2, senf::UInt16Parser ); + SENF_PARSER_VECTOR ( vec1 , transform(TestTransform, size1) , senf::UInt16Parser ); + SENF_PARSER_VECTOR ( vec2 , bytes(size2) , senf::UInt16Parser ); SENF_PARSER_FINALIZE( TestVectorParser ); }; @@ -218,8 +225,8 @@ namespace { BOOST_AUTO_UNIT_TEST(vectorMacro) { - unsigned char data[] = { 0x03, // size1 - 0x02, // size2 + unsigned char data[] = { 0x05, // size1 + 0x04, // size2 0x01, 0x02, 0x03, 0x04, // dummy 0x05, 0x06, // vec1[0] 0x07, 0x08, // vec1[1]