// 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"
unlink(SOCK_PATH);
int pid = fork();
if (pid == 0) {
+ signal(SIGCHLD, SIG_IGN);
server();
_exit(0);
}
error("fork");
return 0;
}
+ signal(SIGCHLD, SIG_DFL);
sleep(1); // Wait for the server socket to be opened
return pid;
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 );
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;
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));
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()) );
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(