X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FParseListN.test.cc;h=bd78e2fd00b7d9d7ec34a3e0ee8042387341d502;hb=688f3266c15bd532194fe81e704c0a2cf320375a;hp=3800a0d9084da2c6e8b0b44000c8f88fb07b1587;hpb=2d6585ff852e9d282c17003ba1db0b73eb3a8500;p=senf.git diff --git a/Packets/ParseListN.test.cc b/Packets/ParseListN.test.cc index 3800a0d..bd78e2f 100644 --- a/Packets/ParseListN.test.cc +++ b/Packets/ParseListN.test.cc @@ -27,7 +27,7 @@ // Custom includes #include "Packets.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ @@ -37,12 +37,21 @@ namespace { struct VoidPacket_Type : public senf::PacketTypeBase {}; typedef senf::ConcretePacket VoidPacket; + + struct MyVec : public senf::PacketParserBase + { +# include SENF_PARSER() + + SENF_PARSER_PRIVATE_FIELD( size, senf::Parse_UInt8 ); + SENF_PARSER_VEC_N( vec, size, senf::Parse_UInt16 ); + + SENF_PARSER_FINALIZE(MyVec); + }; } BOOST_AUTO_UNIT_TEST(parseListN) { - typedef senf::Parse_VectorN::parser ParseVec; - typedef senf::Parse_ListN::parser ParseList; + typedef senf::Parse_ListN::parser ParseList; VoidPacket vp (VoidPacket::create(ParseList::init_bytes)); @@ -62,35 +71,35 @@ BOOST_AUTO_UNIT_TEST(parseListN) BOOST_CHECK_EQUAL( p.bytes(), 3u ); BOOST_CHECK_EQUAL( p.size(), 1u ); BOOST_CHECK_EQUAL( p.front().bytes(), 1u ); - BOOST_CHECK_EQUAL( p.front().size(), 0u ); + BOOST_CHECK_EQUAL( p.front().vec().size(), 0u ); BOOST_CHECK_EQUAL( vp.data()[1], 0x01u ); - p.front().push_back(0x1234u); - BOOST_CHECK_EQUAL( p.front().size(), 1u ); + p.front().vec().push_back(0x1234u); + BOOST_CHECK_EQUAL( p.front().vec().size(), 1u ); BOOST_CHECK_EQUAL( p.front().bytes(), 3u ); - BOOST_CHECK_EQUAL( p.front()[0], 0x1234u ); + BOOST_CHECK_EQUAL( p.front().vec()[0], 0x1234u ); BOOST_CHECK_EQUAL( p.size(), 1u ); BOOST_CHECK_EQUAL( p.bytes(), 5u ); - p.front().push_back(0x2345u); - BOOST_CHECK_EQUAL( p.front().back(), 0x2345u ); + p.front().vec().push_back(0x2345u); + BOOST_CHECK_EQUAL( p.front().vec().back(), 0x2345u ); BOOST_CHECK_EQUAL( p.bytes(), 7u ); p.push_back_space(); BOOST_CHECK_EQUAL( p.size(), 2u ); BOOST_CHECK_EQUAL( p.bytes(), 8u ); - p.back().push_front(0x0123u); - BOOST_CHECK_EQUAL( p.front().size(), 2u ); - BOOST_CHECK_EQUAL( p.back().size(), 1u ); + p.back().vec().push_front(0x0123u); + BOOST_CHECK_EQUAL( p.front().vec().size(), 2u ); + BOOST_CHECK_EQUAL( p.back().vec().size(), 1u ); p.push_front_space(2u); BOOST_CHECK_EQUAL( p.size(), 4u ); - BOOST_CHECK_EQUAL( p.front().size(), 0u); + BOOST_CHECK_EQUAL( p.front().vec().size(), 0u); p.resize(3u); BOOST_CHECK_EQUAL( p.size(), 3u ); - BOOST_CHECK_EQUAL( p.back()[0], 0x1234u ); + BOOST_CHECK_EQUAL( p.back().vec()[0], 0x1234u ); BOOST_CHECK_EQUAL( p.bytes(), 9u ); # undef p @@ -99,8 +108,7 @@ BOOST_AUTO_UNIT_TEST(parseListN) BOOST_AUTO_UNIT_TEST(parseListN_container) { - typedef senf::Parse_VectorN::parser ParseVec; - typedef senf::Parse_ListN::parser ParseList; + typedef senf::Parse_ListN::parser ParseList; VoidPacket vp (VoidPacket::create(ParseList::init_bytes));