X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FScheduler.test.cc;h=0a135182e2abfe34b4d070d822365eab52d4c629;hb=c45c112ae88196ea8da9c5a9efb0e167196744d2;hp=2254cdbb9e4a8cb9553eb90343dbca9d2bfdc3be;hpb=d001b1fe2a8fb121145d2a111d737219abae20d7;p=senf.git diff --git a/Scheduler/Scheduler.test.cc b/Scheduler/Scheduler.test.cc index 2254cdb..0a13518 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 @@ -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()