X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketParser.test.cc;h=3e53f0069aa5a04472ced775d22d57680044a8ea;hb=a4ebeef29f8eb69dc2dad10668d762540002b924;hp=5db0e606a0780a454b1a6a795765d5103377bcf5;hpb=f13c1275e48e97dceb7de7925793a4c69a5aeb61;p=senf.git diff --git a/Packets/PacketParser.test.cc b/Packets/PacketParser.test.cc index 5db0e60..3e53f00 100644 --- a/Packets/PacketParser.test.cc +++ b/Packets/PacketParser.test.cc @@ -1,6 +1,8 @@ -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// $Id$ +// +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -25,12 +27,9 @@ //#include "PacketParser.test.ih" // Custom includes -#include "PacketParser.hh" -#include "PacketInterpreter.hh" -#include "PacketType.hh" -#include "ParseInt.hh" +#include "Packets.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ @@ -41,7 +40,8 @@ namespace { struct SimpleParser : public senf::PacketParserBase { - SENF_PACKET_PARSER_INIT(SimpleParser); +# include SENF_FIXED_PARSER() + SENF_PARSER_FINALIZE(SimpleParser); using senf::PacketParserBase::check; using senf::PacketParserBase::validate; @@ -49,20 +49,22 @@ namespace { struct FooParser : public senf::PacketParserBase { - SENF_PACKET_PARSER_INIT(FooParser); +# include SENF_FIXED_PARSER() + + SENF_PARSER_FIELD( name, senf::UInt16Parser ); + SENF_PARSER_FIELD( id, senf::Int32Parser ); - SENF_PACKET_PARSER_DEFINE_FIXED_FIELDS( - ((Field)( name, senf::Parse_UInt16 )) - ((Field)( id, senf::Parse_Int32 )) ); + SENF_PARSER_FINALIZE(FooParser); }; struct BarParser : public senf::PacketParserBase { - SENF_PACKET_PARSER_INIT(BarParser); +# include SENF_PARSER() - SENF_PACKET_PARSER_DEFINE_FIELDS( - ((Field)( name, senf::Parse_UInt16 )) - ((Field)( id, senf::Parse_Int32 )) ); + SENF_PARSER_FIELD( name, senf::UInt16Parser ); + SENF_PARSER_FIELD( id, senf::Int32Parser ); + + SENF_PARSER_FINALIZE(BarParser); }; } @@ -81,7 +83,7 @@ BOOST_AUTO_UNIT_TEST(packetParserBase) // otherwise ... BOOST_CHECK_EQUAL( FooParser::fixed_bytes+0, 6u ); BOOST_CHECK_EQUAL( BarParser(pi->data().begin(),&pi->data()).bytes(), 6u ); - BOOST_CHECK_EQUAL( senf::bytes(senf::Parse_UInt16(pi->data().begin(),&pi->data())), 2u ); + BOOST_CHECK_EQUAL( senf::bytes(senf::UInt16Parser(pi->data().begin(),&pi->data())), 2u ); BOOST_CHECK_EQUAL( senf::bytes(FooParser(pi->data().begin(),&pi->data())), 6u ); BOOST_CHECK_EQUAL( senf::bytes(BarParser(pi->data().begin(),&pi->data())), 6u ); @@ -89,27 +91,6 @@ BOOST_AUTO_UNIT_TEST(packetParserBase) BOOST_CHECK_EQUAL( senf::init_bytes::value, 6u ); } -BOOST_AUTO_UNIT_TEST(safePacketParser) -{ - senf::PacketInterpreter::ptr pi (senf::PacketInterpreter::create(6u)); - senf::SafePacketParser p; - - BOOST_CHECK( !p ); - - p = senf::Parse_UInt16(pi->data().begin(),&pi->data()); - - BOOST_CHECK( p ); - (*p) = 0x1234u; - - BOOST_CHECK_EQUAL( (*p), 0x1234u ); - BOOST_CHECK_EQUAL( p->data()[0], 0x12u ); - - p->data().resize(1024u); - BOOST_CHECK_EQUAL( (*p), 0x1234u ); - (*p) = 0x2345u; - BOOST_CHECK_EQUAL( p->data()[0], 0x23u ); -} - ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_