Utils/Termlib: Extend the completion API
[senf.git] / Packets / VariantParser.test.cc
index e215a89..364349e 100644 (file)
@@ -21,7 +21,7 @@
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 /** \file
-    \brief VariantParser.test unit tests */
+    \brief VariantParser unit tests */
 
 //#include "VariantParser.test.hh"
 //#include "VariantParser.test.ih"
@@ -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)
 {