| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <arpa/inet.h> | 5 #include <arpa/inet.h> |
| 6 #include <errno.h> | 6 #include <errno.h> |
| 7 #include <fcntl.h> | 7 #include <fcntl.h> |
| 8 #include <netinet/in.h> | 8 #include <netinet/in.h> |
| 9 #include <pthread.h> | 9 #include <pthread.h> |
| 10 #include <sys/types.h> | 10 #include <sys/types.h> |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 EXPECT_LT(ki_sendmsg(-1, &msg, 0), 0); | 214 EXPECT_LT(ki_sendmsg(-1, &msg, 0), 0); |
| 215 EXPECT_EQ(errno, EBADF); | 215 EXPECT_EQ(errno, EBADF); |
| 216 EXPECT_LT(ki_sendmsg(0, &msg, 0), 0); | 216 EXPECT_LT(ki_sendmsg(0, &msg, 0), 0); |
| 217 EXPECT_EQ(errno, ENOTSOCK); | 217 EXPECT_EQ(errno, ENOTSOCK); |
| 218 } | 218 } |
| 219 | 219 |
| 220 TEST_F(SocketTest, Setsockopt) { | 220 TEST_F(SocketTest, Setsockopt) { |
| 221 socklen_t len = 10; | 221 socklen_t len = 10; |
| 222 char optval[len]; | 222 char optval[len]; |
| 223 | 223 |
| 224 EXPECT_LT(ki_setsockopt(123, SOL_SOCKET, SO_ACCEPTCONN, NULL, len), 0); | 224 // Passing a bad address as optval should generate EFAULT |
| 225 EXPECT_EQ(-1, ki_setsockopt(123, SOL_SOCKET, SO_ACCEPTCONN, NULL, len)); |
| 225 EXPECT_EQ(errno, EFAULT); | 226 EXPECT_EQ(errno, EFAULT); |
| 226 EXPECT_LT(ki_setsockopt(-1, SOL_SOCKET, SO_ACCEPTCONN, optval, len), 0); | 227 |
| 228 // Passing a bad socket descriptor should generate EBADF |
| 229 EXPECT_EQ(-1, ki_setsockopt(-1, SOL_SOCKET, SO_ACCEPTCONN, optval, len)); |
| 227 EXPECT_EQ(errno, EBADF); | 230 EXPECT_EQ(errno, EBADF); |
| 228 EXPECT_LT(ki_setsockopt(0, SOL_SOCKET, SO_ACCEPTCONN, optval, len), 0); | 231 |
| 232 // Passing an FD that is valid but not a socket should generate ENOTSOCK |
| 233 EXPECT_EQ(-1, ki_setsockopt(0, SOL_SOCKET, SO_ACCEPTCONN, optval, len)); |
| 229 EXPECT_EQ(errno, ENOTSOCK); | 234 EXPECT_EQ(errno, ENOTSOCK); |
| 230 } | 235 } |
| 231 | 236 |
| 232 TEST_F(SocketTest, Shutdown) { | 237 TEST_F(SocketTest, Shutdown) { |
| 233 EXPECT_LT(ki_shutdown(-1, SHUT_RDWR), 0); | 238 EXPECT_LT(ki_shutdown(-1, SHUT_RDWR), 0); |
| 234 EXPECT_EQ(errno, EBADF); | 239 EXPECT_EQ(errno, EBADF); |
| 235 EXPECT_LT(ki_shutdown(0, SHUT_RDWR), 0); | 240 EXPECT_LT(ki_shutdown(0, SHUT_RDWR), 0); |
| 236 EXPECT_EQ(errno, ENOTSOCK); | 241 EXPECT_EQ(errno, ENOTSOCK); |
| 237 } | 242 } |
| 238 | 243 |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 TEST(SocketUtilityFunctions, Ntohl) { | 406 TEST(SocketUtilityFunctions, Ntohl) { |
| 402 uint8_t network_bytes[4] = { 0x44, 0x33, 0x22, 0x11 }; | 407 uint8_t network_bytes[4] = { 0x44, 0x33, 0x22, 0x11 }; |
| 403 uint32_t network_long; | 408 uint32_t network_long; |
| 404 memcpy(&network_long, network_bytes, 4); | 409 memcpy(&network_long, network_bytes, 4); |
| 405 uint32_t host_long = ntohl(network_long); | 410 uint32_t host_long = ntohl(network_long); |
| 406 EXPECT_EQ(host_long, 0x44332211); | 411 EXPECT_EQ(host_long, 0x44332211); |
| 407 } | 412 } |
| 408 | 413 |
| 409 #endif // !defined(__GLIBC__) | 414 #endif // !defined(__GLIBC__) |
| 410 #endif // PROVIDES_SOCKETPAIR_API | 415 #endif // PROVIDES_SOCKETPAIR_API |
| OLD | NEW |