PPI: Checkin of first compiling (yet not working) version
[senf.git] / Socket / ClientSocketHandle.test.cc
index e82c57d..37494d7 100644 (file)
@@ -1,6 +1,6 @@
 // $Id$
 //
-// Copyright (C) 2006 
+// Copyright (C) 2006
 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
 //     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
@@ -39,7 +39,7 @@
 
 namespace {
 
-    namespace sl = satcom::lib;
+    namespace sl = senf;
 
     class MySocketHandle
         : public sl::ClientSocketHandle<sl::test::SomeProtocol::Policy>
@@ -65,14 +65,14 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle)
             sl::test::SomeWritePolicy
             >::policy OtherSocketPolicy;
         typedef sl::SocketHandle<OtherSocketPolicy> OtherSocketHandle;
-    
+
         BOOST_CHECKPOINT("Copy-constructing socket handle");
         OtherSocketHandle osh (myh);
         BOOST_CHECKPOINT("Assigning socket handle");
         osh = myh;
         typedef sl::ClientSocketHandle<sl::test::SomeProtocol::Policy> SomeSocketHandle;
         BOOST_CHECKPOINT("static_casting socket handle");
-        SomeSocketHandle ssh = 
+        SomeSocketHandle ssh =
             sl::static_socket_cast<SomeSocketHandle>(osh);
         BOOST_CHECK_NO_THROW( sl::dynamic_socket_cast<SomeSocketHandle>(osh) );
         typedef sl::ClientSocketHandle<sl::MakeSocketPolicy<
@@ -87,13 +87,13 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle)
     BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(), "TEST-READ" ) );
     {
         std::string buf("FOO-BAR");
-        BOOST_CHECK_NO_THROW( myh.read(buf) );
+        BOOST_CHECK_NO_THROW( myh.read(buf,0) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ" );
     }
     {
         char buf[11];
         ::strcpy(buf,"0123456789");
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,10), 9u ) );
+        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,buf+10), buf+9 ) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ9" );
     }
 
@@ -101,22 +101,30 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle)
     {
         std::string buf("FOO-BAR");
         unsigned addr;
-        BOOST_CHECK_NO_THROW( myh.readfrom(buf,addr) );
+        BOOST_CHECK_NO_THROW( myh.readfrom(buf,addr,0) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ" );
     }
     {
         char buf[11];
         unsigned addr;
         ::strcpy(buf,"0123456789");
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom(buf,10,addr), 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"),satcom::lib::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) );
@@ -135,5 +143,10 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle)
 \f
 // Local Variables:
 // mode: c++
-// c-file-style: "satcom"
+// fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: