Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a026ec5a authored by Myles Watson's avatar Myles Watson
Browse files

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
parent 56f33628
Loading
Loading
Loading
Loading
+27 −0
Original line number Original line Diff line number Diff line
@@ -47,6 +47,9 @@ class AsyncManagerSocketTest : public ::testing::Test {
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_port = htons(kPort);
    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)) <
    EXPECT_FALSE(bind(socket_fd_, (sockaddr*)&serv_addr, sizeof(serv_addr)) <
                 0);
                 0);


@@ -145,4 +148,28 @@ TEST_F(AsyncManagerSocketTest, TestOneConnection) {
  close(socket_cli_fd);
  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
}  // namespace test_vendor_lib