X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FDaemon%2FDaemon.test.cc;h=be9939f3772d6e5fddd5528aa58aea7679cc8d97;hb=72cc548dfc3fa72d14d4d8c1a178f162165e933a;hp=838861c3601d9b115f265acf3fc7f60c41837240;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Utils/Daemon/Daemon.test.cc b/senf/Utils/Daemon/Daemon.test.cc index 838861c..be9939f 100644 --- a/senf/Utils/Daemon/Daemon.test.cc +++ b/senf/Utils/Daemon/Daemon.test.cc @@ -2,23 +2,28 @@ // // Copyright (C) 2007 // 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 Daemon unit tests */ @@ -42,7 +47,7 @@ #include #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace { @@ -56,20 +61,20 @@ namespace { class MyDaemon : public senf::Daemon { - void configure() { - std::cout << "Running configure()" << std::endl; + void configure() { + std::cout << "Running configure()" << std::endl; pidFile("invalid.pid"); consoleLog("invalid.log"); senf::Daemon::configure(); } - void init() { - std::cout << "Running init()" << std::endl; + void init() { + std::cout << "Running init()" << std::endl; std::cerr << "(stderr)" << std::endl; } void run() { - std::cout << "Running run()" << std::endl; + std::cout << "Running run()" << std::endl; delay(2000); } }; @@ -107,10 +112,10 @@ namespace { } signal(SIGCHLD, SIG_DFL); int status; - if (::waitpid(pid, &status, 0) < 0) + if (::waitpid(pid, &status, 0) < 0) throw senf::SystemException("::waitpid()"); if (WIFSIGNALED(status)) - std::cerr << "Terminated with signal " + std::cerr << "Terminated with signal " << senf::signalName(WTERMSIG(status)) << "(" << WTERMSIG(status) << ")\n"; else if (WIFEXITED(status)) std::cerr << "Exited normally with exit status " << WEXITSTATUS(status) << "\n"; @@ -119,10 +124,10 @@ namespace { } -BOOST_AUTO_UNIT_TEST(testDaemon) +SENF_AUTO_UNIT_TEST(testDaemon) { - char const * args[] = { "run", - "--console-log=testDaemon.log", + char const * args[] = { "run", + "--console-log=testDaemon.log", "--pid-file=testDaemon.pid" }; SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( run(sizeof(args)/sizeof(*args), args), 0 ) ); @@ -131,7 +136,7 @@ BOOST_AUTO_UNIT_TEST(testDaemon) BOOST_CHECK( ! boost::filesystem::exists("invalid.pid") ); BOOST_CHECK( boost::filesystem::exists("testDaemon.pid") ); BOOST_REQUIRE( boost::filesystem::exists("testDaemon.log") ); - + boost::filesystem::rename("testDaemon.log", "testDaemon.log.1"); { std::ifstream pidFile ("testDaemon.pid"); @@ -142,11 +147,11 @@ BOOST_AUTO_UNIT_TEST(testDaemon) ::kill(pid, SIGHUP); } - delay(2000); + delay(3000); BOOST_CHECK( ! boost::filesystem::exists("testDaemon.pid") ); BOOST_CHECK( boost::filesystem::exists("testDaemon.log") ); BOOST_CHECK( boost::filesystem::exists("testDaemon.log.1") ); - + std::ifstream log ("testDaemon.log.1"); std::stringstream data; data << log.rdbuf(); @@ -155,7 +160,7 @@ BOOST_AUTO_UNIT_TEST(testDaemon) SENF_CHECK_NO_THROW( boost::filesystem::remove("testDaemon.log.1") ); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_