Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(492)

Side by Side Diff: net/socket/tcp_socket_unittest.cc

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "net/socket/tcp_socket.h" 5 #include "net/socket/tcp_socket.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "base/test/simple_test_tick_clock.h" 15 #include "base/test/simple_test_tick_clock.h"
16 #include "base/time/time.h" 16 #include "base/time/time.h"
17 #include "net/base/address_list.h" 17 #include "net/base/address_list.h"
18 #include "net/base/io_buffer.h" 18 #include "net/base/io_buffer.h"
19 #include "net/base/ip_endpoint.h" 19 #include "net/base/ip_endpoint.h"
20 #include "net/base/ip_endpoint.h"
21 #include "net/base/net_errors.h" 20 #include "net/base/net_errors.h"
22 #include "net/base/sockaddr_storage.h" 21 #include "net/base/sockaddr_storage.h"
23 #include "net/base/test_completion_callback.h" 22 #include "net/base/test_completion_callback.h"
24 #include "net/socket/socket_performance_watcher.h" 23 #include "net/socket/socket_performance_watcher.h"
25 #include "net/socket/tcp_client_socket.h" 24 #include "net/socket/tcp_client_socket.h"
25 #include "net/test/gtest_util.h"
26 #include "testing/gmock/include/gmock/gmock.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
27 #include "testing/platform_test.h" 28 #include "testing/platform_test.h"
28 29
30 using net::test::IsOk;
31
29 namespace net { 32 namespace net {
30 33
31 namespace { 34 namespace {
32 35
33 class TestSocketPerformanceWatcher : public SocketPerformanceWatcher { 36 class TestSocketPerformanceWatcher : public SocketPerformanceWatcher {
34 public: 37 public:
35 explicit TestSocketPerformanceWatcher(bool should_notify_updated_rtt) 38 explicit TestSocketPerformanceWatcher(bool should_notify_updated_rtt)
36 : should_notify_updated_rtt_(should_notify_updated_rtt), 39 : should_notify_updated_rtt_(should_notify_updated_rtt),
37 connection_changed_count_(0u), 40 connection_changed_count_(0u),
38 rtt_notification_count_(0u) {} 41 rtt_notification_count_(0u) {}
(...skipping 21 matching lines...) Expand all
60 DISALLOW_COPY_AND_ASSIGN(TestSocketPerformanceWatcher); 63 DISALLOW_COPY_AND_ASSIGN(TestSocketPerformanceWatcher);
61 }; 64 };
62 65
63 const int kListenBacklog = 5; 66 const int kListenBacklog = 5;
64 67
65 class TCPSocketTest : public PlatformTest { 68 class TCPSocketTest : public PlatformTest {
66 protected: 69 protected:
67 TCPSocketTest() : socket_(NULL, NULL, NetLog::Source()) {} 70 TCPSocketTest() : socket_(NULL, NULL, NetLog::Source()) {}
68 71
69 void SetUpListenIPv4() { 72 void SetUpListenIPv4() {
70 ASSERT_EQ(OK, socket_.Open(ADDRESS_FAMILY_IPV4)); 73 ASSERT_THAT(socket_.Open(ADDRESS_FAMILY_IPV4), IsOk());
71 ASSERT_EQ(OK, socket_.Bind(IPEndPoint(IPAddress::IPv4Localhost(), 0))); 74 ASSERT_THAT(socket_.Bind(IPEndPoint(IPAddress::IPv4Localhost(), 0)),
72 ASSERT_EQ(OK, socket_.Listen(kListenBacklog)); 75 IsOk());
73 ASSERT_EQ(OK, socket_.GetLocalAddress(&local_address_)); 76 ASSERT_THAT(socket_.Listen(kListenBacklog), IsOk());
77 ASSERT_THAT(socket_.GetLocalAddress(&local_address_), IsOk());
74 } 78 }
75 79
76 void SetUpListenIPv6(bool* success) { 80 void SetUpListenIPv6(bool* success) {
77 *success = false; 81 *success = false;
78 82
79 if (socket_.Open(ADDRESS_FAMILY_IPV6) != OK || 83 if (socket_.Open(ADDRESS_FAMILY_IPV6) != OK ||
80 socket_.Bind(IPEndPoint(IPAddress::IPv6Localhost(), 0)) != OK || 84 socket_.Bind(IPEndPoint(IPAddress::IPv6Localhost(), 0)) != OK ||
81 socket_.Listen(kListenBacklog) != OK) { 85 socket_.Listen(kListenBacklog) != OK) {
82 LOG(ERROR) << "Failed to listen on ::1 - probably because IPv6 is " 86 LOG(ERROR) << "Failed to listen on ::1 - probably because IPv6 is "
83 "disabled. Skipping the test"; 87 "disabled. Skipping the test";
84 return; 88 return;
85 } 89 }
86 ASSERT_EQ(OK, socket_.GetLocalAddress(&local_address_)); 90 ASSERT_THAT(socket_.GetLocalAddress(&local_address_), IsOk());
87 *success = true; 91 *success = true;
88 } 92 }
89 93
90 void TestAcceptAsync() { 94 void TestAcceptAsync() {
91 TestCompletionCallback accept_callback; 95 TestCompletionCallback accept_callback;
92 std::unique_ptr<TCPSocket> accepted_socket; 96 std::unique_ptr<TCPSocket> accepted_socket;
93 IPEndPoint accepted_address; 97 IPEndPoint accepted_address;
94 ASSERT_EQ(ERR_IO_PENDING, 98 ASSERT_EQ(ERR_IO_PENDING,
95 socket_.Accept(&accepted_socket, &accepted_address, 99 socket_.Accept(&accepted_socket, &accepted_address,
96 accept_callback.callback())); 100 accept_callback.callback()));
97 101
98 TestCompletionCallback connect_callback; 102 TestCompletionCallback connect_callback;
99 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL, 103 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL,
100 NetLog::Source()); 104 NetLog::Source());
101 connecting_socket.Connect(connect_callback.callback()); 105 connecting_socket.Connect(connect_callback.callback());
102 106
103 EXPECT_EQ(OK, connect_callback.WaitForResult()); 107 EXPECT_THAT(connect_callback.WaitForResult(), IsOk());
104 EXPECT_EQ(OK, accept_callback.WaitForResult()); 108 EXPECT_THAT(accept_callback.WaitForResult(), IsOk());
105 109
106 EXPECT_TRUE(accepted_socket.get()); 110 EXPECT_TRUE(accepted_socket.get());
107 111
108 // Both sockets should be on the loopback network interface. 112 // Both sockets should be on the loopback network interface.
109 EXPECT_EQ(accepted_address.address(), local_address_.address()); 113 EXPECT_EQ(accepted_address.address(), local_address_.address());
110 } 114 }
111 115
112 #if defined(TCP_INFO) || defined(OS_LINUX) 116 #if defined(TCP_INFO) || defined(OS_LINUX)
113 // Tests that notifications to Socket Performance Watcher (SPW) are delivered 117 // Tests that notifications to Socket Performance Watcher (SPW) are delivered
114 // correctly. |advance_ticks| is the duration by which the clock is advanced 118 // correctly. |advance_ticks| is the duration by which the clock is advanced
(...skipping 20 matching lines...) Expand all
135 TestCompletionCallback connect_callback; 139 TestCompletionCallback connect_callback;
136 140
137 std::unique_ptr<TestSocketPerformanceWatcher> watcher( 141 std::unique_ptr<TestSocketPerformanceWatcher> watcher(
138 new TestSocketPerformanceWatcher(should_notify_updated_rtt)); 142 new TestSocketPerformanceWatcher(should_notify_updated_rtt));
139 TestSocketPerformanceWatcher* watcher_ptr = watcher.get(); 143 TestSocketPerformanceWatcher* watcher_ptr = watcher.get();
140 144
141 TCPSocket connecting_socket(std::move(watcher), NULL, NetLog::Source()); 145 TCPSocket connecting_socket(std::move(watcher), NULL, NetLog::Source());
142 connecting_socket.SetTickClockForTesting(std::move(tick_clock)); 146 connecting_socket.SetTickClockForTesting(std::move(tick_clock));
143 147
144 int result = connecting_socket.Open(ADDRESS_FAMILY_IPV4); 148 int result = connecting_socket.Open(ADDRESS_FAMILY_IPV4);
145 ASSERT_EQ(OK, result); 149 ASSERT_THAT(result, IsOk());
146 connecting_socket.Connect(local_address_, connect_callback.callback()); 150 connecting_socket.Connect(local_address_, connect_callback.callback());
147 151
148 TestCompletionCallback accept_callback; 152 TestCompletionCallback accept_callback;
149 std::unique_ptr<TCPSocket> accepted_socket; 153 std::unique_ptr<TCPSocket> accepted_socket;
150 IPEndPoint accepted_address; 154 IPEndPoint accepted_address;
151 result = socket_.Accept(&accepted_socket, &accepted_address, 155 result = socket_.Accept(&accepted_socket, &accepted_address,
152 accept_callback.callback()); 156 accept_callback.callback());
153 ASSERT_EQ(OK, accept_callback.GetResult(result)); 157 ASSERT_THAT(accept_callback.GetResult(result), IsOk());
154 158
155 ASSERT_TRUE(accepted_socket.get()); 159 ASSERT_TRUE(accepted_socket.get());
156 160
157 // Both sockets should be on the loopback network interface. 161 // Both sockets should be on the loopback network interface.
158 EXPECT_EQ(accepted_address.address(), local_address_.address()); 162 EXPECT_EQ(accepted_address.address(), local_address_.address());
159 163
160 ASSERT_EQ(OK, connect_callback.WaitForResult()); 164 ASSERT_THAT(connect_callback.WaitForResult(), IsOk());
161 165
162 for (size_t i = 0; i < num_messages; ++i) { 166 for (size_t i = 0; i < num_messages; ++i) {
163 tick_clock_ptr->Advance(advance_ticks); 167 tick_clock_ptr->Advance(advance_ticks);
164 168
165 // Use a 1 byte message so that the watcher is notified at most once per 169 // Use a 1 byte message so that the watcher is notified at most once per
166 // message. 170 // message.
167 const std::string message("t"); 171 const std::string message("t");
168 172
169 scoped_refptr<IOBufferWithSize> write_buffer( 173 scoped_refptr<IOBufferWithSize> write_buffer(
170 new IOBufferWithSize(message.size())); 174 new IOBufferWithSize(message.size()));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 NetLog::Source()); 213 NetLog::Source());
210 connecting_socket.Connect(connect_callback.callback()); 214 connecting_socket.Connect(connect_callback.callback());
211 215
212 TestCompletionCallback accept_callback; 216 TestCompletionCallback accept_callback;
213 std::unique_ptr<TCPSocket> accepted_socket; 217 std::unique_ptr<TCPSocket> accepted_socket;
214 IPEndPoint accepted_address; 218 IPEndPoint accepted_address;
215 int result = socket_.Accept(&accepted_socket, &accepted_address, 219 int result = socket_.Accept(&accepted_socket, &accepted_address,
216 accept_callback.callback()); 220 accept_callback.callback());
217 if (result == ERR_IO_PENDING) 221 if (result == ERR_IO_PENDING)
218 result = accept_callback.WaitForResult(); 222 result = accept_callback.WaitForResult();
219 ASSERT_EQ(OK, result); 223 ASSERT_THAT(result, IsOk());
220 224
221 EXPECT_TRUE(accepted_socket.get()); 225 EXPECT_TRUE(accepted_socket.get());
222 226
223 // Both sockets should be on the loopback network interface. 227 // Both sockets should be on the loopback network interface.
224 EXPECT_EQ(accepted_address.address(), local_address_.address()); 228 EXPECT_EQ(accepted_address.address(), local_address_.address());
225 229
226 EXPECT_EQ(OK, connect_callback.WaitForResult()); 230 EXPECT_THAT(connect_callback.WaitForResult(), IsOk());
227 } 231 }
228 232
229 // Test Accept() callback. 233 // Test Accept() callback.
230 TEST_F(TCPSocketTest, AcceptAsync) { 234 TEST_F(TCPSocketTest, AcceptAsync) {
231 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4()); 235 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4());
232 TestAcceptAsync(); 236 TestAcceptAsync();
233 } 237 }
234 238
235 #if defined(OS_WIN) 239 #if defined(OS_WIN)
236 // Test Accept() for AdoptListenSocket. 240 // Test Accept() for AdoptListenSocket.
237 TEST_F(TCPSocketTest, AcceptForAdoptedListenSocket) { 241 TEST_F(TCPSocketTest, AcceptForAdoptedListenSocket) {
238 // Create a socket to be used with AdoptListenSocket. 242 // Create a socket to be used with AdoptListenSocket.
239 SOCKET existing_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 243 SOCKET existing_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
240 ASSERT_EQ(OK, socket_.AdoptListenSocket(existing_socket)); 244 ASSERT_THAT(socket_.AdoptListenSocket(existing_socket), IsOk());
241 245
242 IPEndPoint address(IPAddress::IPv4Localhost(), 0); 246 IPEndPoint address(IPAddress::IPv4Localhost(), 0);
243 SockaddrStorage storage; 247 SockaddrStorage storage;
244 ASSERT_TRUE(address.ToSockAddr(storage.addr, &storage.addr_len)); 248 ASSERT_TRUE(address.ToSockAddr(storage.addr, &storage.addr_len));
245 ASSERT_EQ(0, bind(existing_socket, storage.addr, storage.addr_len)); 249 ASSERT_EQ(0, bind(existing_socket, storage.addr, storage.addr_len));
246 250
247 ASSERT_EQ(OK, socket_.Listen(kListenBacklog)); 251 ASSERT_THAT(socket_.Listen(kListenBacklog), IsOk());
248 ASSERT_EQ(OK, socket_.GetLocalAddress(&local_address_)); 252 ASSERT_THAT(socket_.GetLocalAddress(&local_address_), IsOk());
249 253
250 TestAcceptAsync(); 254 TestAcceptAsync();
251 } 255 }
252 #endif 256 #endif
253 257
254 // Accept two connections simultaneously. 258 // Accept two connections simultaneously.
255 TEST_F(TCPSocketTest, Accept2Connections) { 259 TEST_F(TCPSocketTest, Accept2Connections) {
256 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4()); 260 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4());
257 261
258 TestCompletionCallback accept_callback; 262 TestCompletionCallback accept_callback;
259 std::unique_ptr<TCPSocket> accepted_socket; 263 std::unique_ptr<TCPSocket> accepted_socket;
260 IPEndPoint accepted_address; 264 IPEndPoint accepted_address;
261 265
262 ASSERT_EQ(ERR_IO_PENDING, 266 ASSERT_EQ(ERR_IO_PENDING,
263 socket_.Accept(&accepted_socket, &accepted_address, 267 socket_.Accept(&accepted_socket, &accepted_address,
264 accept_callback.callback())); 268 accept_callback.callback()));
265 269
266 TestCompletionCallback connect_callback; 270 TestCompletionCallback connect_callback;
267 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL, 271 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL,
268 NetLog::Source()); 272 NetLog::Source());
269 connecting_socket.Connect(connect_callback.callback()); 273 connecting_socket.Connect(connect_callback.callback());
270 274
271 TestCompletionCallback connect_callback2; 275 TestCompletionCallback connect_callback2;
272 TCPClientSocket connecting_socket2(local_address_list(), NULL, NULL, 276 TCPClientSocket connecting_socket2(local_address_list(), NULL, NULL,
273 NetLog::Source()); 277 NetLog::Source());
274 connecting_socket2.Connect(connect_callback2.callback()); 278 connecting_socket2.Connect(connect_callback2.callback());
275 279
276 EXPECT_EQ(OK, accept_callback.WaitForResult()); 280 EXPECT_THAT(accept_callback.WaitForResult(), IsOk());
277 281
278 TestCompletionCallback accept_callback2; 282 TestCompletionCallback accept_callback2;
279 std::unique_ptr<TCPSocket> accepted_socket2; 283 std::unique_ptr<TCPSocket> accepted_socket2;
280 IPEndPoint accepted_address2; 284 IPEndPoint accepted_address2;
281 285
282 int result = socket_.Accept(&accepted_socket2, &accepted_address2, 286 int result = socket_.Accept(&accepted_socket2, &accepted_address2,
283 accept_callback2.callback()); 287 accept_callback2.callback());
284 if (result == ERR_IO_PENDING) 288 if (result == ERR_IO_PENDING)
285 result = accept_callback2.WaitForResult(); 289 result = accept_callback2.WaitForResult();
286 ASSERT_EQ(OK, result); 290 ASSERT_THAT(result, IsOk());
287 291
288 EXPECT_EQ(OK, connect_callback.WaitForResult()); 292 EXPECT_THAT(connect_callback.WaitForResult(), IsOk());
289 EXPECT_EQ(OK, connect_callback2.WaitForResult()); 293 EXPECT_THAT(connect_callback2.WaitForResult(), IsOk());
290 294
291 EXPECT_TRUE(accepted_socket.get()); 295 EXPECT_TRUE(accepted_socket.get());
292 EXPECT_TRUE(accepted_socket2.get()); 296 EXPECT_TRUE(accepted_socket2.get());
293 EXPECT_NE(accepted_socket.get(), accepted_socket2.get()); 297 EXPECT_NE(accepted_socket.get(), accepted_socket2.get());
294 298
295 EXPECT_EQ(accepted_address.address(), local_address_.address()); 299 EXPECT_EQ(accepted_address.address(), local_address_.address());
296 EXPECT_EQ(accepted_address2.address(), local_address_.address()); 300 EXPECT_EQ(accepted_address2.address(), local_address_.address());
297 } 301 }
298 302
299 // Test listening and accepting with a socket bound to an IPv6 address. 303 // Test listening and accepting with a socket bound to an IPv6 address.
300 TEST_F(TCPSocketTest, AcceptIPv6) { 304 TEST_F(TCPSocketTest, AcceptIPv6) {
301 bool initialized = false; 305 bool initialized = false;
302 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv6(&initialized)); 306 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv6(&initialized));
303 if (!initialized) 307 if (!initialized)
304 return; 308 return;
305 309
306 TestCompletionCallback connect_callback; 310 TestCompletionCallback connect_callback;
307 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL, 311 TCPClientSocket connecting_socket(local_address_list(), NULL, NULL,
308 NetLog::Source()); 312 NetLog::Source());
309 connecting_socket.Connect(connect_callback.callback()); 313 connecting_socket.Connect(connect_callback.callback());
310 314
311 TestCompletionCallback accept_callback; 315 TestCompletionCallback accept_callback;
312 std::unique_ptr<TCPSocket> accepted_socket; 316 std::unique_ptr<TCPSocket> accepted_socket;
313 IPEndPoint accepted_address; 317 IPEndPoint accepted_address;
314 int result = socket_.Accept(&accepted_socket, &accepted_address, 318 int result = socket_.Accept(&accepted_socket, &accepted_address,
315 accept_callback.callback()); 319 accept_callback.callback());
316 if (result == ERR_IO_PENDING) 320 if (result == ERR_IO_PENDING)
317 result = accept_callback.WaitForResult(); 321 result = accept_callback.WaitForResult();
318 ASSERT_EQ(OK, result); 322 ASSERT_THAT(result, IsOk());
319 323
320 EXPECT_TRUE(accepted_socket.get()); 324 EXPECT_TRUE(accepted_socket.get());
321 325
322 // Both sockets should be on the loopback network interface. 326 // Both sockets should be on the loopback network interface.
323 EXPECT_EQ(accepted_address.address(), local_address_.address()); 327 EXPECT_EQ(accepted_address.address(), local_address_.address());
324 328
325 EXPECT_EQ(OK, connect_callback.WaitForResult()); 329 EXPECT_THAT(connect_callback.WaitForResult(), IsOk());
326 } 330 }
327 331
328 TEST_F(TCPSocketTest, ReadWrite) { 332 TEST_F(TCPSocketTest, ReadWrite) {
329 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4()); 333 ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4());
330 334
331 TestCompletionCallback connect_callback; 335 TestCompletionCallback connect_callback;
332 TCPSocket connecting_socket(NULL, NULL, NetLog::Source()); 336 TCPSocket connecting_socket(NULL, NULL, NetLog::Source());
333 int result = connecting_socket.Open(ADDRESS_FAMILY_IPV4); 337 int result = connecting_socket.Open(ADDRESS_FAMILY_IPV4);
334 ASSERT_EQ(OK, result); 338 ASSERT_THAT(result, IsOk());
335 connecting_socket.Connect(local_address_, connect_callback.callback()); 339 connecting_socket.Connect(local_address_, connect_callback.callback());
336 340
337 TestCompletionCallback accept_callback; 341 TestCompletionCallback accept_callback;
338 std::unique_ptr<TCPSocket> accepted_socket; 342 std::unique_ptr<TCPSocket> accepted_socket;
339 IPEndPoint accepted_address; 343 IPEndPoint accepted_address;
340 result = socket_.Accept(&accepted_socket, &accepted_address, 344 result = socket_.Accept(&accepted_socket, &accepted_address,
341 accept_callback.callback()); 345 accept_callback.callback());
342 ASSERT_EQ(OK, accept_callback.GetResult(result)); 346 ASSERT_THAT(accept_callback.GetResult(result), IsOk());
343 347
344 ASSERT_TRUE(accepted_socket.get()); 348 ASSERT_TRUE(accepted_socket.get());
345 349
346 // Both sockets should be on the loopback network interface. 350 // Both sockets should be on the loopback network interface.
347 EXPECT_EQ(accepted_address.address(), local_address_.address()); 351 EXPECT_EQ(accepted_address.address(), local_address_.address());
348 352
349 EXPECT_EQ(OK, connect_callback.WaitForResult()); 353 EXPECT_THAT(connect_callback.WaitForResult(), IsOk());
350 354
351 const std::string message("test message"); 355 const std::string message("test message");
352 std::vector<char> buffer(message.size()); 356 std::vector<char> buffer(message.size());
353 357
354 size_t bytes_written = 0; 358 size_t bytes_written = 0;
355 while (bytes_written < message.size()) { 359 while (bytes_written < message.size()) {
356 scoped_refptr<IOBufferWithSize> write_buffer( 360 scoped_refptr<IOBufferWithSize> write_buffer(
357 new IOBufferWithSize(message.size() - bytes_written)); 361 new IOBufferWithSize(message.size() - bytes_written));
358 memmove(write_buffer->data(), message.data() + bytes_written, 362 memmove(write_buffer->data(), message.data() + bytes_written,
359 message.size() - bytes_written); 363 message.size() - bytes_written);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 // additional notification should be received for each message read since this 409 // additional notification should be received for each message read since this
406 // test advances clock by 2 seconds (which is longer than the minimum interval 410 // test advances clock by 2 seconds (which is longer than the minimum interval
407 // between consecutive notifications) before every read. 411 // between consecutive notifications) before every read.
408 TEST_F(TCPSocketTest, SPWAdvance) { 412 TEST_F(TCPSocketTest, SPWAdvance) {
409 TestSPWNotifications(base::TimeDelta::FromSeconds(2), true, 2u, 0u, 3u); 413 TestSPWNotifications(base::TimeDelta::FromSeconds(2), true, 2u, 0u, 3u);
410 } 414 }
411 #endif // defined(TCP_INFO) || defined(OS_LINUX) 415 #endif // defined(TCP_INFO) || defined(OS_LINUX)
412 416
413 } // namespace 417 } // namespace
414 } // namespace net 418 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/tcp_server_socket_unittest.cc ('k') | net/socket/transport_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698