X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketHandle.test.cc;h=709fb9ff38c13e0088d9acd597bb6c415a8b25b3;hb=31243b46fbd06bc6301acca8fbd8153829c61b0a;hp=e377f0bc4dce28eced4c149cc7b01e735741dfcc;hpb=6684208965aac5a93db01bcd189bc5c501f04c2c;p=senf.git diff --git a/Socket/SocketHandle.test.cc b/Socket/SocketHandle.test.cc index e377f0b..709fb9f 100644 --- a/Socket/SocketHandle.test.cc +++ b/Socket/SocketHandle.test.cc @@ -45,7 +45,7 @@ namespace { MySocketHandle() : senf::SocketHandle( std::auto_ptr( - new senf::ProtocolSocketBody(false))) + new senf::ProtocolSocketBody(false, 0))) {} }; @@ -66,33 +66,38 @@ BOOST_AUTO_UNIT_TEST(socketHandle) >::policy OtherSocketPolicy; typedef senf::SocketHandle OtherSocketHandle; - MySocketHandle myh; - OtherSocketHandle osh (myh); - osh = myh; - - typedef senf::SocketHandle SomeSocketHandle; - SomeSocketHandle ssh = senf::static_socket_cast(osh); - - BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast(osh) ); - - typedef senf::SocketHandle< senf::MakeSocketPolicy< - OtherSocketPolicy, - senf::NoAddressingPolicy - >::policy> SomeOtherSocketHandle; - - BOOST_CHECK_THROW( senf::dynamic_socket_cast(osh), - std::bad_cast ); - BOOST_CHECK_THROW( senf::dynamic_socket_cast( - senf::FileHandle(FDHandle())), - std::bad_cast ); - - BOOST_CHECK_EQUAL( myh.dumpState(), - "file.handle: -1\n" - "file.refcount: 3\n" - "handle: senf::SocketHandle >\n" - "socket.protocol: senf::test::SomeProtocol\n" - "socket.protocol.policy: senf::SocketPolicy\n" - "socket.server: false\n" ); + { + MySocketHandle myh; + OtherSocketHandle osh (myh); + osh = myh; + + typedef senf::SocketHandle SomeSocketHandle; + SomeSocketHandle ssh = senf::static_socket_cast(osh); + + BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast(osh) ); + + typedef senf::SocketHandle< senf::MakeSocketPolicy< + OtherSocketPolicy, + senf::NoAddressingPolicy + >::policy> SomeOtherSocketHandle; + + BOOST_CHECK_THROW( senf::dynamic_socket_cast(osh), + std::bad_cast ); + BOOST_CHECK_THROW( senf::dynamic_socket_cast( + senf::FileHandle(FDHandle())), + std::bad_cast ); + + BOOST_CHECK_EQUAL( myh.dumpState(), + "file.handle: 0\n" + "file.refcount: 3\n" + "handle: senf::SocketHandle >\n" + "socket.protocol: senf::test::SomeProtocol\n" + "socket.protocol.policy: senf::SocketPolicy\n" + "socket.server: false\n" ); + } + + // Ensure, the destructor is called and calls the correct close() implementation + BOOST_CHECK_EQUAL( senf::test::SomeProtocol::closeCount(), 1u ); } ///////////////////////////////cc.e////////////////////////////////////////