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 e9391d0595746ef760a64fd8b19849b18c0bc284..fdf878f506c75491669b3891363d455400a9bb78 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 |
| @@ -216,7 +216,7 @@ TEST_F(SocketTestTCP, DISABLED_Connect) { |
| memset(inbuf, 0, sizeof(inbuf)); |
| int sock = socket(AF_INET, SOCK_STREAM, 0); |
| - EXPECT_NE(-1, sock); |
| + EXPECT_GT(sock, -1); |
| sockaddr_in addr; |
| socklen_t addrlen = sizeof(addr); |
| @@ -233,4 +233,32 @@ TEST_F(SocketTestTCP, DISABLED_Connect) { |
| EXPECT_EQ(0, memcmp(outbuf, inbuf, sizeof(outbuf))); |
| } |
| +TEST_F(SocketTest, Setsockopt) { |
| + int sock = socket(AF_INET, SOCK_STREAM, 0); |
| + EXPECT_GT(sock, -1); |
| + int socket_error = 99; |
| + socklen_t len = sizeof(socket_error); |
| + |
| + // Test for valid option (SO_ERROR) which should be 0 when a socket |
| + // is first created. |
| + ASSERT_EQ(0, getsockopt(sock, SOL_SOCKET, SO_ERROR, &socket_error, &len)); |
| + ASSERT_EQ(0, socket_error); |
| + ASSERT_EQ(sizeof(socket_error), len); |
| + |
| + // Test for an invalid option (-1) |
| + ASSERT_EQ(-1, getsockopt(sock, SOL_SOCKET, -1, &socket_error, &len)); |
| + ASSERT_EQ(ENOPROTOOPT, errno); |
| +} |
|
noelallen1
2013/09/30 22:56:16
Read an unbound socket, for a real Errno?
Sam Clegg
2013/10/01 00:15:49
I'm mimicking the linux behavior and strangely eno
|
| + |
| +TEST_F(SocketTest, Getsockopt) { |
| + int sock = socket(AF_INET, SOCK_STREAM, 0); |
| + EXPECT_GT(sock, -1); |
| + |
| + // It should not be possible to set SO_ERROR using setsockopt. |
| + int socket_error = 10; |
| + socklen_t len = sizeof(socket_error); |
| + ASSERT_EQ(-1, setsockopt(sock, SOL_SOCKET, SO_ERROR, &socket_error, len)); |
| + ASSERT_EQ(ENOPROTOOPT, errno); |
| +} |
| + |
| #endif // PROVIDES_SOCKET_API |