X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.test.cc;h=5714e55b1f6cf5694d4ee71551774171a5f3b570;hb=6f50bf49e282c0528f51faa0a245bbfa2b867399;hp=b30395174a29be4e26c604b40bd054d8c6c5e471;hpb=7a1872f6702d6206bf1d8364c4e894f98d1c64f0;p=senf.git diff --git a/Socket/ClientSocketHandle.test.cc b/Socket/ClientSocketHandle.test.cc index b303951..5714e55 100644 --- a/Socket/ClientSocketHandle.test.cc +++ b/Socket/ClientSocketHandle.test.cc @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -31,7 +31,7 @@ #include "ClientSocketHandle.hh" #include "AddressingPolicy.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ @@ -39,17 +39,17 @@ namespace { - namespace sl = senf; - class MySocketHandle - : public sl::ClientSocketHandle + : public senf::ClientSocketHandle { public: MySocketHandle() - : sl::ClientSocketHandle( - std::auto_ptr(new sl::test::SomeProtocol())) + : senf::ClientSocketHandle( + std::auto_ptr( + new senf::ProtocolSocketBody(false))) {} }; + } BOOST_AUTO_UNIT_TEST(clientSocketHandle) @@ -59,27 +59,27 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle) // conversion to other socket handles { - typedef sl::MakeSocketPolicy< - sl::test::SomeFramingPolicy, - sl::test::SomeReadPolicy, - sl::test::SomeWritePolicy + typedef senf::MakeSocketPolicy< + senf::test::SomeFramingPolicy, + senf::test::SomeReadPolicy, + senf::test::SomeWritePolicy >::policy OtherSocketPolicy; - typedef sl::SocketHandle OtherSocketHandle; + typedef senf::SocketHandle OtherSocketHandle; BOOST_CHECKPOINT("Copy-constructing socket handle"); OtherSocketHandle osh (myh); BOOST_CHECKPOINT("Assigning socket handle"); osh = myh; - typedef sl::ClientSocketHandle SomeSocketHandle; + typedef senf::ClientSocketHandle SomeSocketHandle; BOOST_CHECKPOINT("static_casting socket handle"); SomeSocketHandle ssh = - sl::static_socket_cast(osh); - BOOST_CHECK_NO_THROW( sl::dynamic_socket_cast(osh) ); - typedef sl::ClientSocketHandle(osh); + BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast(osh) ); + typedef senf::ClientSocketHandle::policy> SomeOtherSocketHandle; - BOOST_CHECK_THROW( sl::dynamic_socket_cast(osh), + BOOST_CHECK_THROW( senf::dynamic_socket_cast(osh), std::bad_cast ); } @@ -93,7 +93,7 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle) { char buf[11]; ::strcpy(buf,"0123456789"); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,buf+10), buf+9u ) ); + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,buf+10), buf+9 ) ); BOOST_CHECK_EQUAL( buf, "TEST-READ9" ); } @@ -108,25 +108,28 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle) char buf[11]; unsigned addr; ::strcpy(buf,"0123456789"); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom(buf,buf+10,addr), buf+9u ) ); + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom(buf,buf+10,addr), buf+9 ) ); BOOST_CHECK_EQUAL( buf, "TEST-READ9" ); } - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write("TEST-WRITE"), 10u ) ); - BOOST_CHECK_THROW( myh.write("TEST"),senf::SystemException ); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write("TEST-WRITE9",10), 10u ) ); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,"TEST-WRITE"), 10u ) ); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,"TEST-WRITE9",10), 10u ) ); + { + std::string s ("TEST-WRITE"); + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s)-s.begin(), 10 ) ); + s = "TEST"; + // This simulates a closed file in this test policy. However, we + // have changed the semantics so this will not work anymore. + // BOOST_CHECK_THROW( myh.write(s),senf::SystemException ); + char const * const s1 = "TEST-WRITE9"; + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s1,s1+10), s1+10u ) ); + s = "TEST-WRITE"; + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s)-s.begin(), 10 ) ); + BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s1,s1+10), s1+10 ) ); + } BOOST_CHECK_NO_THROW( myh.connect(0) ); BOOST_CHECK_NO_THROW( myh.bind(0) ); BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.peer(), 1u ) ); BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.local(), 2u ) ); - - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.rcvbuf(), 0u ) ); - BOOST_CHECK_NO_THROW( myh.rcvbuf(1) ); - BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.sndbuf(), 0u ) ); - BOOST_CHECK_NO_THROW( myh.sndbuf(1) ); } ///////////////////////////////cc.e//////////////////////////////////////// @@ -139,4 +142,6 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle) // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: