removed some useless spaces; not very important, I know :)
[senf.git] / PPI / DebugModules.test.cc
index 4df0c2a..854d7fd 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 //#include "DebubgModules.test.hh"
 //#include "DebubgModules.test.ih"
 
+
 // Custom includes
 #include <algorithm>
-#include "Packets/Packets.hh"
+#include <sstream>
+
+#define SENF_LOG_CONF (( (senf)(log)(Debug), (_), VERBOSE ))
+
+#include "../Packets/Packets.hh"
 #include "DebugModules.hh"
 #include "Setup.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -44,8 +49,8 @@ namespace ppi = senf::ppi;
 BOOST_AUTO_UNIT_TEST(debugModules)
 {
     {
-        debug::ActivePacketSource source;
-        debug::PassivePacketSink sink;
+        debug::ActiveSource source;
+        debug::PassiveSink sink;
 
         ppi::connect(source, sink);
         ppi::init();
@@ -61,7 +66,7 @@ BOOST_AUTO_UNIT_TEST(debugModules)
         BOOST_CHECK_EQUAL( sink.size(), 1u );
         BOOST_CHECK( ! sink.empty() );
         BOOST_CHECK_EQUAL( 
-            debug::PassivePacketSink::size_type(std::distance(sink.begin(),sink.end())),
+            debug::PassiveSink::size_type(std::distance(sink.begin(),sink.end())),
             sink.size() );
         BOOST_CHECK( *sink.begin() == p );
         BOOST_CHECK( sink.front() == p );
@@ -73,8 +78,8 @@ BOOST_AUTO_UNIT_TEST(debugModules)
     }
 
     {
-        debug::PassivePacketSource source;
-        debug::ActivePacketSink sink;
+        debug::PassiveSource source;
+        debug::ActiveSink sink;
 
         ppi::connect(source, sink);
         ppi::init();
@@ -91,6 +96,55 @@ BOOST_AUTO_UNIT_TEST(debugModules)
     }
 }
 
+BOOST_AUTO_UNIT_TEST(activeFeederSource)
+{
+    debug::ActiveFeederSource source;
+    debug::PassiveSink sink;
+
+    ppi::connect(source,sink);
+    source.submit(senf::DataPacket::create());
+    ppi::run();
+
+    BOOST_CHECK( source.empty() );
+    BOOST_CHECK_EQUAL( source.size(), 0u );
+    BOOST_CHECK_EQUAL( sink.size(), 1u );
+}
+
+BOOST_AUTO_UNIT_TEST(activeFeederSink)
+{
+    debug::PassiveSource source;
+    debug::ActiveFeederSink sink;
+
+    ppi::connect(source,sink);
+    source.submit(senf::DataPacket::create());
+    ppi::run();
+
+    BOOST_CHECK( ! sink.empty() );
+    BOOST_CHECK_EQUAL( sink.size(), 1u );
+    BOOST_CHECK_EQUAL( debug::ActiveFeederSink::size_type(std::distance(sink.begin(), sink.end())),
+                       sink.size() );
+    BOOST_CHECK( sink.front().data().empty() );
+    BOOST_CHECK( sink.pop_front().data().empty() );
+    BOOST_CHECK( sink.empty() );
+    BOOST_CHECK( source.empty() );
+}
+
+BOOST_AUTO_UNIT_TEST(logSink)
+{
+    senf::log::StringTarget logTarget;
+    logTarget.route<senf::log::Debug,senf::log::VERBOSE>();
+
+    debug::ActiveFeederSource source;
+    debug::LogSink<> sink;
+
+    ppi::connect(source,sink);
+    senf::PacketData::byte data[] = { 0x13u, 0x24u, 0x35u };
+    source.submit( senf::DataPacket::create(data) );
+    senf::ppi::run();
+    
+    BOOST_CHECK( ! logTarget.str().empty() );
+}
+
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_