X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FScheduler%2FFdEvent.test.cc;h=2dfb18924faea2a8b1616225d6a899dc11257e90;hb=refs%2Fheads%2Fmaster;hp=9cf36c80a9888584851c6f0f8ae40d65c79941a3;hpb=61512a4b2d212696b96ed73009b36665c8c637ed;p=senf.git diff --git a/senf/Scheduler/FdEvent.test.cc b/senf/Scheduler/FdEvent.test.cc index 9cf36c8..2dfb189 100644 --- a/senf/Scheduler/FdEvent.test.cc +++ b/senf/Scheduler/FdEvent.test.cc @@ -1,24 +1,29 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // 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 -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Stefan Bund /** \file \brief FdEvent unit tests */ @@ -46,7 +51,7 @@ #include #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace { @@ -76,7 +81,7 @@ namespace { int conn = accept(sock,0,0); if (conn < 0) fail("accept"); - /////////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////////////////////// if (write(conn,"READ",4)<0) fail("write"); char buffer[1024]; @@ -91,7 +96,7 @@ namespace { } else if (write(conn,"FAIL",4)<0) fail("write"); - /////////////////////////////////////////////////////////////////////////// + //-///////////////////////////////////////////////////////////////////////////////////////// close(conn); close(sock); @@ -164,7 +169,7 @@ namespace { } -BOOST_AUTO_UNIT_TEST(fdDispatcher) +SENF_AUTO_UNIT_TEST(fdDispatcher) { senf::scheduler::detail::FdManager::instance().timeout(1000); @@ -185,7 +190,7 @@ BOOST_AUTO_UNIT_TEST(fdDispatcher) error("connect"); BOOST_FAIL("connect"); } - + { senf::scheduler::FdEvent sockread ("testHandler", boost::bind(&callback, sock, _1), sock, senf::scheduler::FdEvent::EV_READ); @@ -221,7 +226,7 @@ BOOST_AUTO_UNIT_TEST(fdDispatcher) BOOST_CHECK_EQUAL( calls, 3 ); 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); } @@ -246,7 +251,7 @@ namespace { } } -BOOST_AUTO_UNIT_TEST(fileDispatcher) +SENF_AUTO_UNIT_TEST(fileDispatcher) { char const * enabled (getenv("SENF_TIMING_CRITICAL_TESTS")); BOOST_WARN_MESSAGE(enabled, "Set SENF_TIMING_CRITICAL_TESTS to not skip timing critical tests"); @@ -254,15 +259,15 @@ BOOST_AUTO_UNIT_TEST(fileDispatcher) senf::scheduler::detail::FileDispatcher::instance().timeout(500); int fd (open("test.empty.file", O_RDWR|O_CREAT|O_TRUNC, 0600)); - + senf::ClockService::clock_type t (senf::ClockService::now()); try { - senf::scheduler::FdEvent fde ("testHandler", &handler, + senf::scheduler::FdEvent fde ("testHandler", &handler, fd, senf::scheduler::FdEvent::EV_READ); 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::detail::FIFORunner::instance().run() ); - + BOOST_CHECK( called ); if (enabled) BOOST_CHECK_PREDICATE( is_close, (t)(senf::ClockService::now()) ); @@ -281,14 +286,14 @@ BOOST_AUTO_UNIT_TEST(fileDispatcher) BOOST_CHECK( ! called ); if (enabled) - BOOST_CHECK_PREDICATE( + BOOST_CHECK_PREDICATE( is_close, (t+senf::ClockService::milliseconds(500))(senf::ClockService::now()) ); unlink("test.empty.file"); senf::scheduler::detail::FileDispatcher::instance().timeout(-1); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_