X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FScheduler%2FTimerEventProxy.test.cc;h=73e9fd4078394768fd424ec080f80b80c0577a33;hb=refs%2Fheads%2Fmaster;hp=eb07187d5fa28b3e8a73e3254370329657cf51a3;hpb=acce6d54436fa760c0f4770ea3a6c76ae40e0bb8;p=senf.git diff --git a/senf/Scheduler/TimerEventProxy.test.cc b/senf/Scheduler/TimerEventProxy.test.cc index eb07187..73e9fd4 100644 --- a/senf/Scheduler/TimerEventProxy.test.cc +++ b/senf/Scheduler/TimerEventProxy.test.cc @@ -2,27 +2,28 @@ // // Copyright (C) 2010 // Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY -// Jens Moedeker // -// 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. - -/** \file - \brief TimerEventProxy public header */ +// 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): +// Jens Moedeker /** \file \brief TimerEventProxy.test non-inline non-template implementation */ @@ -33,59 +34,65 @@ // Custom includes #include "TimerEventProxy.hh" #include "Scheduler.hh" -#include #include #include #include #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// +using namespace senf; + namespace { - int count = 0; + int mask = 0; - void handler( senf::ClockService::clock_type time, int const &id) + void handler(ClockService::clock_type time, int const &id) { - std::cerr << "TimerEventProxy handler count="< timers; + scheduler::TimerEventProxy timers ("unit-test"); + +// timers.add( t + ClockService::milliseconds(10000), 0 , &handler); + timers.add( now + ClockService::milliseconds(800), 4, &handler); + timers.add( now + ClockService::milliseconds(200), 1, &handler); + BOOST_CHECK( timers.remove( 4)); + BOOST_CHECK(! timers.remove( 4)); + BOOST_CHECK_EQUAL( timers.timeout(4), ClockService::clock_type(0)); + timers.add( now + ClockService::milliseconds(700), 2, &handler); - SENF_CHECK_NO_THROW( timers.add( t + senf::ClockService::milliseconds(10000), 0 , &handler)); - SENF_CHECK_NO_THROW( timers.add( t + senf::ClockService::milliseconds(800), 3, &handler)); - SENF_CHECK_NO_THROW( timers.add( t + senf::ClockService::milliseconds(200), 1, &handler)); - SENF_CHECK_NO_THROW( timers.del( 3)); - SENF_CHECK_NO_THROW( timers.add( t + senf::ClockService::milliseconds(700), 2, &handler)); + BOOST_CHECK_EQUAL( timers.timeout(1), now + ClockService::milliseconds(200)); + BOOST_CHECK_EQUAL( timers.timeout(2), now + ClockService::milliseconds(700)); - // set timeout for termination - senf::scheduler::TimerEvent te_exit( "myexit", &myexit, t + senf::ClockService::milliseconds( 1000)); + timers.add( now + ClockService::milliseconds(800), 2, &handler); + BOOST_CHECK_EQUAL( timers.timeout(2), now + ClockService::milliseconds(800)); + timers.add( now, 4, &handler); - SENF_CHECK_NO_THROW( senf::scheduler::process() ); + run( ClockService::milliseconds( 2000)); - BOOST_CHECK( count == 2); + BOOST_CHECK( mask == 7); } } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_