X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FVariantParser.test.cc;h=1bf32545addd661e3449c3a6ce8f7963b437da25;hb=6165e70feef7199dc3fe96a881d055f6a2999b00;hp=e215a89758693b70ecce2db3e8e4a006afaa8d0c;hpb=ef9940d989277e814988967b0022bfdd13542045;p=senf.git diff --git a/Packets/VariantParser.test.cc b/Packets/VariantParser.test.cc index e215a89..1bf3254 100644 --- a/Packets/VariantParser.test.cc +++ b/Packets/VariantParser.test.cc @@ -78,7 +78,10 @@ BOOST_AUTO_UNIT_TEST(VariantParser) }; } -namespace { +// We can't use the unnamed namespace here since there's a bug in gcc-4.2.3 which is +// the default version of gcc on ubuntu hardy :-( +// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34213 +namespace VariantParser_test_cc_anon_namespace { struct SubParser : public senf::PacketParserBase { @@ -94,18 +97,25 @@ namespace { { # include SENF_PARSER() - SENF_PARSER_SKIP_BITS( 4 ); + SENF_PARSER_BITFIELD_RO( len, 4, unsigned ); SENF_PARSER_BITFIELD_RO( type, 4, unsigned ); + // just here so the second variant is 'var' + SENF_PARSER_VARIANT( value, len, + (senf::VoidPacketParser) + (senf::UInt8Parser) + (senf::UInt16Parser) + (senf::UInt32Parser) + ); SENF_PARSER_VARIANT( content_, type, - ( novalue( nocontent -, key(10, senf::VoidPacketParser)) ) - ( id( content, SubParser ) ) + ( novalue( nocontent, key(10, senf::VoidPacketParser) ) ) + ( id( content, SubParser ) ) ); SENF_PARSER_FINALIZE(TestParser); }; } +using namespace VariantParser_test_cc_anon_namespace; BOOST_AUTO_UNIT_TEST(VariantParserMacro) {