X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FScheduler.test.cc;h=14e01bc0586b459bd3d9fb021e6e00b96b7e2f8a;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=2254cdbb9e4a8cb9553eb90343dbca9d2bfdc3be;hpb=d001b1fe2a8fb121145d2a111d737219abae20d7;p=senf.git diff --git a/Scheduler/Scheduler.test.cc b/Scheduler/Scheduler.test.cc index 2254cdb..14e01bc 100644 --- a/Scheduler/Scheduler.test.cc +++ b/Scheduler/Scheduler.test.cc @@ -20,10 +20,11 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Unit tests +/** \file + \brief Scheduler unit tests */ -//#include "scheduler.test.hh" -//#include "scheduler.test.ih" +//#include "Scheduler.test.hh" +//#include "Scheduler.test.ih" // Custom includes #include @@ -241,8 +242,8 @@ void schedulerTest() /////////////////////////////////////////////////////////////////////////// - senf::scheduler::EventHook evev ("eventCounter", eventeventhandler, true, - senf::scheduler::EventHook::PRE); + senf::scheduler::EventHook evev ("eventCounter", eventeventhandler, + senf::scheduler::EventHook::PRE); { senf::scheduler::FdEvent fde1 ("testFdEvent", boost::bind(&callback, sock, _1), @@ -294,11 +295,11 @@ void schedulerTest() BOOST_CHECK_EQUAL( event, senf::scheduler::FdEvent::EV_NONE ); BOOST_CHECK( ! timer2.enabled() ); - BOOST_WARN_MESSAGE( false, "A 'Scheduler task hanging' error is expected to be signaled here." ); + BOOST_MESSAGE( "A 'Scheduler task hanging' error is expected to be signaled here." ); SENF_CHECK_NO_THROW( timer1.action(&blockingHandler) ); SENF_CHECK_NO_THROW( timer1.timeout(senf::ClockService::now()) ); SENF_CHECK_NO_THROW( senf::scheduler::process() ); - BOOST_CHECK_EQUAL( senf::scheduler::hangCount(), 1u ); + BOOST_CHECK_EQUAL( senf::scheduler::watchdogEvents(), 1u ); } { @@ -333,13 +334,28 @@ BOOST_AUTO_UNIT_TEST(testSchedulerPollTimers) BOOST_AUTO_UNIT_TEST(testSchedulerHiresTimers) { - senf::scheduler::hiresTimers(); + if (senf::scheduler::haveScalableHiresTimers()) + BOOST_MESSAGE( "Using timerfd() hires timers" ); + else + BOOST_MESSAGE( "Using POSIX hires timers"); + SENF_CHECK_NO_THROW( senf::scheduler::hiresTimers() ); BOOST_CHECK( senf::scheduler::usingHiresTimers() ); schedulerTest(); - senf::scheduler::loresTimers(); + SENF_CHECK_NO_THROW( senf::scheduler::loresTimers() ); BOOST_CHECK( ! senf::scheduler::usingHiresTimers() ); } +BOOST_AUTO_UNIT_TEST(testSchedulerPOSIXTimers) +{ + if (senf::scheduler::haveScalableHiresTimers()) { + SENF_CHECK_NO_THROW( senf::scheduler::detail::TimerDispatcher::instance().timerSource( + std::auto_ptr( + new senf::scheduler::detail::POSIXTimerSource())) ); + schedulerTest(); + senf::scheduler::loresTimers(); + } +} + namespace { void sigme()