From bed69b9bcdae37d6e4ed64194c37e388dadfbcc7 Mon Sep 17 00:00:00 2001 From: Myles Watson Date: Thu, 8 Dec 2016 14:34:20 -0800 Subject: [PATCH] test_vendor: Add more unit tests for async_manager Test: run the unit tests out/host/linux-x86/nativetest/test-vendor_test_host/test-vendor_test_host \ --gtest_filter=AsyncManagerSocketTest.* Change-Id: I8c5e05c5506a067a6148d54dc23bbb931ad612e7 --- .../test_vendor_lib/test/async_manager_unittest.cc | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/vendor_libs/test_vendor_lib/test/async_manager_unittest.cc b/vendor_libs/test_vendor_lib/test/async_manager_unittest.cc index 90972d00e..96d5d4d43 100644 --- a/vendor_libs/test_vendor_lib/test/async_manager_unittest.cc +++ b/vendor_libs/test_vendor_lib/test/async_manager_unittest.cc @@ -47,6 +47,9 @@ class AsyncManagerSocketTest : public ::testing::Test { serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; serv_addr.sin_port = htons(kPort); + int reuse_flag = 1; + EXPECT_FALSE(setsockopt(socket_fd_, SOL_SOCKET, SO_REUSEADDR, &reuse_flag, + sizeof(reuse_flag)) < 0); EXPECT_FALSE(bind(socket_fd_, (sockaddr*)&serv_addr, sizeof(serv_addr)) < 0); @@ -145,4 +148,28 @@ TEST_F(AsyncManagerSocketTest, TestOneConnection) { close(socket_cli_fd); } +TEST_F(AsyncManagerSocketTest, TestRepeatedConnections) { + static const int num_connections = 300; + for (int i = 0; i < num_connections; i++) { + int socket_cli_fd = ConnectClient(); + WriteFromClient(socket_cli_fd); + AwaitServerResponse(socket_cli_fd); + close(socket_cli_fd); + } +} + +TEST_F(AsyncManagerSocketTest, TestMultipleConnections) { + static const int num_connections = 300; + int socket_cli_fd[num_connections]; + for (int i = 0; i < num_connections; i++) { + socket_cli_fd[i] = ConnectClient(); + EXPECT_TRUE(socket_cli_fd[i] > 0); + WriteFromClient(socket_cli_fd[i]); + } + for (int i = 0; i < num_connections; i++) { + AwaitServerResponse(socket_cli_fd[i]); + close(socket_cli_fd[i]); + } +} + } // namespace test_vendor_lib -- 2.11.0