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

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

Issue 4192012: Convert implicit scoped_refptr constructor calls to explicit ones, part 1 (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: fix presubmit Created 10 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_client_socket.h" 5 #include "net/socket/tcp_client_socket.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "net/base/address_list.h" 8 #include "net/base/address_list.h"
9 #include "net/base/host_resolver.h" 9 #include "net/base/host_resolver.h"
10 #include "net/base/io_buffer.h" 10 #include "net/base/io_buffer.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 TestCompletionCallback callback; 131 TestCompletionCallback callback;
132 int rv = sock_->Connect(&callback); 132 int rv = sock_->Connect(&callback);
133 if (rv != OK) { 133 if (rv != OK) {
134 ASSERT_EQ(rv, ERR_IO_PENDING); 134 ASSERT_EQ(rv, ERR_IO_PENDING);
135 135
136 rv = callback.WaitForResult(); 136 rv = callback.WaitForResult();
137 EXPECT_EQ(rv, OK); 137 EXPECT_EQ(rv, OK);
138 } 138 }
139 139
140 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 140 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
141 scoped_refptr<IOBuffer> request_buffer = 141 scoped_refptr<IOBuffer> request_buffer(
142 new IOBuffer(arraysize(request_text) - 1); 142 new IOBuffer(arraysize(request_text) - 1));
143 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 143 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
144 144
145 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback); 145 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback);
146 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 146 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
147 147
148 if (rv == ERR_IO_PENDING) { 148 if (rv == ERR_IO_PENDING) {
149 rv = callback.WaitForResult(); 149 rv = callback.WaitForResult();
150 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1)); 150 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1));
151 } 151 }
152 152
153 scoped_refptr<IOBuffer> buf = new IOBuffer(4096); 153 scoped_refptr<IOBuffer> buf(new IOBuffer(4096));
154 uint32 bytes_read = 0; 154 uint32 bytes_read = 0;
155 while (bytes_read < arraysize(kServerReply) - 1) { 155 while (bytes_read < arraysize(kServerReply) - 1) {
156 rv = sock_->Read(buf, 4096, &callback); 156 rv = sock_->Read(buf, 4096, &callback);
157 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 157 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
158 158
159 if (rv == ERR_IO_PENDING) 159 if (rv == ERR_IO_PENDING)
160 rv = callback.WaitForResult(); 160 rv = callback.WaitForResult();
161 161
162 ASSERT_GE(rv, 0); 162 ASSERT_GE(rv, 0);
163 bytes_read += rv; 163 bytes_read += rv;
(...skipping 12 matching lines...) Expand all
176 TestCompletionCallback callback; 176 TestCompletionCallback callback;
177 int rv = sock_->Connect(&callback); 177 int rv = sock_->Connect(&callback);
178 if (rv != OK) { 178 if (rv != OK) {
179 ASSERT_EQ(rv, ERR_IO_PENDING); 179 ASSERT_EQ(rv, ERR_IO_PENDING);
180 180
181 rv = callback.WaitForResult(); 181 rv = callback.WaitForResult();
182 EXPECT_EQ(rv, OK); 182 EXPECT_EQ(rv, OK);
183 } 183 }
184 184
185 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 185 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
186 scoped_refptr<IOBuffer> request_buffer = 186 scoped_refptr<IOBuffer> request_buffer(
187 new IOBuffer(arraysize(request_text) - 1); 187 new IOBuffer(arraysize(request_text) - 1));
188 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 188 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
189 189
190 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback); 190 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback);
191 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 191 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
192 192
193 if (rv == ERR_IO_PENDING) { 193 if (rv == ERR_IO_PENDING) {
194 rv = callback.WaitForResult(); 194 rv = callback.WaitForResult();
195 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1)); 195 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1));
196 } 196 }
197 197
198 scoped_refptr<IOBuffer> buf = new IOBuffer(1); 198 scoped_refptr<IOBuffer> buf(new IOBuffer(1));
199 uint32 bytes_read = 0; 199 uint32 bytes_read = 0;
200 while (bytes_read < arraysize(kServerReply) - 1) { 200 while (bytes_read < arraysize(kServerReply) - 1) {
201 rv = sock_->Read(buf, 1, &callback); 201 rv = sock_->Read(buf, 1, &callback);
202 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 202 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
203 203
204 if (rv == ERR_IO_PENDING) 204 if (rv == ERR_IO_PENDING)
205 rv = callback.WaitForResult(); 205 rv = callback.WaitForResult();
206 206
207 ASSERT_EQ(1, rv); 207 ASSERT_EQ(1, rv);
208 bytes_read += rv; 208 bytes_read += rv;
(...skipping 12 matching lines...) Expand all
221 TestCompletionCallback callback; 221 TestCompletionCallback callback;
222 int rv = sock_->Connect(&callback); 222 int rv = sock_->Connect(&callback);
223 if (rv != OK) { 223 if (rv != OK) {
224 ASSERT_EQ(ERR_IO_PENDING, rv); 224 ASSERT_EQ(ERR_IO_PENDING, rv);
225 225
226 rv = callback.WaitForResult(); 226 rv = callback.WaitForResult();
227 EXPECT_EQ(rv, OK); 227 EXPECT_EQ(rv, OK);
228 } 228 }
229 229
230 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; 230 const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
231 scoped_refptr<IOBuffer> request_buffer = 231 scoped_refptr<IOBuffer> request_buffer(
232 new IOBuffer(arraysize(request_text) - 1); 232 new IOBuffer(arraysize(request_text) - 1));
233 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); 233 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1);
234 234
235 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback); 235 rv = sock_->Write(request_buffer, arraysize(request_text) - 1, &callback);
236 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 236 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
237 237
238 if (rv == ERR_IO_PENDING) { 238 if (rv == ERR_IO_PENDING) {
239 rv = callback.WaitForResult(); 239 rv = callback.WaitForResult();
240 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1)); 240 EXPECT_EQ(rv, static_cast<int>(arraysize(request_text) - 1));
241 } 241 }
242 242
243 // Do a partial read and then exit. This test should not crash! 243 // Do a partial read and then exit. This test should not crash!
244 scoped_refptr<IOBuffer> buf = new IOBuffer(16); 244 scoped_refptr<IOBuffer> buf(new IOBuffer(16));
245 rv = sock_->Read(buf, 16, &callback); 245 rv = sock_->Read(buf, 16, &callback);
246 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 246 EXPECT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
247 247
248 if (rv == ERR_IO_PENDING) 248 if (rv == ERR_IO_PENDING)
249 rv = callback.WaitForResult(); 249 rv = callback.WaitForResult();
250 250
251 EXPECT_NE(0, rv); 251 EXPECT_NE(0, rv);
252 } 252 }
253 253
254 TEST_F(TCPClientSocketTest, DISABLED_FullDuplex_ReadFirst) { 254 TEST_F(TCPClientSocketTest, DISABLED_FullDuplex_ReadFirst) {
255 TestCompletionCallback callback; 255 TestCompletionCallback callback;
256 int rv = sock_->Connect(&callback); 256 int rv = sock_->Connect(&callback);
257 if (rv != OK) { 257 if (rv != OK) {
258 ASSERT_EQ(rv, ERR_IO_PENDING); 258 ASSERT_EQ(rv, ERR_IO_PENDING);
259 259
260 rv = callback.WaitForResult(); 260 rv = callback.WaitForResult();
261 EXPECT_EQ(rv, OK); 261 EXPECT_EQ(rv, OK);
262 } 262 }
263 263
264 // Read first. There's no data, so it should return ERR_IO_PENDING. 264 // Read first. There's no data, so it should return ERR_IO_PENDING.
265 const int kBufLen = 4096; 265 const int kBufLen = 4096;
266 scoped_refptr<IOBuffer> buf = new IOBuffer(kBufLen); 266 scoped_refptr<IOBuffer> buf(new IOBuffer(kBufLen));
267 rv = sock_->Read(buf, kBufLen, &callback); 267 rv = sock_->Read(buf, kBufLen, &callback);
268 EXPECT_EQ(ERR_IO_PENDING, rv); 268 EXPECT_EQ(ERR_IO_PENDING, rv);
269 269
270 PauseServerReads(); 270 PauseServerReads();
271 const int kWriteBufLen = 64 * 1024; 271 const int kWriteBufLen = 64 * 1024;
272 scoped_refptr<IOBuffer> request_buffer = new IOBuffer(kWriteBufLen); 272 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kWriteBufLen));
273 char* request_data = request_buffer->data(); 273 char* request_data = request_buffer->data();
274 memset(request_data, 'A', kWriteBufLen); 274 memset(request_data, 'A', kWriteBufLen);
275 TestCompletionCallback write_callback; 275 TestCompletionCallback write_callback;
276 276
277 while (true) { 277 while (true) {
278 rv = sock_->Write(request_buffer, kWriteBufLen, &write_callback); 278 rv = sock_->Write(request_buffer, kWriteBufLen, &write_callback);
279 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 279 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
280 280
281 if (rv == ERR_IO_PENDING) { 281 if (rv == ERR_IO_PENDING) {
282 ResumeServerReads(); 282 ResumeServerReads();
(...skipping 15 matching lines...) Expand all
298 int rv = sock_->Connect(&callback); 298 int rv = sock_->Connect(&callback);
299 if (rv != OK) { 299 if (rv != OK) {
300 ASSERT_EQ(ERR_IO_PENDING, rv); 300 ASSERT_EQ(ERR_IO_PENDING, rv);
301 301
302 rv = callback.WaitForResult(); 302 rv = callback.WaitForResult();
303 EXPECT_EQ(OK, rv); 303 EXPECT_EQ(OK, rv);
304 } 304 }
305 305
306 PauseServerReads(); 306 PauseServerReads();
307 const int kWriteBufLen = 64 * 1024; 307 const int kWriteBufLen = 64 * 1024;
308 scoped_refptr<IOBuffer> request_buffer = new IOBuffer(kWriteBufLen); 308 scoped_refptr<IOBuffer> request_buffer(new IOBuffer(kWriteBufLen));
309 char* request_data = request_buffer->data(); 309 char* request_data = request_buffer->data();
310 memset(request_data, 'A', kWriteBufLen); 310 memset(request_data, 'A', kWriteBufLen);
311 TestCompletionCallback write_callback; 311 TestCompletionCallback write_callback;
312 312
313 while (true) { 313 while (true) {
314 rv = sock_->Write(request_buffer, kWriteBufLen, &write_callback); 314 rv = sock_->Write(request_buffer, kWriteBufLen, &write_callback);
315 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 315 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
316 316
317 if (rv == ERR_IO_PENDING) 317 if (rv == ERR_IO_PENDING)
318 break; 318 break;
319 } 319 }
320 320
321 // Now we have the Write() blocked on ERR_IO_PENDING. It's time to force the 321 // Now we have the Write() blocked on ERR_IO_PENDING. It's time to force the
322 // Read() to block on ERR_IO_PENDING too. 322 // Read() to block on ERR_IO_PENDING too.
323 323
324 const int kBufLen = 4096; 324 const int kBufLen = 4096;
325 scoped_refptr<IOBuffer> buf = new IOBuffer(kBufLen); 325 scoped_refptr<IOBuffer> buf(new IOBuffer(kBufLen));
326 while (true) { 326 while (true) {
327 rv = sock_->Read(buf, kBufLen, &callback); 327 rv = sock_->Read(buf, kBufLen, &callback);
328 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING); 328 ASSERT_TRUE(rv >= 0 || rv == ERR_IO_PENDING);
329 if (rv == ERR_IO_PENDING) 329 if (rv == ERR_IO_PENDING)
330 break; 330 break;
331 } 331 }
332 332
333 // At this point, both read and write have returned ERR_IO_PENDING. Now we 333 // At this point, both read and write have returned ERR_IO_PENDING. Now we
334 // run the write and read callbacks to make sure they can handle full duplex 334 // run the write and read callbacks to make sure they can handle full duplex
335 // communications. 335 // communications.
336 336
337 ResumeServerReads(); 337 ResumeServerReads();
338 rv = write_callback.WaitForResult(); 338 rv = write_callback.WaitForResult();
339 EXPECT_GE(rv, 0); 339 EXPECT_GE(rv, 0);
340 340
341 // It's possible the read is blocked because it's already read all the data. 341 // It's possible the read is blocked because it's already read all the data.
342 // Close the server socket, so there will at least be a 0-byte read. 342 // Close the server socket, so there will at least be a 0-byte read.
343 CloseServerSocket(); 343 CloseServerSocket();
344 344
345 rv = callback.WaitForResult(); 345 rv = callback.WaitForResult();
346 EXPECT_GE(rv, 0); 346 EXPECT_GE(rv, 0);
347 } 347 }
348 348
349 } // namespace 349 } // namespace
350 350
351 } // namespace net 351 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/tcp_client_socket_pool_unittest.cc ('k') | net/socket_stream/socket_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698