X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacketImpl.test.cc;h=6a8d5383bbf3b151d1b5c8ac1847dde7df6533e9;hb=refs%2Fheads%2Fmaster;hp=13db554ed0344c7cb646dd1f78e7fa5d55a094fe;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Packets/PacketImpl.test.cc b/senf/Packets/PacketImpl.test.cc index 13db554..6a8d538 100644 --- a/senf/Packets/PacketImpl.test.cc +++ b/senf/Packets/PacketImpl.test.cc @@ -2,23 +2,28 @@ // // 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 -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Stefan Bund /** \file \brief PacketImpl unit tests */ @@ -30,11 +35,12 @@ #include "Packets.hh" #include "main.test.hh" +#include #include #include #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace { struct VoidPacket : public senf::PacketTypeBase {}; @@ -44,7 +50,7 @@ namespace { // only validate PacketInterpreterBase as far as to ensure that a failure of one test is not due to // an error in PacketInterpreterbase -BOOST_AUTO_UNIT_TEST(packetImpl_mem) +SENF_AUTO_UNIT_TEST(packetImpl_mem) { senf::detail::PacketImpl * p (new senf::detail::PacketImpl()); BOOST_CHECK_EQUAL(p->refcount(), 0); @@ -58,9 +64,9 @@ BOOST_AUTO_UNIT_TEST(packetImpl_mem) // refcount .. - p->add_ref(2); - BOOST_CHECK_EQUAL(p->refcount(), 3); - p->release(2); + p->add_ref(); + BOOST_CHECK_EQUAL(p->refcount(), 2); + p->release(); BOOST_CHECK_EQUAL(p->refcount(), 1); { @@ -74,7 +80,7 @@ BOOST_AUTO_UNIT_TEST(packetImpl_mem) senf::pool_alloc_mixin< senf::PacketInterpreter >::allocCounter(), 1u); #endif senf::PacketInterpreterBase::ptr pi2 (pi); - BOOST_CHECK_EQUAL(p->refcount(), 3); + BOOST_CHECK_EQUAL(p->refcount(), 2); } BOOST_CHECK_EQUAL(p->refcount(),1); @@ -101,12 +107,12 @@ BOOST_AUTO_UNIT_TEST(packetImpl_mem) #endif } -BOOST_AUTO_UNIT_TEST(packetImpl_data) +SENF_AUTO_UNIT_TEST(packetImpl_data) { senf::PacketInterpreterBase::ptr pi (senf::PacketInterpreter::create()); senf::detail::PacketImpl * p (senf::detail::packet::test::TestDriver::impl(pi)); - senf::detail::PacketImpl::byte data[] = + senf::detail::PacketImpl::byte data[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; p->insert(&pi->data(),p->begin(),data, data+sizeof(data)); @@ -114,7 +120,7 @@ BOOST_AUTO_UNIT_TEST(packetImpl_data) BOOST_CHECK_EQUAL(p->begin()[0], 0x00u); BOOST_CHECK_EQUAL(p->begin()[7], 0x07u); BOOST_CHECK_EQUAL(pi->data().size(), p->size()); - + p->insert(&pi->data(),p->begin()+2,0xf0u); BOOST_CHECK_EQUAL(p->size(),9u); BOOST_CHECK_EQUAL(p->begin()[8], 0x07u); @@ -131,7 +137,7 @@ BOOST_AUTO_UNIT_TEST(packetImpl_data) BOOST_CHECK_EQUAL(p->size(),16u); BOOST_CHECK_EQUAL(p->begin()[0], 0x01u); BOOST_CHECK_EQUAL(pi->data().size(), p->size()); - + p->erase(&pi->data(),p->begin()+2, p->begin()+7); BOOST_CHECK_EQUAL(p->size(),11u); BOOST_CHECK_EQUAL(p->begin()[2], 0x07u); @@ -147,31 +153,36 @@ BOOST_AUTO_UNIT_TEST(packetImpl_data) BOOST_CHECK(pi->data().begin() == p->begin()); } -BOOST_AUTO_UNIT_TEST(packetImpl_interpreters) +SENF_AUTO_UNIT_TEST(packetImpl_interpreters) { senf::detail::PacketImpl * p (new senf::detail::PacketImpl()); p->add_ref(); { - senf::PacketInterpreterBase::ptr pi2 ( + senf::PacketInterpreterBase::ptr pi3 ( senf::detail::packet::test::TestDriver::create( p,p->begin(),p->end(),senf::PacketInterpreterBase::Append)); - senf::PacketInterpreterBase::ptr pi3 ( + senf::PacketInterpreterBase::ptr pi4 ( senf::detail::packet::test::TestDriver::create( p,p->end(),p->end(),senf::PacketInterpreterBase::Append)); senf::PacketInterpreterBase::ptr pi1 ( senf::detail::packet::test::TestDriver::create( p,p->begin(),p->end(),senf::PacketInterpreterBase::Prepend)); + senf::PacketInterpreterBase::ptr pi2 ( + senf::detail::packet::test::TestDriver::create( + p,p->begin(),p->end(),pi3)); BOOST_CHECK_EQUAL(p->first(), pi1.get()); BOOST_CHECK_EQUAL(p->next(p->first()), pi2.get()); BOOST_CHECK_EQUAL(p->next(p->next(p->first())), pi3.get()); - BOOST_CHECK( !p->next(p->next(p->next(p->first()))) ); + BOOST_CHECK_EQUAL(p->next(p->next(p->next(p->first()))), pi4.get()); + BOOST_CHECK( !p->next(p->next(p->next(p->next(p->first())))) ); - BOOST_CHECK_EQUAL(p->last(), pi3.get()); - BOOST_CHECK_EQUAL(p->prev(p->last()), pi2.get()); - BOOST_CHECK_EQUAL(p->prev(p->prev(p->last())), pi1.get()); - BOOST_CHECK( !p->prev(p->prev(p->prev(p->last()))) ); + BOOST_CHECK_EQUAL(p->last(), pi4.get()); + BOOST_CHECK_EQUAL(p->prev(p->last()), pi3.get()); + BOOST_CHECK_EQUAL(p->prev(p->prev(p->last())), pi2.get()); + BOOST_CHECK_EQUAL(p->prev(p->prev(p->prev(p->last()))), pi1.get()); + BOOST_CHECK( !p->prev(p->prev(p->prev(p->prev(p->last())))) ); p->insert(&pi2->data(),p->begin(),10,0x00u); BOOST_CHECK_EQUAL(pi1->data().size(), 10u); @@ -180,12 +191,12 @@ BOOST_AUTO_UNIT_TEST(packetImpl_interpreters) BOOST_CHECK( pi1->data().begin() == p->begin() ); BOOST_CHECK( pi2->data().begin() == p->begin() ); BOOST_CHECK( pi3->data().begin() == p->end() ); - + p->insert(&pi3->data(),p->end(), 0x00u); BOOST_CHECK_EQUAL(pi1->data().size(), 11u); BOOST_CHECK_EQUAL(pi2->data().size(), 11u); BOOST_CHECK_EQUAL(pi3->data().size(), 1u); - + p->insert(&pi1->data(),p->end(), 2, 0x00u); BOOST_CHECK_EQUAL(pi1->data().size(), 13u); BOOST_CHECK_EQUAL(pi2->data().size(), 11u); @@ -207,7 +218,7 @@ BOOST_AUTO_UNIT_TEST(packetImpl_interpreters) #endif } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_