]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1651] tests for Session::getSocketDesc() implemented.
authorTomek Mrugalski <tomasz@isc.org>
Thu, 31 May 2012 15:24:46 +0000 (17:24 +0200)
committerTomek Mrugalski <tomasz@isc.org>
Thu, 31 May 2012 15:24:46 +0000 (17:24 +0200)
src/lib/cc/session.cc
src/lib/cc/tests/session_unittests.cc

index 073d4f0a3ce0cb082aadd8ccac0c11514a0f3ec1..4455b68e30fdf5d7d0bd173a30879e2494be6737 100644 (file)
@@ -259,6 +259,9 @@ int
 SessionImpl::getSocketDesc() {
     /// @todo boost 1.42 uses native() method, but it is deprecated
     /// in 1.49 and native_handle() is recommended instead
+    if (!socket_.is_open()) {
+        isc_throw(InvalidOperation, "Can't return socket desciptor: no socket opened.");
+    }
     return socket_.native();
 }
 
index 5f6e59502587bfd305644c95f9c82ad4e3aa9eeb..b0cf252c1534021f3ed4c0bb7d1aad9d0f9456b2 100644 (file)
@@ -34,6 +34,9 @@ TEST(AsioSession, establish) {
     asio::io_service io_service_;
     Session sess(io_service_);
 
+    // can't return socket desciptor before session is established
+    EXPECT_THROW(sess.getSocketDesc(), isc::InvalidOperation);
+
     EXPECT_THROW(
         sess.establish("/aaaaaaaaaa/aaaaaaaaaa/aaaaaaaaaa/aaaaaaaaaa/"
                        "/aaaaaaaaaa/aaaaaaaaaa/aaaaaaaaaa/aaaaaaaaaa/"
@@ -235,4 +238,14 @@ TEST_F(SessionTest, run_with_handler_timeout) {
     ASSERT_THROW(my_io_service.run(), SessionTimeout);
 }
 
+TEST_F(SessionTest, get_socket_descr) {
+    tds->setSendLname();
+    sess.establish(BIND10_TEST_SOCKET_FILE);
 
+    int socket = 0;
+    // session is established, so getSocketDesc() should work
+    EXPECT_NO_THROW(socket = sess.getSocketDesc());
+
+    // expect actual socket handle to be returned, not 0
+    EXPECT_TRUE(0 < socket);
+}