X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketWriter.test.cc;h=09a24507fb64905340eea4165a3f535887a70bdd;hb=9035ae419b1dc9dc537e00d0f7ffc4b22e19422a;hp=a6f6055e8e5c886e906eccedd2b23832bca2abbd;hpb=81ffa1c459b96dd44472bcef37e1e373934ee138;p=senf.git diff --git a/PPI/SocketWriter.test.cc b/PPI/SocketWriter.test.cc index a6f6055..09a2450 100644 --- a/PPI/SocketWriter.test.cc +++ b/PPI/SocketWriter.test.cc @@ -27,7 +27,12 @@ //#include "SocketWriter.test.ih" // Custom includes +#include "../Socket/Protocols/INet/UDPSocketHandle.hh" +#include "../Socket/Protocols/INet/ConnectedUDPSocketHandle.hh" +#include "SocketReader.hh" +#include "DebugModules.hh" #include "SocketWriter.hh" +#include "Setup.hh" #include #include @@ -35,8 +40,58 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -BOOST_AUTO_UNIT_TEST(socketWriter) -{} +namespace ppi = senf::ppi; +namespace connector = ppi::connector; +namespace module = ppi::module; +namespace debug = module::debug; + +namespace { + void timeout() { + senf::Scheduler::instance().terminate(); + } +} + +BOOST_AUTO_UNIT_TEST(passiveSocketWriter) +{ + senf::ConnectedUDPv4ClientSocketHandle outputSocket ( + senf::INet4SocketAddress("localhost:44344")); + module::PassiveSocketWriter<> udpWriter(outputSocket); + debug::ActiveSource source; + ppi::connect(source, udpWriter); + + std::string data ("TEST"); + senf::Packet p (senf::DataPacket::create(data)); + + senf::UDPv4ClientSocketHandle inputSocket; + inputSocket.bind(senf::INet4SocketAddress("localhost:44344")); + senf::ppi::init(); + source.submit(p); + + std::string input (inputSocket.read()); + BOOST_CHECK_EQUAL( data, input ); +} + +BOOST_AUTO_UNIT_TEST(activeSocketWriter) +{ + senf::ConnectedUDPv4ClientSocketHandle outputSocket ( + senf::INet4SocketAddress("localhost:44344")); + module::ActiveSocketWriter<> udpWriter(outputSocket); + debug::PassiveSource source; + ppi::connect(source, udpWriter); + + std::string data ("TEST"); + senf::Packet p (senf::DataPacket::create(data)); + + senf::UDPv4ClientSocketHandle inputSocket; + inputSocket.bind(senf::INet4SocketAddress("localhost:44344")); + senf::Scheduler::instance().timeout( + senf::ClockService::now() + senf::ClockService::milliseconds(100), &timeout); + source.submit(p); + senf::ppi::run(); + + std::string input (inputSocket.read()); + BOOST_CHECK_EQUAL( data, input ); +} ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_