X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FDebugModules.test.cc;h=e04fb7012ebb0ec42eb7c62d0d9056ebb9cdc3a5;hb=fbeb2e926ac710522f16c254948d4d271fa0ca70;hp=fd95c32d36fe0efea84e9a0acd33e0c7a1eec85c;hpb=026887c8f93c5dc89fb68446ae014205de559451;p=senf.git diff --git a/PPI/DebugModules.test.cc b/PPI/DebugModules.test.cc index fd95c32..e04fb70 100644 --- a/PPI/DebugModules.test.cc +++ b/PPI/DebugModules.test.cc @@ -26,9 +26,17 @@ //#include "DebubgModules.test.hh" //#include "DebubgModules.test.ih" + // Custom includes #include -#include "Packets/Packets.hh" +#include + +#define _senf_LOG_STREAM logstream +namespace { + std::stringstream logstream; +} + +#include "../Packets/Packets.hh" #include "DebugModules.hh" #include "Setup.hh" @@ -38,41 +46,46 @@ #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 }; senf::Packet p (senf::DataPacket::create(data)); + BOOST_CHECK( ! sink.input.throttled() ); + source.submit(p); - + + BOOST_CHECK( ! sink.input.throttled() ); 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.back() == p ); + BOOST_CHECK( sink.front() == p ); sink.clear(); - BOOST_CHECK( ! sink.back() ); + BOOST_CHECK( ! sink.front() ); BOOST_CHECK( sink.empty() ); } { - 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 }; senf::Packet p (senf::DataPacket::create(data)); @@ -86,6 +99,53 @@ 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) +{ + 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_