X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FScheduler%2FTimerEventProxy.test.cc;h=73e9fd4078394768fd424ec080f80b80c0577a33;hb=refs%2Fheads%2Fmaster;hp=ed39af871a6d1765b91a715e5fa5d0eb7ee64484;hpb=566fb4271b2aff5aa07943707f770b2a84c2738b;p=senf.git diff --git a/senf/Scheduler/TimerEventProxy.test.cc b/senf/Scheduler/TimerEventProxy.test.cc index ed39af8..73e9fd4 100644 --- a/senf/Scheduler/TimerEventProxy.test.cc +++ b/senf/Scheduler/TimerEventProxy.test.cc @@ -2,23 +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. +// 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 */ @@ -36,19 +41,21 @@ #define prefix_ //-///////////////////////////////////////////////////////////////////////////////////////////////// +using namespace senf; + namespace { int mask = 0; - void handler( senf::ClockService::clock_type time, int const &id) + void handler(ClockService::clock_type time, int const &id) { mask = mask + id; } - void run(senf::ClockService::clock_type t) { - senf::scheduler::TimerEvent timeout( - "test-timeout", &senf::scheduler::terminate, senf::scheduler::now() + t); - senf::scheduler::process(); + void run(ClockService::clock_type t) { + scheduler::TimerEvent timeout( + "test-timeout", &scheduler::terminate, scheduler::now() + t); + scheduler::process(); } } @@ -56,30 +63,31 @@ namespace { SENF_AUTO_UNIT_TEST(timerEventProxy) { // // abort on watchdog timeout -// senf::scheduler::watchdogAbort( true); -// senf::scheduler::watchdogTimeout(5000); +// scheduler::watchdogAbort( true); +// scheduler::watchdogTimeout(5000); - senf::ClockService::clock_type t (senf::ClockService::now()); + ClockService::clock_type now (ClockService::now()); { - senf::scheduler::TimerEventProxy timers ("unit-test"); + scheduler::TimerEventProxy timers ("unit-test"); -// timers.add( t + senf::ClockService::milliseconds(10000), 0 , &handler); - timers.add( t + senf::ClockService::milliseconds(800), 4, &handler); - timers.add( t + senf::ClockService::milliseconds(200), 1, &handler); +// 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)); - timers.add( t + senf::ClockService::milliseconds(700), 2, &handler); + BOOST_CHECK_EQUAL( timers.timeout(4), ClockService::clock_type(0)); + timers.add( now + ClockService::milliseconds(700), 2, &handler); - BOOST_CHECK_EQUAL( timers.timeout(1), t + senf::ClockService::milliseconds(200)); - BOOST_CHECK_EQUAL( timers.timeout(2), t + senf::ClockService::milliseconds(700)); + BOOST_CHECK_EQUAL( timers.timeout(1), now + ClockService::milliseconds(200)); + BOOST_CHECK_EQUAL( timers.timeout(2), now + ClockService::milliseconds(700)); - timers.add( t + senf::ClockService::milliseconds(800), 2, &handler); - BOOST_CHECK_EQUAL( timers.timeout(2), t + senf::ClockService::milliseconds(800)); - BOOST_CHECK_EQUAL( timers.timeout(4), 0); + timers.add( now + ClockService::milliseconds(800), 2, &handler); + BOOST_CHECK_EQUAL( timers.timeout(2), now + ClockService::milliseconds(800)); + timers.add( now, 4, &handler); - run( senf::ClockService::milliseconds( 2000)); + run( ClockService::milliseconds( 2000)); - BOOST_CHECK( mask == 3); + BOOST_CHECK( mask == 7); } }