OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
hashimoto
2014/06/12 13:03:37
Please add tests for the new methods.
rvargas (doing something else)
2014/06/13 02:49:10
Done.
| |
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/base/file_stream.h" | 5 #include "net/base/file_stream.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
11 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
61 } | 61 } |
62 | 62 |
63 const base::FilePath temp_file_path() const { return temp_file_path_; } | 63 const base::FilePath temp_file_path() const { return temp_file_path_; } |
64 | 64 |
65 private: | 65 private: |
66 base::FilePath temp_file_path_; | 66 base::FilePath temp_file_path_; |
67 }; | 67 }; |
68 | 68 |
69 namespace { | 69 namespace { |
70 | 70 |
71 TEST_F(FileStreamTest, AsyncOpenExplicitClose) { | 71 TEST_F(FileStreamTest, AsyncOpenExplicitClose) { |
hashimoto
2014/06/12 13:03:37
nit: Could you remove "Async" from this file too?
rvargas (doing something else)
2014/06/13 02:49:10
Done.
| |
72 TestCompletionCallback callback; | 72 TestCompletionCallback callback; |
73 FileStream stream(base::MessageLoopProxy::current()); | 73 FileStream stream(base::MessageLoopProxy::current()); |
74 int flags = base::File::FLAG_OPEN | | 74 int flags = base::File::FLAG_OPEN | |
75 base::File::FLAG_READ | | 75 base::File::FLAG_READ | |
76 base::File::FLAG_ASYNC; | 76 base::File::FLAG_ASYNC; |
77 int rv = stream.Open(temp_file_path(), flags, callback.callback()); | 77 int rv = stream.Open(temp_file_path(), flags, callback.callback()); |
78 EXPECT_EQ(ERR_IO_PENDING, rv); | 78 EXPECT_EQ(ERR_IO_PENDING, rv); |
79 EXPECT_EQ(OK, callback.WaitForResult()); | 79 EXPECT_EQ(OK, callback.WaitForResult()); |
80 EXPECT_TRUE(stream.IsOpen()); | 80 EXPECT_TRUE(stream.IsOpen()); |
81 EXPECT_TRUE(stream.GetFileForTesting().IsValid()); | 81 EXPECT_TRUE(stream.GetFileForTesting().IsValid()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 ASSERT_EQ(kTestDataSize, | 113 ASSERT_EQ(kTestDataSize, |
114 base::WriteFile(temp_file_path(), kTestData, kTestDataSize)); | 114 base::WriteFile(temp_file_path(), kTestData, kTestDataSize)); |
115 int flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ | | 115 int flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ | |
116 base::File::FLAG_ASYNC; | 116 base::File::FLAG_ASYNC; |
117 base::File file(temp_file_path(), flags); | 117 base::File file(temp_file_path(), flags); |
118 | 118 |
119 // Seek to the beginning of the file and read. | 119 // Seek to the beginning of the file and read. |
120 scoped_ptr<FileStream> read_stream( | 120 scoped_ptr<FileStream> read_stream( |
121 new FileStream(file.Pass(), base::MessageLoopProxy::current())); | 121 new FileStream(file.Pass(), base::MessageLoopProxy::current())); |
122 ASSERT_EQ(ERR_IO_PENDING, | 122 ASSERT_EQ(ERR_IO_PENDING, |
123 read_stream->Seek(FROM_BEGIN, 0, callback64.callback())); | 123 read_stream->Seek(base::File::FROM_BEGIN, 0, |
124 callback64.callback())); | |
124 ASSERT_EQ(0, callback64.WaitForResult()); | 125 ASSERT_EQ(0, callback64.WaitForResult()); |
125 // Read into buffer and compare. | 126 // Read into buffer and compare. |
126 scoped_refptr<IOBufferWithSize> read_buffer = | 127 scoped_refptr<IOBufferWithSize> read_buffer = |
127 new IOBufferWithSize(kTestDataSize); | 128 new IOBufferWithSize(kTestDataSize); |
128 rv = read_stream->Read(read_buffer.get(), kTestDataSize, callback.callback()); | 129 rv = read_stream->Read(read_buffer.get(), kTestDataSize, callback.callback()); |
129 ASSERT_EQ(kTestDataSize, callback.GetResult(rv)); | 130 ASSERT_EQ(kTestDataSize, callback.GetResult(rv)); |
130 ASSERT_EQ(0, memcmp(kTestData, read_buffer->data(), kTestDataSize)); | 131 ASSERT_EQ(0, memcmp(kTestData, read_buffer->data(), kTestDataSize)); |
131 read_stream.reset(); | 132 read_stream.reset(); |
132 | 133 |
133 // 2. Test writing with a file handle. | 134 // 2. Test writing with a file handle. |
134 base::DeleteFile(temp_file_path(), false); | 135 base::DeleteFile(temp_file_path(), false); |
135 flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WRITE | | 136 flags = base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WRITE | |
136 base::File::FLAG_ASYNC; | 137 base::File::FLAG_ASYNC; |
137 file.Initialize(temp_file_path(), flags); | 138 file.Initialize(temp_file_path(), flags); |
138 | 139 |
139 scoped_ptr<FileStream> write_stream( | 140 scoped_ptr<FileStream> write_stream( |
140 new FileStream(file.Pass(), base::MessageLoopProxy::current())); | 141 new FileStream(file.Pass(), base::MessageLoopProxy::current())); |
141 ASSERT_EQ(ERR_IO_PENDING, | 142 ASSERT_EQ(ERR_IO_PENDING, |
142 write_stream->Seek(FROM_BEGIN, 0, callback64.callback())); | 143 write_stream->Seek(base::File::FROM_BEGIN, 0, |
144 callback64.callback())); | |
143 ASSERT_EQ(0, callback64.WaitForResult()); | 145 ASSERT_EQ(0, callback64.WaitForResult()); |
144 scoped_refptr<IOBufferWithSize> write_buffer = CreateTestDataBuffer(); | 146 scoped_refptr<IOBufferWithSize> write_buffer = CreateTestDataBuffer(); |
145 rv = write_stream->Write(write_buffer.get(), kTestDataSize, | 147 rv = write_stream->Write(write_buffer.get(), kTestDataSize, |
146 callback.callback()); | 148 callback.callback()); |
147 ASSERT_EQ(kTestDataSize, callback.GetResult(rv)); | 149 ASSERT_EQ(kTestDataSize, callback.GetResult(rv)); |
148 write_stream.reset(); | 150 write_stream.reset(); |
149 | 151 |
150 // Read into buffer and compare to make sure the handle worked fine. | 152 // Read into buffer and compare to make sure the handle worked fine. |
151 ASSERT_EQ(kTestDataSize, | 153 ASSERT_EQ(kTestDataSize, |
152 base::ReadFile(temp_file_path(), read_buffer->data(), | 154 base::ReadFile(temp_file_path(), read_buffer->data(), |
153 kTestDataSize)); | 155 kTestDataSize)); |
154 ASSERT_EQ(0, memcmp(kTestData, read_buffer->data(), kTestDataSize)); | 156 ASSERT_EQ(0, memcmp(kTestData, read_buffer->data(), kTestDataSize)); |
155 } | 157 } |
156 | 158 |
157 TEST_F(FileStreamTest, UseClosedStream) { | 159 TEST_F(FileStreamTest, UseClosedStream) { |
158 int rv = 0; | 160 int rv = 0; |
159 TestCompletionCallback callback; | 161 TestCompletionCallback callback; |
160 TestInt64CompletionCallback callback64; | 162 TestInt64CompletionCallback callback64; |
161 | 163 |
162 FileStream stream(base::MessageLoopProxy::current()); | 164 FileStream stream(base::MessageLoopProxy::current()); |
163 | 165 |
164 EXPECT_FALSE(stream.IsOpen()); | 166 EXPECT_FALSE(stream.IsOpen()); |
165 | 167 |
166 // Try seeking... | 168 // Try seeking... |
167 rv = stream.Seek(FROM_BEGIN, 5, callback64.callback()); | 169 rv = stream.Seek(base::File::FROM_BEGIN, 5, callback64.callback()); |
168 EXPECT_EQ(ERR_UNEXPECTED, callback64.GetResult(rv)); | 170 EXPECT_EQ(ERR_UNEXPECTED, callback64.GetResult(rv)); |
169 | 171 |
170 // Try reading... | 172 // Try reading... |
171 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(10); | 173 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(10); |
172 rv = stream.Read(buf, buf->size(), callback.callback()); | 174 rv = stream.Read(buf, buf->size(), callback.callback()); |
173 EXPECT_EQ(ERR_UNEXPECTED, callback.GetResult(rv)); | 175 EXPECT_EQ(ERR_UNEXPECTED, callback.GetResult(rv)); |
174 } | 176 } |
175 | 177 |
176 TEST_F(FileStreamTest, AsyncRead) { | 178 TEST_F(FileStreamTest, AsyncRead) { |
177 int64 file_size; | 179 int64 file_size; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 FileStream stream(base::MessageLoopProxy::current()); | 238 FileStream stream(base::MessageLoopProxy::current()); |
237 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | | 239 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | |
238 base::File::FLAG_ASYNC; | 240 base::File::FLAG_ASYNC; |
239 TestCompletionCallback callback; | 241 TestCompletionCallback callback; |
240 int rv = stream.Open(temp_file_path(), flags, callback.callback()); | 242 int rv = stream.Open(temp_file_path(), flags, callback.callback()); |
241 EXPECT_EQ(ERR_IO_PENDING, rv); | 243 EXPECT_EQ(ERR_IO_PENDING, rv); |
242 EXPECT_EQ(OK, callback.WaitForResult()); | 244 EXPECT_EQ(OK, callback.WaitForResult()); |
243 | 245 |
244 TestInt64CompletionCallback callback64; | 246 TestInt64CompletionCallback callback64; |
245 const int64 kOffset = 3; | 247 const int64 kOffset = 3; |
246 rv = stream.Seek(FROM_BEGIN, kOffset, callback64.callback()); | 248 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback()); |
247 ASSERT_EQ(ERR_IO_PENDING, rv); | 249 ASSERT_EQ(ERR_IO_PENDING, rv); |
248 int64 new_offset = callback64.WaitForResult(); | 250 int64 new_offset = callback64.WaitForResult(); |
249 EXPECT_EQ(kOffset, new_offset); | 251 EXPECT_EQ(kOffset, new_offset); |
250 | 252 |
251 int total_bytes_read = 0; | 253 int total_bytes_read = 0; |
252 | 254 |
253 std::string data_read; | 255 std::string data_read; |
254 for (;;) { | 256 for (;;) { |
255 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); | 257 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); |
256 rv = stream.Read(buf.get(), buf->size(), callback.callback()); | 258 rv = stream.Read(buf.get(), buf->size(), callback.callback()); |
(...skipping 14 matching lines...) Expand all Loading... | |
271 int flags = base::File::FLAG_OPEN | base::File::FLAG_ASYNC | | 273 int flags = base::File::FLAG_OPEN | base::File::FLAG_ASYNC | |
272 base::File::FLAG_READ; | 274 base::File::FLAG_READ; |
273 TestCompletionCallback callback; | 275 TestCompletionCallback callback; |
274 int rv = stream.Open(temp_file_path(), flags, callback.callback()); | 276 int rv = stream.Open(temp_file_path(), flags, callback.callback()); |
275 EXPECT_EQ(ERR_IO_PENDING, rv); | 277 EXPECT_EQ(ERR_IO_PENDING, rv); |
276 EXPECT_EQ(OK, callback.WaitForResult()); | 278 EXPECT_EQ(OK, callback.WaitForResult()); |
277 | 279 |
278 TestInt64CompletionCallback callback64; | 280 TestInt64CompletionCallback callback64; |
279 | 281 |
280 const int64 kOffset = 3; | 282 const int64 kOffset = 3; |
281 rv = stream.Seek(FROM_BEGIN, kOffset, callback64.callback()); | 283 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback()); |
282 ASSERT_EQ(ERR_IO_PENDING, rv); | 284 ASSERT_EQ(ERR_IO_PENDING, rv); |
283 int64 new_offset = callback64.WaitForResult(); | 285 int64 new_offset = callback64.WaitForResult(); |
284 EXPECT_EQ(kOffset, new_offset); | 286 EXPECT_EQ(kOffset, new_offset); |
285 | 287 |
286 rv = stream.Seek(FROM_CURRENT, kOffset, callback64.callback()); | 288 rv = stream.Seek(base::File::FROM_CURRENT, kOffset, callback64.callback()); |
287 ASSERT_EQ(ERR_IO_PENDING, rv); | 289 ASSERT_EQ(ERR_IO_PENDING, rv); |
288 new_offset = callback64.WaitForResult(); | 290 new_offset = callback64.WaitForResult(); |
289 EXPECT_EQ(2 * kOffset, new_offset); | 291 EXPECT_EQ(2 * kOffset, new_offset); |
290 | 292 |
291 rv = stream.Seek(FROM_CURRENT, -kOffset, callback64.callback()); | 293 rv = stream.Seek(base::File::FROM_CURRENT, -kOffset, callback64.callback()); |
292 ASSERT_EQ(ERR_IO_PENDING, rv); | 294 ASSERT_EQ(ERR_IO_PENDING, rv); |
293 new_offset = callback64.WaitForResult(); | 295 new_offset = callback64.WaitForResult(); |
294 EXPECT_EQ(kOffset, new_offset); | 296 EXPECT_EQ(kOffset, new_offset); |
295 | 297 |
296 const int kTestDataLen = arraysize(kTestData) - 1; | 298 const int kTestDataLen = arraysize(kTestData) - 1; |
297 | 299 |
298 rv = stream.Seek(FROM_END, -kTestDataLen, callback64.callback()); | 300 rv = stream.Seek(base::File::FROM_END, -kTestDataLen, callback64.callback()); |
299 ASSERT_EQ(ERR_IO_PENDING, rv); | 301 ASSERT_EQ(ERR_IO_PENDING, rv); |
300 new_offset = callback64.WaitForResult(); | 302 new_offset = callback64.WaitForResult(); |
301 EXPECT_EQ(0, new_offset); | 303 EXPECT_EQ(0, new_offset); |
302 } | 304 } |
303 | 305 |
304 TEST_F(FileStreamTest, AsyncWrite) { | 306 TEST_F(FileStreamTest, AsyncWrite) { |
305 FileStream stream(base::MessageLoopProxy::current()); | 307 FileStream stream(base::MessageLoopProxy::current()); |
306 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE | | 308 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE | |
307 base::File::FLAG_ASYNC; | 309 base::File::FLAG_ASYNC; |
308 TestCompletionCallback callback; | 310 TestCompletionCallback callback; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
369 FileStream stream(base::MessageLoopProxy::current()); | 371 FileStream stream(base::MessageLoopProxy::current()); |
370 int flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE | | 372 int flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE | |
371 base::File::FLAG_ASYNC; | 373 base::File::FLAG_ASYNC; |
372 TestCompletionCallback callback; | 374 TestCompletionCallback callback; |
373 int rv = stream.Open(temp_file_path(), flags, callback.callback()); | 375 int rv = stream.Open(temp_file_path(), flags, callback.callback()); |
374 EXPECT_EQ(ERR_IO_PENDING, rv); | 376 EXPECT_EQ(ERR_IO_PENDING, rv); |
375 EXPECT_EQ(OK, callback.WaitForResult()); | 377 EXPECT_EQ(OK, callback.WaitForResult()); |
376 | 378 |
377 TestInt64CompletionCallback callback64; | 379 TestInt64CompletionCallback callback64; |
378 const int64 kOffset = 0; | 380 const int64 kOffset = 0; |
379 rv = stream.Seek(FROM_END, kOffset, callback64.callback()); | 381 rv = stream.Seek(base::File::FROM_END, kOffset, callback64.callback()); |
380 ASSERT_EQ(ERR_IO_PENDING, rv); | 382 ASSERT_EQ(ERR_IO_PENDING, rv); |
381 int64 new_offset = callback64.WaitForResult(); | 383 int64 new_offset = callback64.WaitForResult(); |
382 EXPECT_EQ(kTestDataSize, new_offset); | 384 EXPECT_EQ(kTestDataSize, new_offset); |
383 | 385 |
384 int total_bytes_written = 0; | 386 int total_bytes_written = 0; |
385 | 387 |
386 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); | 388 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); |
387 scoped_refptr<DrainableIOBuffer> drainable = | 389 scoped_refptr<DrainableIOBuffer> drainable = |
388 new DrainableIOBuffer(buf.get(), buf->size()); | 390 new DrainableIOBuffer(buf.get(), buf->size()); |
389 while (total_bytes_written != kTestDataSize) { | 391 while (total_bytes_written != kTestDataSize) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
461 scoped_ptr<FileStream> stream( | 463 scoped_ptr<FileStream> stream( |
462 new FileStream(base::MessageLoopProxy::current())); | 464 new FileStream(base::MessageLoopProxy::current())); |
463 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | | 465 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | |
464 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; | 466 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; |
465 TestCompletionCallback callback; | 467 TestCompletionCallback callback; |
466 int rv = stream->Open(temp_file_path(), flags, callback.callback()); | 468 int rv = stream->Open(temp_file_path(), flags, callback.callback()); |
467 EXPECT_EQ(ERR_IO_PENDING, rv); | 469 EXPECT_EQ(ERR_IO_PENDING, rv); |
468 EXPECT_EQ(OK, callback.WaitForResult()); | 470 EXPECT_EQ(OK, callback.WaitForResult()); |
469 | 471 |
470 TestInt64CompletionCallback callback64; | 472 TestInt64CompletionCallback callback64; |
471 rv = stream->Seek(FROM_END, 0, callback64.callback()); | 473 rv = stream->Seek(base::File::FROM_END, 0, callback64.callback()); |
472 ASSERT_EQ(ERR_IO_PENDING, rv); | 474 ASSERT_EQ(ERR_IO_PENDING, rv); |
473 int64 offset = callback64.WaitForResult(); | 475 int64 offset = callback64.WaitForResult(); |
474 EXPECT_EQ(offset, file_size); | 476 EXPECT_EQ(offset, file_size); |
475 | 477 |
476 int total_bytes_written = 0; | 478 int total_bytes_written = 0; |
477 | 479 |
478 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); | 480 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); |
479 scoped_refptr<DrainableIOBuffer> drainable = | 481 scoped_refptr<DrainableIOBuffer> drainable = |
480 new DrainableIOBuffer(buf.get(), buf->size()); | 482 new DrainableIOBuffer(buf.get(), buf->size()); |
481 while (total_bytes_written != kTestDataSize) { | 483 while (total_bytes_written != kTestDataSize) { |
482 rv = stream->Write(drainable.get(), drainable->BytesRemaining(), | 484 rv = stream->Write(drainable.get(), drainable->BytesRemaining(), |
483 callback.callback()); | 485 callback.callback()); |
484 if (rv == ERR_IO_PENDING) | 486 if (rv == ERR_IO_PENDING) |
485 rv = callback.WaitForResult(); | 487 rv = callback.WaitForResult(); |
486 EXPECT_LT(0, rv); | 488 EXPECT_LT(0, rv); |
487 if (rv <= 0) | 489 if (rv <= 0) |
488 break; | 490 break; |
489 drainable->DidConsume(rv); | 491 drainable->DidConsume(rv); |
490 total_bytes_written += rv; | 492 total_bytes_written += rv; |
491 } | 493 } |
492 | 494 |
493 EXPECT_EQ(kTestDataSize, total_bytes_written); | 495 EXPECT_EQ(kTestDataSize, total_bytes_written); |
494 | 496 |
495 rv = stream->Seek(FROM_BEGIN, 0, callback64.callback()); | 497 rv = stream->Seek(base::File::FROM_BEGIN, 0, callback64.callback()); |
496 ASSERT_EQ(ERR_IO_PENDING, rv); | 498 ASSERT_EQ(ERR_IO_PENDING, rv); |
497 offset = callback64.WaitForResult(); | 499 offset = callback64.WaitForResult(); |
498 EXPECT_EQ(0, offset); | 500 EXPECT_EQ(0, offset); |
499 | 501 |
500 int total_bytes_read = 0; | 502 int total_bytes_read = 0; |
501 | 503 |
502 std::string data_read; | 504 std::string data_read; |
503 for (;;) { | 505 for (;;) { |
504 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); | 506 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); |
505 rv = stream->Read(buf.get(), buf->size(), callback.callback()); | 507 rv = stream->Read(buf.get(), buf->size(), callback.callback()); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
570 drainable_.get(), drainable_->BytesRemaining(), callback.callback()); | 572 drainable_.get(), drainable_->BytesRemaining(), callback.callback()); |
571 DCHECK_EQ(ERR_IO_PENDING, rv); | 573 DCHECK_EQ(ERR_IO_PENDING, rv); |
572 rv = callback.WaitForResult(); | 574 rv = callback.WaitForResult(); |
573 drainable_->DidConsume(total_bytes_written); | 575 drainable_->DidConsume(total_bytes_written); |
574 *total_bytes_written_ += total_bytes_written; | 576 *total_bytes_written_ += total_bytes_written; |
575 *total_bytes_read_ += total_bytes_read; | 577 *total_bytes_read_ += total_bytes_read; |
576 *data_read_ += data_read; | 578 *data_read_ += data_read; |
577 } else { // We're done writing all data. Start reading the data. | 579 } else { // We're done writing all data. Start reading the data. |
578 TestInt64CompletionCallback callback64; | 580 TestInt64CompletionCallback callback64; |
579 EXPECT_EQ(ERR_IO_PENDING, | 581 EXPECT_EQ(ERR_IO_PENDING, |
580 stream_->Seek(FROM_BEGIN, 0, callback64.callback())); | 582 stream_->Seek(base::File::FROM_BEGIN, 0, |
583 callback64.callback())); | |
581 { | 584 { |
582 base::MessageLoop::ScopedNestableTaskAllower allow( | 585 base::MessageLoop::ScopedNestableTaskAllower allow( |
583 base::MessageLoop::current()); | 586 base::MessageLoop::current()); |
584 EXPECT_LE(0, callback64.WaitForResult()); | 587 EXPECT_LE(0, callback64.WaitForResult()); |
585 } | 588 } |
586 | 589 |
587 TestCompletionCallback callback; | 590 TestCompletionCallback callback; |
588 for (;;) { | 591 for (;;) { |
589 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); | 592 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); |
590 rv = stream_->Read(buf.get(), buf->size(), callback.callback()); | 593 rv = stream_->Read(buf.get(), buf->size(), callback.callback()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
628 scoped_ptr<FileStream> stream( | 631 scoped_ptr<FileStream> stream( |
629 new FileStream(base::MessageLoopProxy::current())); | 632 new FileStream(base::MessageLoopProxy::current())); |
630 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | | 633 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | |
631 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; | 634 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; |
632 TestCompletionCallback open_callback; | 635 TestCompletionCallback open_callback; |
633 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); | 636 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); |
634 EXPECT_EQ(ERR_IO_PENDING, rv); | 637 EXPECT_EQ(ERR_IO_PENDING, rv); |
635 EXPECT_EQ(OK, open_callback.WaitForResult()); | 638 EXPECT_EQ(OK, open_callback.WaitForResult()); |
636 | 639 |
637 TestInt64CompletionCallback callback64; | 640 TestInt64CompletionCallback callback64; |
638 EXPECT_EQ(ERR_IO_PENDING, stream->Seek(FROM_END, 0, callback64.callback())); | 641 EXPECT_EQ(ERR_IO_PENDING, |
642 stream->Seek(base::File::FROM_END, 0, callback64.callback())); | |
639 EXPECT_EQ(file_size, callback64.WaitForResult()); | 643 EXPECT_EQ(file_size, callback64.WaitForResult()); |
640 | 644 |
641 int total_bytes_written = 0; | 645 int total_bytes_written = 0; |
642 int total_bytes_read = 0; | 646 int total_bytes_read = 0; |
643 std::string data_read; | 647 std::string data_read; |
644 TestWriteReadCompletionCallback callback(stream.get(), &total_bytes_written, | 648 TestWriteReadCompletionCallback callback(stream.get(), &total_bytes_written, |
645 &total_bytes_read, &data_read); | 649 &total_bytes_read, &data_read); |
646 | 650 |
647 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); | 651 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); |
648 rv = stream->Write(buf.get(), buf->size(), callback.callback()); | 652 rv = stream->Write(buf.get(), buf->size(), callback.callback()); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
732 scoped_ptr<FileStream> stream( | 736 scoped_ptr<FileStream> stream( |
733 new FileStream(base::MessageLoopProxy::current())); | 737 new FileStream(base::MessageLoopProxy::current())); |
734 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | | 738 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | |
735 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; | 739 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; |
736 TestCompletionCallback open_callback; | 740 TestCompletionCallback open_callback; |
737 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); | 741 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); |
738 EXPECT_EQ(ERR_IO_PENDING, rv); | 742 EXPECT_EQ(ERR_IO_PENDING, rv); |
739 EXPECT_EQ(OK, open_callback.WaitForResult()); | 743 EXPECT_EQ(OK, open_callback.WaitForResult()); |
740 | 744 |
741 TestInt64CompletionCallback callback64; | 745 TestInt64CompletionCallback callback64; |
742 EXPECT_EQ(ERR_IO_PENDING, stream->Seek(FROM_END, 0, callback64.callback())); | 746 EXPECT_EQ(ERR_IO_PENDING, |
747 stream->Seek(base::File::FROM_END, 0, callback64.callback())); | |
743 EXPECT_EQ(file_size, callback64.WaitForResult()); | 748 EXPECT_EQ(file_size, callback64.WaitForResult()); |
744 | 749 |
745 int total_bytes_written = 0; | 750 int total_bytes_written = 0; |
746 TestWriteCloseCompletionCallback callback(stream.get(), &total_bytes_written); | 751 TestWriteCloseCompletionCallback callback(stream.get(), &total_bytes_written); |
747 | 752 |
748 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); | 753 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); |
749 rv = stream->Write(buf.get(), buf->size(), callback.callback()); | 754 rv = stream->Write(buf.get(), buf->size(), callback.callback()); |
750 if (rv == ERR_IO_PENDING) | 755 if (rv == ERR_IO_PENDING) |
751 total_bytes_written = callback.WaitForResult(); | 756 total_bytes_written = callback.WaitForResult(); |
752 EXPECT_LT(0, total_bytes_written); | 757 EXPECT_LT(0, total_bytes_written); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
878 total_bytes_read += rv; | 883 total_bytes_read += rv; |
879 data_read.append(buf->data(), rv); | 884 data_read.append(buf->data(), rv); |
880 } | 885 } |
881 EXPECT_EQ(file_size, total_bytes_read); | 886 EXPECT_EQ(file_size, total_bytes_read); |
882 } | 887 } |
883 #endif | 888 #endif |
884 | 889 |
885 } // namespace | 890 } // namespace |
886 | 891 |
887 } // namespace net | 892 } // namespace net |
OLD | NEW |