Commit fe19cac6 authored by Marcin Siodelski's avatar Marcin Siodelski

[master] Prevent sporadic TCPAcceptor test failures by using reuse address.

This change was okayed on jabber.
parent 8c6f5879
......@@ -229,6 +229,12 @@ public:
return (endpoint_copy);
}
/// @brief Opens TCP acceptor and sets 'reuse address' option.
void acceptorOpen() {
acceptor_.open(endpoint_);
acceptor_.setOption(TestTCPAcceptor::ReuseAddress(true));
}
/// @brief Starts accepting TCP connections.
///
/// This method creates new Acceptor instance and calls accept() to start
......@@ -324,7 +330,7 @@ TEST_F(TCPAcceptorTest, asyncAccept) {
setMaxConnections(10);
// Initialize acceptor.
acceptor_.open(endpoint_);
acceptorOpen();
acceptor_.bind(endpoint_);
acceptor_.listen();
......@@ -387,15 +393,18 @@ TEST_F(TCPAcceptorTest, getNative) {
// Initially the descriptor should be invalid (negative).
ASSERT_LT(acceptor_.getNative(), 0);
// Now open the socket and make sure the returned descriptor is now valid.
ASSERT_NO_THROW(acceptor_.open(endpoint_));
ASSERT_NO_THROW(acceptorOpen());
EXPECT_GE(acceptor_.getNative(), 0);
}
// macOS 10.12.3 has a bug which causes the connections to not enter
// the TIME-WAIT state and they never get closed.
#if !defined (OS_OSX)
// Test that TCPAcceptor::close works properly.
TEST_F(TCPAcceptorTest, close) {
// Initialize acceptor.
acceptor_.open(endpoint_);
acceptorOpen();
acceptor_.bind(endpoint_);
acceptor_.listen();
......@@ -419,4 +428,6 @@ TEST_F(TCPAcceptorTest, close) {
EXPECT_EQ(1, connections_.size());
}
#endif
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment