Chromium Code Reviews| 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 fe22ae18e03452aabacf4dee31dd011ebb16d8b9..31ec723359367edd080237d44bce323db07c8bba 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 |
| @@ -174,8 +174,47 @@ TEST_F(SocketTestUDP, SendRcv) { |
| EXPECT_EQ(0, memcmp(outbuf, inbuf, sizeof(outbuf))); |
| } |
| -#if 0 |
| +const size_t queue_size = 65536 * 8; |
| +TEST_F(SocketTestUDP, FullFifo) { |
| + char outbuf[16 * 1024]; |
| + |
| + EXPECT_EQ(Bind(sock1, LOCAL_HOST, PORT1), ENONE); |
| + EXPECT_EQ(Bind(sock2, LOCAL_HOST, PORT2), ENONE); |
| + |
| + sockaddr_in addr; |
| + socklen_t addrlen = sizeof(addr); |
| + IP4ToSockAddr(LOCAL_HOST, PORT2, &addr); |
| + |
| + size_t total = 0; |
| + while (total < queue_size * 8) { |
| + int len = sendto(sock1, outbuf, sizeof(outbuf), MSG_DONTWAIT, |
| + (sockaddr *) &addr, addrlen); |
| + |
| + if (len <= 0) { |
| + EXPECT_EQ(-1, len); |
| + EXPECT_EQ(errno, EWOULDBLOCK); |
| + break; |
| + } |
| + |
| + if (len >= 0) { |
| + EXPECT_EQ(sizeof(outbuf), len); |
| + total += len; |
| + } |
| + |
| + } |
| + EXPECT_GT(total, queue_size -1); |
| + EXPECT_LT(total, queue_size * 8); |
| +} |
| + |
| +// TODO(noelallen) BUG=294412 |
| +// Re-enable testing on bots when server sockets are available. |
| TEST_F(SocketTestTCP, Connect) { |
|
binji
2013/09/19 22:40:25
DISABLE_Connect?
noelallen1
2013/09/20 00:51:27
Done.
|
| + char outbuf[256]; |
| + char inbuf[512]; |
| + |
| + memset(outbuf, 1, sizeof(outbuf)); |
| + memset(inbuf, 0, sizeof(inbuf)); |
| + |
| int sock = socket(AF_INET, SOCK_STREAM, 0); |
| EXPECT_NE(-1, sock); |
| @@ -184,8 +223,14 @@ TEST_F(SocketTestTCP, Connect) { |
| IP4ToSockAddr(LOCAL_HOST, PORT1, &addr); |
| int err = connect(sock, (sockaddr*) &addr, addrlen); |
| + |
| EXPECT_EQ(ENONE, err) << "Failed with errno: " << errno << "\n"; |
| + |
| + EXPECT_EQ(sizeof(outbuf), write(sock, outbuf, sizeof(outbuf))); |
| + EXPECT_EQ(sizeof(outbuf), read(sock, inbuf, sizeof(inbuf))); |
| + |
| + // Now they should be the same |
| + EXPECT_EQ(0, memcmp(outbuf, inbuf, sizeof(outbuf))); |
| } |
| -#endif |
| -#endif // PROVIDES_SOCKETPAIR_API |
| +#endif // PROVIDES_SOCKET_API |