X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketReader.test.cc;h=dcd410d957ea7f5b3521ce2d636adac2c0e56923;hb=81447258e6ecc9b5d9434fa5a7d382684179c7ab;hp=7738e6f09286b8766f30c553f20bc5ea9e5c09d1;hpb=81ffa1c459b96dd44472bcef37e1e373934ee138;p=senf.git diff --git a/PPI/SocketReader.test.cc b/PPI/SocketReader.test.cc index 7738e6f..dcd410d 100644 --- a/PPI/SocketReader.test.cc +++ b/PPI/SocketReader.test.cc @@ -27,7 +27,12 @@ //#include "SocketReader.test.ih" // Custom includes +#include +#include "../Socket/Protocols/INet/UDPSocketHandle.hh" +#include "../Scheduler/Scheduler.hh" #include "SocketReader.hh" +#include "DebugModules.hh" +#include "Setup.hh" #include #include @@ -35,8 +40,39 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// +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(socketReader) -{} +{ + senf::UDPv4ClientSocketHandle inputSocket; + inputSocket.bind(senf::INet4SocketAddress("localhost:44344")); + inputSocket.blocking(false); + module::ActiveSocketReader<> udpReader(inputSocket); + debug::PassiveSink sink; + ppi::connect(udpReader, sink); + + std::string data ("TEST"); + + senf::UDPv4ClientSocketHandle outputSocket; + outputSocket.writeto(senf::INet4SocketAddress("localhost:44344"),data); + senf::Scheduler::instance().timeout( + senf::ClockService::now() + senf::ClockService::milliseconds(100), &timeout); + senf::ppi::run(); + + BOOST_REQUIRE( ! sink.empty() ); + BOOST_CHECK_EQUAL( sink.front().data().size(), data.size() ); + BOOST_CHECK( std::equal( sink.front().data().begin(), sink.front().data().end(), + data.begin()) ); +} ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_