X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FFdEvent.test.cc;h=865c45a4dc7c2c7774abd85449bfc8fc48bf2057;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=39c0acfdbec2913790e01c1d840064e196ef21e9;hpb=03516e8371a90f908ce54dedb3c874eec7dd08ff;p=senf.git diff --git a/Scheduler/FdEvent.test.cc b/Scheduler/FdEvent.test.cc index 39c0acf..865c45a 100644 --- a/Scheduler/FdEvent.test.cc +++ b/Scheduler/FdEvent.test.cc @@ -21,7 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief FdEvent.test unit tests */ + \brief FdEvent unit tests */ //#include "FdEvent.test.hh" //#include "FdEvent.test.ih" @@ -102,6 +102,7 @@ namespace { unlink(SOCK_PATH); int pid = fork(); if (pid == 0) { + signal(SIGCHLD, SIG_IGN); server(); _exit(0); } @@ -109,6 +110,7 @@ namespace { error("fork"); return 0; } + signal(SIGCHLD, SIG_DFL); sleep(1); // Wait for the server socket to be opened return pid; @@ -164,7 +166,7 @@ namespace { BOOST_AUTO_UNIT_TEST(fdDispatcher) { - senf::scheduler::FdManager::instance().timeout(1000); + senf::scheduler::detail::FdManager::instance().timeout(1000); int pid (start_server()); BOOST_REQUIRE( pid ); @@ -190,8 +192,8 @@ BOOST_AUTO_UNIT_TEST(fdDispatcher) senf::scheduler::FdEvent sockwrite ("testHandler", boost::bind(&callback, sock, _1), sock, senf::scheduler::FdEvent::EV_WRITE, false); event = 0; - SENF_CHECK_NO_THROW( senf::scheduler::FdManager::instance().processOnce() ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FdManager::instance().processOnce() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK_EQUAL( event, senf::scheduler::FdEvent::EV_READ ); BOOST_CHECK_EQUAL( size, 4 ); buffer[size] = 0; @@ -202,29 +204,29 @@ BOOST_AUTO_UNIT_TEST(fdDispatcher) SENF_CHECK_NO_THROW( sockwrite.enable() ); event = 0; sleep(1); - SENF_CHECK_NO_THROW( senf::scheduler::FdManager::instance().processOnce() ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FdManager::instance().processOnce() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK_EQUAL( event, senf::scheduler::FdEvent::EV_WRITE ); SENF_CHECK_NO_THROW( sockwrite.disable() ); event = 0; sleep(1); - SENF_CHECK_NO_THROW( senf::scheduler::FdManager::instance().processOnce() ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FdManager::instance().processOnce() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK_EQUAL( event, senf::scheduler::FdEvent::EV_HUP | senf::scheduler::FdEvent::EV_READ ); BOOST_CHECK_EQUAL( size, 2 ); buffer[size]=0; BOOST_CHECK_EQUAL( buffer, "OK" ); BOOST_CHECK_EQUAL( calls, 3 ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK_EQUAL( calls, 3 ); // Ensure, removing an already closed file-descriptor doesn't wreak havoc close(sock); } - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK_EQUAL( calls, 3 ); BOOST_CHECK (stop_server(pid)); @@ -254,9 +256,9 @@ BOOST_AUTO_UNIT_TEST(fileDispatcher) try { senf::scheduler::FdEvent fde ("testHandler", &handler, fd, senf::scheduler::FdEvent::EV_READ); - SENF_CHECK_NO_THROW( senf::scheduler::FdManager::instance().processOnce() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FdManager::instance().processOnce() ); SENF_CHECK_NO_THROW( senf::scheduler::detail::FileDispatcher::instance().prepareRun() ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK( called ); BOOST_CHECK_PREDICATE( is_close, (t)(senf::ClockService::now()) ); @@ -269,9 +271,9 @@ BOOST_AUTO_UNIT_TEST(fileDispatcher) called = false; t = senf::ClockService::now(); - SENF_CHECK_NO_THROW( senf::scheduler::FdManager::instance().processOnce() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FdManager::instance().processOnce() ); SENF_CHECK_NO_THROW( senf::scheduler::detail::FileDispatcher::instance().prepareRun() ); - SENF_CHECK_NO_THROW( senf::scheduler::FIFORunner::instance().run() ); + SENF_CHECK_NO_THROW( senf::scheduler::detail::FIFORunner::instance().run() ); BOOST_CHECK( ! called ); BOOST_CHECK_PREDICATE(