moved statistics classes from NetEmu to SENF
[senf.git] / Scheduler / FdEvent.test.cc
index 39c0acf..865c45a 100644 (file)
@@ -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(