Scheduler: Implement PollTimerSource
[senf.git] / Scheduler / Scheduler.test.cc
index e270b06..8d6a53f 100644 (file)
@@ -1,4 +1,3 @@
-
 // $Id$
 //
 // Copyright (C) 2006
@@ -102,6 +101,7 @@ namespace {
         unlink(SOCK_PATH);
         int pid = fork();
         if (pid == 0) {
+            signal(SIGCHLD, SIG_IGN);
             server();
             _exit(0);
         }
@@ -109,6 +109,7 @@ namespace {
             error("fork");
             return 0;
         }
+        signal(SIGCHLD, SIG_DFL);
 
         sleep(1); // Wait for the server socket to be opened
         return pid;
@@ -212,6 +213,12 @@ namespace {
         senf::scheduler::terminate();
     }
 
+    unsigned eventCount (0);
+
+    void eventeventhandler()
+    {
+        ++ eventCount;
+    }
 }
 
 BOOST_AUTO_UNIT_TEST(testScheduler)
@@ -236,6 +243,9 @@ BOOST_AUTO_UNIT_TEST(testScheduler)
 
     ///////////////////////////////////////////////////////////////////////////
 
+    senf::scheduler::EventHook evev ("eventCounter", eventeventhandler, true,
+                                      senf::scheduler::EventHook::PRE);
+
     {
         senf::scheduler::FdEvent fde1 ("testFdEvent", boost::bind(&callback, sock, _1),
                                       sock, senf::scheduler::FdEvent::EV_READ);
@@ -307,6 +317,8 @@ BOOST_AUTO_UNIT_TEST(testScheduler)
         BOOST_CHECK_NO_THROW( senf::scheduler::process() ); 
     } 
 
+    BOOST_CHECK( eventCount >= 8u );
+
     ///////////////////////////////////////////////////////////////////////////
 
     close(sock);