X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FScheduler.test.cc;h=0501762eeb925e45523907497db8069e76c292ee;hb=40fa3e3f1e0f639c68bd15bf469e35045f94abee;hp=6845277b50e312c6ecfd5d1eeec78bc61be19620;hpb=c5ab87643518405aa5171ed4602f7234873a4900;p=senf.git diff --git a/Scheduler/Scheduler.test.cc b/Scheduler/Scheduler.test.cc index 6845277..0501762 100644 --- a/Scheduler/Scheduler.test.cc +++ b/Scheduler/Scheduler.test.cc @@ -1,9 +1,10 @@ + // $Id$ // -// Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Copyright (C) 2006 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -38,18 +39,18 @@ #include "Scheduler.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -using namespace satcom::lib; +using namespace senf; namespace { - + char const * SOCK_PATH = "/tmp/sched_test.sock"; - + void error(char const * fn, char const * proc="") { std::cerr << "\n" << proc << fn << ": " << strerror(errno) << std::endl; @@ -107,7 +108,7 @@ namespace { error("fork"); return 0; } - + sleep(1); // Wait for the server socket to be opened return pid; } @@ -140,10 +141,10 @@ namespace { int size; int event; - void callback(int fd, Scheduler::EventId ev) + void callback(int fd, int ev) { event = ev; - switch (event) { + switch (event & Scheduler::EV_ALL) { case Scheduler::EV_READ: size = recv(fd,buffer,1024,0); break; @@ -155,20 +156,17 @@ namespace { size = write(fd,buffer,size); Scheduler::instance().terminate(); break; - case Scheduler::EV_HUP: - case Scheduler::EV_ERR: - case Scheduler::EV_NONE: - case Scheduler::EV_ALL: - ; } Scheduler::instance().terminate(); } - void timeout() + bool timeoutCalled = false; + void timeout() { - Scheduler::instance().terminate(); + timeoutCalled = true; + Scheduler::instance().terminate(); } - + struct HandleWrapper { HandleWrapper(int fd,std::string const & tag) : fd_(fd), tag_(tag) {} @@ -181,21 +179,43 @@ namespace { return handle.fd_; } - void handleCallback(HandleWrapper const & handle, Scheduler::EventId event) + void handleCallback(HandleWrapper const & handle, int event) { if (handle.tag_ != "TheTag") return; callback(handle.fd_,event); } - bool is_close(MicroTime a, MicroTime b) + bool is_close(ClockService::clock_type a, ClockService::clock_type b) { - return (a