Fix documentation build under maverick (doxygen 1.7.1)
[senf.git] / senf / Scheduler / TimerEventProxy.test.cc
index eb07187..0710247 100644 (file)
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 /** \file
- \brief TimerEventProxy public header */
-//
-
-/** \file
     \brief TimerEventProxy.test non-inline non-template implementation */
 
 //#include "TimerEventProxy.test.hh"
 // Custom includes
 #include "TimerEventProxy.hh"
 #include "Scheduler.hh"
-#include <boost/bind.hpp>
 
 #include <senf/Utils/auto_unit_test.hh>
 #include <boost/test/test_tools.hpp>
 #include <boost/random.hpp>
 
 #define prefix_
-///////////////////////////////cc.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 namespace {
 
-    int count = 0;
+    int mask = 0;
 
     void handler( senf::ClockService::clock_type time, int const &id)
     {
-        std::cerr << "TimerEventProxy handler count="<<count<<" id="<<id<<"\n";
-        ++count;
+        mask = mask + id;
     }
 
-    void myexit(){
-        std::cerr << "TimerEventProxy terminating\n";
-        senf::scheduler::terminate();
+    void run(senf::ClockService::clock_type t) {
+        senf::scheduler::TimerEvent timeout(
+                "test-timeout", &senf::scheduler::terminate, senf::scheduler::now() + t);
+        senf::scheduler::process();
     }
 
 }
 
 SENF_AUTO_UNIT_TEST(timerEventProxy)
 {
-
 //    // abort on watchdog timeout
 //    senf::scheduler::watchdogAbort( true);
 //    senf::scheduler::watchdogTimeout(5000);
 
     senf::ClockService::clock_type t (senf::ClockService::now());
     {
-        senf::scheduler::TimerEventProxy<int> timers;
+        senf::scheduler::TimerEventProxy<int> timers ("unit-test");
 
-        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));
+//        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);
+        BOOST_CHECK( timers.remove( 4));
+        BOOST_CHECK(! timers.remove( 4));
+        timers.add( t + senf::ClockService::milliseconds(700), 2, &handler);
 
-        // set timeout for termination
-        senf::scheduler::TimerEvent te_exit( "myexit", &myexit, t + senf::ClockService::milliseconds( 1000));
+        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(4), 0);
 
-        SENF_CHECK_NO_THROW( senf::scheduler::process() );
+        run( senf::ClockService::milliseconds( 2000));
 
-        BOOST_CHECK( count == 2);
+        BOOST_CHECK( mask == 3);
     }
 }
 
 
-///////////////////////////////cc.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #undef prefix_