| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/udp/udp_client_socket.h" | 5 #include "net/udp/udp_client_socket.h" |
| 6 #include "net/udp/udp_server_socket.h" | 6 #include "net/udp/udp_server_socket.h" |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 return; | 124 return; |
| 125 *address = IPEndPoint(ip_number, port); | 125 *address = IPEndPoint(ip_number, port); |
| 126 } | 126 } |
| 127 | 127 |
| 128 TEST_F(UDPSocketTest, Connect) { | 128 TEST_F(UDPSocketTest, Connect) { |
| 129 const int kPort = 9999; | 129 const int kPort = 9999; |
| 130 std::string simple_message("hello world!"); | 130 std::string simple_message("hello world!"); |
| 131 | 131 |
| 132 // Setup the server to listen. | 132 // Setup the server to listen. |
| 133 IPEndPoint bind_address; | 133 IPEndPoint bind_address; |
| 134 CreateUDPAddress("0.0.0.0", kPort, &bind_address); | 134 CreateUDPAddress("127.0.0.1", kPort, &bind_address); |
| 135 CapturingNetLog server_log; | 135 CapturingNetLog server_log; |
| 136 scoped_ptr<UDPServerSocket> server( | 136 scoped_ptr<UDPServerSocket> server( |
| 137 new UDPServerSocket(&server_log, NetLog::Source())); | 137 new UDPServerSocket(&server_log, NetLog::Source())); |
| 138 server->AllowAddressReuse(); |
| 138 int rv = server->Listen(bind_address); | 139 int rv = server->Listen(bind_address); |
| 139 ASSERT_EQ(OK, rv); | 140 ASSERT_EQ(OK, rv); |
| 140 | 141 |
| 141 // Setup the client. | 142 // Setup the client. |
| 142 IPEndPoint server_address; | 143 IPEndPoint server_address; |
| 143 CreateUDPAddress("127.0.0.1", kPort, &server_address); | 144 CreateUDPAddress("127.0.0.1", kPort, &server_address); |
| 144 CapturingNetLog client_log; | 145 CapturingNetLog client_log; |
| 145 scoped_ptr<UDPClientSocket> client( | 146 scoped_ptr<UDPClientSocket> client( |
| 146 new UDPClientSocket(DatagramSocket::DEFAULT_BIND, | 147 new UDPClientSocket(DatagramSocket::DEFAULT_BIND, |
| 147 RandIntCallback(), | 148 RandIntCallback(), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 EXPECT_TRUE(LogContainsEndEvent( | 195 EXPECT_TRUE(LogContainsEndEvent( |
| 195 client_entries, 2, NetLog::TYPE_UDP_CONNECT)); | 196 client_entries, 2, NetLog::TYPE_UDP_CONNECT)); |
| 196 EXPECT_TRUE(LogContainsEvent( | 197 EXPECT_TRUE(LogContainsEvent( |
| 197 client_entries, 3, NetLog::TYPE_UDP_BYTES_SENT, NetLog::PHASE_NONE)); | 198 client_entries, 3, NetLog::TYPE_UDP_BYTES_SENT, NetLog::PHASE_NONE)); |
| 198 EXPECT_TRUE(LogContainsEvent( | 199 EXPECT_TRUE(LogContainsEvent( |
| 199 client_entries, 4, NetLog::TYPE_UDP_BYTES_RECEIVED, NetLog::PHASE_NONE)); | 200 client_entries, 4, NetLog::TYPE_UDP_BYTES_RECEIVED, NetLog::PHASE_NONE)); |
| 200 EXPECT_TRUE(LogContainsEndEvent( | 201 EXPECT_TRUE(LogContainsEndEvent( |
| 201 client_entries, 5, NetLog::TYPE_SOCKET_ALIVE)); | 202 client_entries, 5, NetLog::TYPE_SOCKET_ALIVE)); |
| 202 } | 203 } |
| 203 | 204 |
| 205 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires |
| 206 // root permissions on OSX 10.7+. |
| 207 #if defined(OS_MACOSX) |
| 208 TEST_F(UDPSocketTest, DISABLED_Broadcast) { |
| 209 #else |
| 204 TEST_F(UDPSocketTest, Broadcast) { | 210 TEST_F(UDPSocketTest, Broadcast) { |
| 211 #endif |
| 205 const int kPort = 9999; | 212 const int kPort = 9999; |
| 206 std::string first_message("first message"), second_message("second message"); | 213 std::string first_message("first message"), second_message("second message"); |
| 207 | 214 |
| 208 IPEndPoint broadcast_address; | 215 IPEndPoint broadcast_address; |
| 209 CreateUDPAddress("255.255.255.255", kPort, &broadcast_address); | 216 CreateUDPAddress("255.255.255.255", kPort, &broadcast_address); |
| 210 IPEndPoint listen_address; | 217 IPEndPoint listen_address; |
| 211 CreateUDPAddress("0.0.0.0", kPort, &listen_address); | 218 CreateUDPAddress("0.0.0.0", kPort, &listen_address); |
| 212 | 219 |
| 213 CapturingNetLog server1_log, server2_log; | 220 CapturingNetLog server1_log, server2_log; |
| 214 scoped_ptr<UDPServerSocket> server1( | 221 scoped_ptr<UDPServerSocket> server1( |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 // not bind the client's reads to only be from that endpoint, and that we need | 335 // not bind the client's reads to only be from that endpoint, and that we need |
| 329 // to always use recvfrom() to disambiguate. | 336 // to always use recvfrom() to disambiguate. |
| 330 TEST_F(UDPSocketTest, VerifyConnectBindsAddr) { | 337 TEST_F(UDPSocketTest, VerifyConnectBindsAddr) { |
| 331 const int kPort1 = 9999; | 338 const int kPort1 = 9999; |
| 332 const int kPort2 = 10000; | 339 const int kPort2 = 10000; |
| 333 std::string simple_message("hello world!"); | 340 std::string simple_message("hello world!"); |
| 334 std::string foreign_message("BAD MESSAGE TO GET!!"); | 341 std::string foreign_message("BAD MESSAGE TO GET!!"); |
| 335 | 342 |
| 336 // Setup the first server to listen. | 343 // Setup the first server to listen. |
| 337 IPEndPoint bind_address; | 344 IPEndPoint bind_address; |
| 338 CreateUDPAddress("0.0.0.0", kPort1, &bind_address); | 345 CreateUDPAddress("127.0.0.1", kPort1, &bind_address); |
| 339 UDPServerSocket server1(NULL, NetLog::Source()); | 346 UDPServerSocket server1(NULL, NetLog::Source()); |
| 347 server1.AllowAddressReuse(); |
| 340 int rv = server1.Listen(bind_address); | 348 int rv = server1.Listen(bind_address); |
| 341 ASSERT_EQ(OK, rv); | 349 ASSERT_EQ(OK, rv); |
| 342 | 350 |
| 343 // Setup the second server to listen. | 351 // Setup the second server to listen. |
| 344 CreateUDPAddress("0.0.0.0", kPort2, &bind_address); | 352 CreateUDPAddress("127.0.0.1", kPort2, &bind_address); |
| 345 UDPServerSocket server2(NULL, NetLog::Source()); | 353 UDPServerSocket server2(NULL, NetLog::Source()); |
| 354 server2.AllowAddressReuse(); |
| 346 rv = server2.Listen(bind_address); | 355 rv = server2.Listen(bind_address); |
| 347 ASSERT_EQ(OK, rv); | 356 ASSERT_EQ(OK, rv); |
| 348 | 357 |
| 349 // Setup the client, connected to server 1. | 358 // Setup the client, connected to server 1. |
| 350 IPEndPoint server_address; | 359 IPEndPoint server_address; |
| 351 CreateUDPAddress("127.0.0.1", kPort1, &server_address); | 360 CreateUDPAddress("127.0.0.1", kPort1, &server_address); |
| 352 UDPClientSocket client(DatagramSocket::DEFAULT_BIND, | 361 UDPClientSocket client(DatagramSocket::DEFAULT_BIND, |
| 353 RandIntCallback(), | 362 RandIntCallback(), |
| 354 NULL, | 363 NULL, |
| 355 NetLog::Source()); | 364 NetLog::Source()); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 EXPECT_EQ(rv, ERR_IO_PENDING); | 487 EXPECT_EQ(rv, ERR_IO_PENDING); |
| 479 | 488 |
| 480 server.Close(); | 489 server.Close(); |
| 481 | 490 |
| 482 EXPECT_FALSE(callback.have_result()); | 491 EXPECT_FALSE(callback.have_result()); |
| 483 } | 492 } |
| 484 | 493 |
| 485 } // namespace | 494 } // namespace |
| 486 | 495 |
| 487 } // namespace net | 496 } // namespace net |
| OLD | NEW |