//#include "DebubgModules.test.hh"
//#include "DebubgModules.test.ih"
+
// Custom includes
#include <algorithm>
-#include "Packets/Packets.hh"
+#include <sstream>
+
+#define _senf_LOG_STREAM logstream
+namespace {
+ std::stringstream logstream;
+}
+
+#include "../Packets/Packets.hh"
#include "DebugModules.hh"
#include "Setup.hh"
#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.output, sink.input);
+ ppi::connect(source, sink);
ppi::init();
senf::PacketData::byte data[] = { 0x13u, 0x24u, 0x35u };
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.output, sink.input);
+ ppi::connect(source, sink);
ppi::init();
senf::PacketData::byte data[] = { 0x13u, 0x24u, 0x35u };
}
}
+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)
+{
+ 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_EQUAL( logstream.str(),
+ " 0000 13 24 35 .$5\n\n" );
+}
+
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_