// $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_
///////////////////////////////cc.p////////////////////////////////////////
+namespace debug = senf::ppi::module::debug;
+namespace ppi = senf::ppi;
+
BOOST_AUTO_UNIT_TEST(debugModules)
{
- namespace debug = senf::ppi::module::debug;
- namespace ppi = senf::ppi;
-
{
- debug::ActivePacketSource source;
- debug::PassivePacketSink sink;
+ debug::ActiveSource source;
+ debug::PassiveSink sink;
ppi::connect(source, sink);
ppi::init();
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 );
}
{
- debug::PassivePacketSource source;
- debug::ActivePacketSink sink;
+ debug::PassiveSource source;
+ debug::ActiveSink sink;
ppi::connect(source, sink);
ppi::init();
}
}
+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_