Index: native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc |
diff --git a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc |
index 5dfe0046fc166424f76b5f33e2af73f37ba95f5a..6f65ef99ef5628a9f77f32b51b9678a59a422984 100644 |
--- a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc |
+++ b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc |
@@ -584,6 +584,20 @@ TEST_F(SocketTestUDP, Listen) { |
EXPECT_EQ(errno, ENOTSUP); |
} |
+TEST_F(SocketTestUDP, Sockopt_BUFSIZE) { |
+ int option = 1024*1024; |
+ socklen_t len = sizeof(option); |
+ |
+ ASSERT_EQ(0, Bind(sock1_, LOCAL_HOST, ANY_PORT)); |
+ |
+ // Modify the test to verify the change by calling getsockopt |
+ // once UDPInterface supports GetOption() call |
+ ASSERT_EQ(0, ki_setsockopt(sock1_, SOL_SOCKET, SO_RCVBUF, &option, len)) |
+ << "failed with: " << strerror(errno); |
+ ASSERT_EQ(0, ki_setsockopt(sock1_, SOL_SOCKET, SO_SNDBUF, &option, len)) |
+ << "failed with: " << strerror(errno); |
+} |
+ |
TEST_F(SocketTestTCP, Listen) { |
sockaddr_in addr; |
socklen_t addrlen = sizeof(addr); |
@@ -812,4 +826,35 @@ TEST_F(SocketTestTCP, SendBufferedDataAfterShutdown) { |
ASSERT_EQ(0, ki_close(new_sock)); |
} |
+TEST_F(SocketTestTCP, Sockopt_BUFSIZE) { |
+ int option = 1024*1024; |
+ socklen_t len = sizeof(option); |
+ sockaddr_in addr; |
+ socklen_t addrlen = sizeof(addr); |
+ |
+ int server_sock = sock1_; |
+ int client_sock = sock2_; |
+ |
+ // bind and listen |
+ ASSERT_EQ(0, Bind(server_sock, LOCAL_HOST, PORT1)); |
+ ASSERT_EQ(0, ki_listen(server_sock, 10)) |
+ << "listen failed with: " << strerror(errno); |
+ |
+ // connect to listening socket |
+ IP4ToSockAddr(LOCAL_HOST, PORT1, &addr); |
+ ASSERT_EQ(0, ki_connect(client_sock, (sockaddr*)&addr, addrlen)) |
+ << "Failed with " << errno << ": " << strerror(errno); |
+ |
+ addrlen = sizeof(addr); |
+ int new_sock = ki_accept(server_sock, (sockaddr*)&addr, &addrlen); |
+ ASSERT_NE(-1, new_sock); |
+ |
+ // Modify the test to verify the change by calling getsockopt |
+ // once TCPInterface supports GetOption() call |
+ ASSERT_EQ(0, ki_setsockopt(sock2_, SOL_SOCKET, SO_RCVBUF, &option, len)) |
+ << "failed with: " << strerror(errno); |
+ ASSERT_EQ(0, ki_setsockopt(sock2_, SOL_SOCKET, SO_SNDBUF, &option, len)) |
+ << "failed with: " << strerror(errno); |
+} |
+ |
#endif // PROVIDES_SOCKET_API |