Port SENF to compile against boost-1.35
[senf.git] / Socket / Protocols / INet / TCPSocketHandle.test.cc
index 8896f71..70d599e 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Stefan Bund <g0dil@berlios.de>
 //
 // 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
@@ -61,9 +61,11 @@ namespace {
         server_pid = ::fork();
         if (server_pid < 0) BOOST_FAIL("fork()");
         if (server_pid == 0) {
+            signal(SIGCHLD, SIG_IGN);
             (*fn)();
             _exit(0);
         }
+        signal(SIGCHLD, SIG_DFL);
         ::sleep(1);
     }
 
@@ -159,8 +161,6 @@ BOOST_AUTO_UNIT_TEST(tcpv4ClientSocketHandle)
 
         BOOST_CHECK_THROW( sock.connect(senf::INet4SocketAddress("127.0.0.1:12345")), 
                            senf::SystemException );
-        BOOST_CHECK_THROW( sock.protocol().connect(senf::INet4SocketAddress("127.0.0.1:12345")),
-                           senf::SystemException );
     }
 
     try {
@@ -172,14 +172,14 @@ BOOST_AUTO_UNIT_TEST(tcpv4ClientSocketHandle)
         BOOST_CHECK( sock.peer() == senf::INet4SocketAddress("127.0.0.1:12345") );
         BOOST_CHECK( sock.local() == senf::INet4SocketAddress("127.0.0.1:23456") );
         BOOST_CHECK( sock.blocking() );
-        BOOST_CHECK_NO_THROW( sock.rcvbuf(2048) );
-        BOOST_CHECK_EQUAL( sock.rcvbuf(), 2048u );
-        BOOST_CHECK_NO_THROW( sock.sndbuf(2048) );
-        BOOST_CHECK_EQUAL( sock.sndbuf(), 2048u );
-        BOOST_CHECK_NO_THROW( sock.write("TEST-WRITE") );
-        BOOST_CHECK_EQUAL( sock.read(), "TEST-WRITE" );
+        BOOST_CHECK_NO_THROW( sock.protocol().rcvbuf(2048) );
+        BOOST_CHECK_EQUAL( sock.protocol().rcvbuf(), 2048u );
+        BOOST_CHECK_NO_THROW( sock.protocol().sndbuf(2048) );
+        BOOST_CHECK_EQUAL( sock.protocol().sndbuf(), 2048u );
+        BOOST_CHECK_NO_THROW( sock.write(std::string("TEST-WRITE")) );
+        BOOST_CHECK_EQUAL( sock.read(), std::string("TEST-WRITE") );
         BOOST_CHECK( !sock.eof() );
-        sock.write("QUIT");
+        sock.write(std::string("QUIT"));
         sleep(1);
         stop();
         sleep(1);
@@ -243,16 +243,16 @@ BOOST_AUTO_UNIT_TEST(tcpv6ClientSocketHandle)
         BOOST_CHECK( sock.peer() == senf::INet6SocketAddress("[::1]:12345") );
         BOOST_CHECK( sock.local() == senf::INet6SocketAddress("[::1]:23456") );
         BOOST_CHECK( sock.blocking() );
-        BOOST_CHECK_NO_THROW( sock.rcvbuf(2048) );
-        BOOST_CHECK_EQUAL( sock.rcvbuf(), 2048u );
-        BOOST_CHECK_NO_THROW( sock.sndbuf(2048) );
-        BOOST_CHECK_EQUAL( sock.sndbuf(), 2048u );
-        BOOST_CHECK_NO_THROW( sock.write("TEST-WRITE") );
-        BOOST_CHECK_EQUAL( sock.read(), "TEST-WRITE" );
+        BOOST_CHECK_NO_THROW( sock.protocol().rcvbuf(2048) );
+        BOOST_CHECK_EQUAL( sock.protocol().rcvbuf(), 2048u );
+        BOOST_CHECK_NO_THROW( sock.protocol().sndbuf(2048) );
+        BOOST_CHECK_EQUAL( sock.protocol().sndbuf(), 2048u );
+        BOOST_CHECK_NO_THROW( sock.write(std::string("TEST-WRITE")) );
+        BOOST_CHECK_EQUAL( sock.read(), std::string("TEST-WRITE") );
         // this fails with ENOFILE ... why ????
         // BOOST_CHECK_NO_THROW( sock.protocol().timestamp() );
         BOOST_CHECK( !sock.eof() );
-        sock.write("QUIT");
+        sock.write(std::string("QUIT"));
         sleep(1);
         stop();
         sleep(1);
@@ -349,7 +349,7 @@ BOOST_AUTO_UNIT_TEST(tcpv4ServerSocketHandle)
 
         BOOST_CHECKPOINT("Accepting connection");
         senf::TCPv4ClientSocketHandle client = server.accept();
-        BOOST_CHECK_NO_THROW(client.write("QUIT"));
+        BOOST_CHECK_NO_THROW(client.write(std::string("QUIT")));
 
         BOOST_CHECKPOINT("Stopping client");
         sleep(1);
@@ -375,7 +375,7 @@ BOOST_AUTO_UNIT_TEST(tcpv6ServerSocketHandle)
 
         BOOST_CHECKPOINT("Accepting connection");
         senf::TCPv6ClientSocketHandle client = server.accept();
-        BOOST_CHECK_NO_THROW(client.write("QUIT"));
+        BOOST_CHECK_NO_THROW(client.write(std::string("QUIT")));
 
         BOOST_CHECKPOINT("Stopping client");
         sleep(1);