From 6bc1a917b6c2210d5fc57e876b535e9cfbebb421 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Fri, 12 Feb 2016 17:58:14 -0700 Subject: [PATCH 1/3] THRIFT-3624 Fix lib/cpp/test/TServerSocketTest.cpp to use ephemeral ports. Instead of using a fixed port, use an ephemeral port to improve robustness and make way for parallelizability. --- lib/cpp/test/TServerSocketTest.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/cpp/test/TServerSocketTest.cpp b/lib/cpp/test/TServerSocketTest.cpp index ae87ba8b7c..3a2ba5ca67 100644 --- a/lib/cpp/test/TServerSocketTest.cpp +++ b/lib/cpp/test/TServerSocketTest.cpp @@ -20,7 +20,6 @@ #include #include #include -#include "TestPortFixture.h" #include "TTransportCheckThrow.h" #include @@ -29,19 +28,18 @@ using apache::thrift::transport::TSocket; using apache::thrift::transport::TTransport; using apache::thrift::transport::TTransportException; -BOOST_FIXTURE_TEST_SUITE(TServerSocketTest, TestPortFixture) - BOOST_AUTO_TEST_CASE(test_bind_to_address) { - TServerSocket sock1("localhost", m_serverPort); + TServerSocket sock1("localhost", 0); sock1.listen(); - TSocket clientSock("localhost", m_serverPort); + int port = sock1.getPort(); + TSocket clientSock("localhost", port); clientSock.open(); boost::shared_ptr accepted = sock1.accept(); accepted->close(); sock1.close(); std::cout << "An error message from getaddrinfo on the console is expected:" << std::endl; - TServerSocket sock2("257.258.259.260", m_serverPort); + TServerSocket sock2("257.258.259.260", 0); BOOST_CHECK_THROW(sock2.listen(), TTransportException); sock2.close(); } @@ -55,7 +53,7 @@ BOOST_AUTO_TEST_CASE(test_listen_valid_port) { } BOOST_AUTO_TEST_CASE(test_close_before_listen) { - TServerSocket sock1("localhost", m_serverPort); + TServerSocket sock1("localhost", 0); sock1.close(); } @@ -63,5 +61,3 @@ BOOST_AUTO_TEST_CASE(test_get_port) { TServerSocket sock1("localHost", 888); BOOST_CHECK_EQUAL(888, sock1.getPort()); } - -BOOST_AUTO_TEST_SUITE_END() From de90148cb732de8f899be12ab3feb706a7cd8afa Mon Sep 17 00:00:00 2001 From: John Sirois Date: Sat, 13 Feb 2016 12:07:27 -0700 Subject: [PATCH 2/3] Restore the enclosing test suite. --- lib/cpp/test/TServerSocketTest.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/cpp/test/TServerSocketTest.cpp b/lib/cpp/test/TServerSocketTest.cpp index 3a2ba5ca67..48b7c4b793 100644 --- a/lib/cpp/test/TServerSocketTest.cpp +++ b/lib/cpp/test/TServerSocketTest.cpp @@ -28,6 +28,8 @@ using apache::thrift::transport::TSocket; using apache::thrift::transport::TTransport; using apache::thrift::transport::TTransportException; +BOOST_AUTO_TEST_SUITE(TServerSocketTest) + BOOST_AUTO_TEST_CASE(test_bind_to_address) { TServerSocket sock1("localhost", 0); sock1.listen(); @@ -61,3 +63,5 @@ BOOST_AUTO_TEST_CASE(test_get_port) { TServerSocket sock1("localHost", 888); BOOST_CHECK_EQUAL(888, sock1.getPort()); } + +BOOST_AUTO_TEST_SUITE_END(); From bbe502371e7cfec902dcf290fc217f6aea9e5e48 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Sat, 13 Feb 2016 12:18:38 -0700 Subject: [PATCH 3/3] Kill un-needed semicolon finishing test suite macro line. --- lib/cpp/test/TServerSocketTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cpp/test/TServerSocketTest.cpp b/lib/cpp/test/TServerSocketTest.cpp index 48b7c4b793..1da5d36ecf 100644 --- a/lib/cpp/test/TServerSocketTest.cpp +++ b/lib/cpp/test/TServerSocketTest.cpp @@ -64,4 +64,4 @@ BOOST_AUTO_TEST_CASE(test_get_port) { BOOST_CHECK_EQUAL(888, sock1.getPort()); } -BOOST_AUTO_TEST_SUITE_END(); +BOOST_AUTO_TEST_SUITE_END()