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

Side by Side Diff: net/base/file_stream_unittest.cc

Issue 1158923005: Use the exact-width integer types defined in <stdint.h> rather than (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweak comments. Exclude mime_sniffer*. Rebase. Created 5 years, 6 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 (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/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/files/file.h" 9 #include "base/files/file.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 rv = stream.Seek(base::File::FROM_BEGIN, 5, callback64.callback()); 170 rv = stream.Seek(base::File::FROM_BEGIN, 5, callback64.callback());
171 EXPECT_EQ(ERR_UNEXPECTED, callback64.GetResult(rv)); 171 EXPECT_EQ(ERR_UNEXPECTED, callback64.GetResult(rv));
172 172
173 // Try reading... 173 // Try reading...
174 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(10); 174 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(10);
175 rv = stream.Read(buf.get(), buf->size(), callback.callback()); 175 rv = stream.Read(buf.get(), buf->size(), callback.callback());
176 EXPECT_EQ(ERR_UNEXPECTED, callback.GetResult(rv)); 176 EXPECT_EQ(ERR_UNEXPECTED, callback.GetResult(rv));
177 } 177 }
178 178
179 TEST_F(FileStreamTest, Read) { 179 TEST_F(FileStreamTest, Read) {
180 int64 file_size; 180 int64_t file_size;
181 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 181 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
182 182
183 FileStream stream(base::MessageLoopProxy::current()); 183 FileStream stream(base::MessageLoopProxy::current());
184 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 184 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
185 base::File::FLAG_ASYNC; 185 base::File::FLAG_ASYNC;
186 TestCompletionCallback callback; 186 TestCompletionCallback callback;
187 int rv = stream.Open(temp_file_path(), flags, callback.callback()); 187 int rv = stream.Open(temp_file_path(), flags, callback.callback());
188 EXPECT_EQ(OK, callback.GetResult(rv)); 188 EXPECT_EQ(OK, callback.GetResult(rv));
189 189
190 int total_bytes_read = 0; 190 int total_bytes_read = 0;
191 191
192 std::string data_read; 192 std::string data_read;
193 for (;;) { 193 for (;;) {
194 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); 194 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4);
195 rv = stream.Read(buf.get(), buf->size(), callback.callback()); 195 rv = stream.Read(buf.get(), buf->size(), callback.callback());
196 rv = callback.GetResult(rv); 196 rv = callback.GetResult(rv);
197 EXPECT_LE(0, rv); 197 EXPECT_LE(0, rv);
198 if (rv <= 0) 198 if (rv <= 0)
199 break; 199 break;
200 total_bytes_read += rv; 200 total_bytes_read += rv;
201 data_read.append(buf->data(), rv); 201 data_read.append(buf->data(), rv);
202 } 202 }
203 EXPECT_EQ(file_size, total_bytes_read); 203 EXPECT_EQ(file_size, total_bytes_read);
204 EXPECT_EQ(kTestData, data_read); 204 EXPECT_EQ(kTestData, data_read);
205 } 205 }
206 206
207 TEST_F(FileStreamTest, Read_EarlyDelete) { 207 TEST_F(FileStreamTest, Read_EarlyDelete) {
208 int64 file_size; 208 int64_t file_size;
209 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 209 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
210 210
211 scoped_ptr<FileStream> stream( 211 scoped_ptr<FileStream> stream(
212 new FileStream(base::MessageLoopProxy::current())); 212 new FileStream(base::MessageLoopProxy::current()));
213 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 213 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
214 base::File::FLAG_ASYNC; 214 base::File::FLAG_ASYNC;
215 TestCompletionCallback callback; 215 TestCompletionCallback callback;
216 int rv = stream->Open(temp_file_path(), flags, callback.callback()); 216 int rv = stream->Open(temp_file_path(), flags, callback.callback());
217 EXPECT_EQ(ERR_IO_PENDING, rv); 217 EXPECT_EQ(ERR_IO_PENDING, rv);
218 EXPECT_EQ(OK, callback.WaitForResult()); 218 EXPECT_EQ(OK, callback.WaitForResult());
219 219
220 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); 220 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4);
221 rv = stream->Read(buf.get(), buf->size(), callback.callback()); 221 rv = stream->Read(buf.get(), buf->size(), callback.callback());
222 stream.reset(); // Delete instead of closing it. 222 stream.reset(); // Delete instead of closing it.
223 if (rv < 0) { 223 if (rv < 0) {
224 EXPECT_EQ(ERR_IO_PENDING, rv); 224 EXPECT_EQ(ERR_IO_PENDING, rv);
225 // The callback should not be called if the request is cancelled. 225 // The callback should not be called if the request is cancelled.
226 base::RunLoop().RunUntilIdle(); 226 base::RunLoop().RunUntilIdle();
227 EXPECT_FALSE(callback.have_result()); 227 EXPECT_FALSE(callback.have_result());
228 } else { 228 } else {
229 EXPECT_EQ(std::string(kTestData, rv), std::string(buf->data(), rv)); 229 EXPECT_EQ(std::string(kTestData, rv), std::string(buf->data(), rv));
230 } 230 }
231 } 231 }
232 232
233 TEST_F(FileStreamTest, Read_FromOffset) { 233 TEST_F(FileStreamTest, Read_FromOffset) {
234 int64 file_size; 234 int64_t file_size;
235 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 235 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
236 236
237 FileStream stream(base::MessageLoopProxy::current()); 237 FileStream stream(base::MessageLoopProxy::current());
238 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 238 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
239 base::File::FLAG_ASYNC; 239 base::File::FLAG_ASYNC;
240 TestCompletionCallback callback; 240 TestCompletionCallback callback;
241 int rv = stream.Open(temp_file_path(), flags, callback.callback()); 241 int rv = stream.Open(temp_file_path(), flags, callback.callback());
242 EXPECT_EQ(ERR_IO_PENDING, rv); 242 EXPECT_EQ(ERR_IO_PENDING, rv);
243 EXPECT_EQ(OK, callback.WaitForResult()); 243 EXPECT_EQ(OK, callback.WaitForResult());
244 244
245 TestInt64CompletionCallback callback64; 245 TestInt64CompletionCallback callback64;
246 const int64 kOffset = 3; 246 const int64_t kOffset = 3;
247 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback()); 247 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback());
248 ASSERT_EQ(ERR_IO_PENDING, rv); 248 ASSERT_EQ(ERR_IO_PENDING, rv);
249 int64 new_offset = callback64.WaitForResult(); 249 int64_t new_offset = callback64.WaitForResult();
250 EXPECT_EQ(kOffset, new_offset); 250 EXPECT_EQ(kOffset, new_offset);
251 251
252 int total_bytes_read = 0; 252 int total_bytes_read = 0;
253 253
254 std::string data_read; 254 std::string data_read;
255 for (;;) { 255 for (;;) {
256 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); 256 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4);
257 rv = stream.Read(buf.get(), buf->size(), callback.callback()); 257 rv = stream.Read(buf.get(), buf->size(), callback.callback());
258 if (rv == ERR_IO_PENDING) 258 if (rv == ERR_IO_PENDING)
259 rv = callback.WaitForResult(); 259 rv = callback.WaitForResult();
(...skipping 11 matching lines...) Expand all
271 FileStream stream(base::MessageLoopProxy::current()); 271 FileStream stream(base::MessageLoopProxy::current());
272 int flags = base::File::FLAG_OPEN | base::File::FLAG_ASYNC | 272 int flags = base::File::FLAG_OPEN | base::File::FLAG_ASYNC |
273 base::File::FLAG_READ; 273 base::File::FLAG_READ;
274 TestCompletionCallback callback; 274 TestCompletionCallback callback;
275 int rv = stream.Open(temp_file_path(), flags, callback.callback()); 275 int rv = stream.Open(temp_file_path(), flags, callback.callback());
276 EXPECT_EQ(ERR_IO_PENDING, rv); 276 EXPECT_EQ(ERR_IO_PENDING, rv);
277 EXPECT_EQ(OK, callback.WaitForResult()); 277 EXPECT_EQ(OK, callback.WaitForResult());
278 278
279 TestInt64CompletionCallback callback64; 279 TestInt64CompletionCallback callback64;
280 280
281 const int64 kOffset = 3; 281 const int64_t kOffset = 3;
282 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback()); 282 rv = stream.Seek(base::File::FROM_BEGIN, kOffset, callback64.callback());
283 ASSERT_EQ(ERR_IO_PENDING, rv); 283 ASSERT_EQ(ERR_IO_PENDING, rv);
284 int64 new_offset = callback64.WaitForResult(); 284 int64_t new_offset = callback64.WaitForResult();
285 EXPECT_EQ(kOffset, new_offset); 285 EXPECT_EQ(kOffset, new_offset);
286 286
287 rv = stream.Seek(base::File::FROM_CURRENT, kOffset, callback64.callback()); 287 rv = stream.Seek(base::File::FROM_CURRENT, kOffset, callback64.callback());
288 ASSERT_EQ(ERR_IO_PENDING, rv); 288 ASSERT_EQ(ERR_IO_PENDING, rv);
289 new_offset = callback64.WaitForResult(); 289 new_offset = callback64.WaitForResult();
290 EXPECT_EQ(2 * kOffset, new_offset); 290 EXPECT_EQ(2 * kOffset, new_offset);
291 291
292 rv = stream.Seek(base::File::FROM_CURRENT, -kOffset, callback64.callback()); 292 rv = stream.Seek(base::File::FROM_CURRENT, -kOffset, callback64.callback());
293 ASSERT_EQ(ERR_IO_PENDING, rv); 293 ASSERT_EQ(ERR_IO_PENDING, rv);
294 new_offset = callback64.WaitForResult(); 294 new_offset = callback64.WaitForResult();
295 EXPECT_EQ(kOffset, new_offset); 295 EXPECT_EQ(kOffset, new_offset);
296 296
297 const int kTestDataLen = arraysize(kTestData) - 1; 297 const int kTestDataLen = arraysize(kTestData) - 1;
298 298
299 rv = stream.Seek(base::File::FROM_END, -kTestDataLen, callback64.callback()); 299 rv = stream.Seek(base::File::FROM_END, -kTestDataLen, callback64.callback());
300 ASSERT_EQ(ERR_IO_PENDING, rv); 300 ASSERT_EQ(ERR_IO_PENDING, rv);
301 new_offset = callback64.WaitForResult(); 301 new_offset = callback64.WaitForResult();
302 EXPECT_EQ(0, new_offset); 302 EXPECT_EQ(0, new_offset);
303 } 303 }
304 304
305 TEST_F(FileStreamTest, Write) { 305 TEST_F(FileStreamTest, Write) {
306 FileStream stream(base::MessageLoopProxy::current()); 306 FileStream stream(base::MessageLoopProxy::current());
307 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE | 307 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE |
308 base::File::FLAG_ASYNC; 308 base::File::FLAG_ASYNC;
309 TestCompletionCallback callback; 309 TestCompletionCallback callback;
310 int rv = stream.Open(temp_file_path(), flags, callback.callback()); 310 int rv = stream.Open(temp_file_path(), flags, callback.callback());
311 EXPECT_EQ(OK, callback.GetResult(rv)); 311 EXPECT_EQ(OK, callback.GetResult(rv));
312 312
313 int64 file_size; 313 int64_t file_size;
314 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 314 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
315 EXPECT_EQ(0, file_size); 315 EXPECT_EQ(0, file_size);
316 316
317 scoped_refptr<IOBuffer> buf = CreateTestDataBuffer(); 317 scoped_refptr<IOBuffer> buf = CreateTestDataBuffer();
318 rv = stream.Write(buf.get(), kTestDataSize, callback.callback()); 318 rv = stream.Write(buf.get(), kTestDataSize, callback.callback());
319 rv = callback.GetResult(rv); 319 rv = callback.GetResult(rv);
320 EXPECT_EQ(kTestDataSize, rv); 320 EXPECT_EQ(kTestDataSize, rv);
321 321
322 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 322 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
323 EXPECT_EQ(kTestDataSize, file_size); 323 EXPECT_EQ(kTestDataSize, file_size);
324 324
325 std::string data_read; 325 std::string data_read;
326 EXPECT_TRUE(base::ReadFileToString(temp_file_path(), &data_read)); 326 EXPECT_TRUE(base::ReadFileToString(temp_file_path(), &data_read));
327 EXPECT_EQ(kTestData, data_read); 327 EXPECT_EQ(kTestData, data_read);
328 } 328 }
329 329
330 TEST_F(FileStreamTest, Write_EarlyDelete) { 330 TEST_F(FileStreamTest, Write_EarlyDelete) {
331 scoped_ptr<FileStream> stream( 331 scoped_ptr<FileStream> stream(
332 new FileStream(base::MessageLoopProxy::current())); 332 new FileStream(base::MessageLoopProxy::current()));
333 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE | 333 int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE |
334 base::File::FLAG_ASYNC; 334 base::File::FLAG_ASYNC;
335 TestCompletionCallback callback; 335 TestCompletionCallback callback;
336 int rv = stream->Open(temp_file_path(), flags, callback.callback()); 336 int rv = stream->Open(temp_file_path(), flags, callback.callback());
337 EXPECT_EQ(ERR_IO_PENDING, rv); 337 EXPECT_EQ(ERR_IO_PENDING, rv);
338 EXPECT_EQ(OK, callback.WaitForResult()); 338 EXPECT_EQ(OK, callback.WaitForResult());
339 339
340 int64 file_size; 340 int64_t file_size;
341 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 341 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
342 EXPECT_EQ(0, file_size); 342 EXPECT_EQ(0, file_size);
343 343
344 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); 344 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer();
345 rv = stream->Write(buf.get(), buf->size(), callback.callback()); 345 rv = stream->Write(buf.get(), buf->size(), callback.callback());
346 stream.reset(); 346 stream.reset();
347 if (rv < 0) { 347 if (rv < 0) {
348 EXPECT_EQ(ERR_IO_PENDING, rv); 348 EXPECT_EQ(ERR_IO_PENDING, rv);
349 // The callback should not be called if the request is cancelled. 349 // The callback should not be called if the request is cancelled.
350 base::RunLoop().RunUntilIdle(); 350 base::RunLoop().RunUntilIdle();
351 EXPECT_FALSE(callback.have_result()); 351 EXPECT_FALSE(callback.have_result());
352 } else { 352 } else {
353 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 353 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
354 EXPECT_EQ(file_size, rv); 354 EXPECT_EQ(file_size, rv);
355 } 355 }
356 } 356 }
357 357
358 TEST_F(FileStreamTest, Write_FromOffset) { 358 TEST_F(FileStreamTest, Write_FromOffset) {
359 int64 file_size; 359 int64_t file_size;
360 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 360 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
361 361
362 FileStream stream(base::MessageLoopProxy::current()); 362 FileStream stream(base::MessageLoopProxy::current());
363 int flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE | 363 int flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE |
364 base::File::FLAG_ASYNC; 364 base::File::FLAG_ASYNC;
365 TestCompletionCallback callback; 365 TestCompletionCallback callback;
366 int rv = stream.Open(temp_file_path(), flags, callback.callback()); 366 int rv = stream.Open(temp_file_path(), flags, callback.callback());
367 EXPECT_EQ(ERR_IO_PENDING, rv); 367 EXPECT_EQ(ERR_IO_PENDING, rv);
368 EXPECT_EQ(OK, callback.WaitForResult()); 368 EXPECT_EQ(OK, callback.WaitForResult());
369 369
370 TestInt64CompletionCallback callback64; 370 TestInt64CompletionCallback callback64;
371 const int64 kOffset = 0; 371 const int64_t kOffset = 0;
372 rv = stream.Seek(base::File::FROM_END, kOffset, callback64.callback()); 372 rv = stream.Seek(base::File::FROM_END, kOffset, callback64.callback());
373 ASSERT_EQ(ERR_IO_PENDING, rv); 373 ASSERT_EQ(ERR_IO_PENDING, rv);
374 int64 new_offset = callback64.WaitForResult(); 374 int64_t new_offset = callback64.WaitForResult();
375 EXPECT_EQ(kTestDataSize, new_offset); 375 EXPECT_EQ(kTestDataSize, new_offset);
376 376
377 int total_bytes_written = 0; 377 int total_bytes_written = 0;
378 378
379 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); 379 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer();
380 scoped_refptr<DrainableIOBuffer> drainable = 380 scoped_refptr<DrainableIOBuffer> drainable =
381 new DrainableIOBuffer(buf.get(), buf->size()); 381 new DrainableIOBuffer(buf.get(), buf->size());
382 while (total_bytes_written != kTestDataSize) { 382 while (total_bytes_written != kTestDataSize) {
383 rv = stream.Write(drainable.get(), drainable->BytesRemaining(), 383 rv = stream.Write(drainable.get(), drainable->BytesRemaining(),
384 callback.callback()); 384 callback.callback());
385 if (rv == ERR_IO_PENDING) 385 if (rv == ERR_IO_PENDING)
386 rv = callback.WaitForResult(); 386 rv = callback.WaitForResult();
387 EXPECT_LT(0, rv); 387 EXPECT_LT(0, rv);
388 if (rv <= 0) 388 if (rv <= 0)
389 break; 389 break;
390 drainable->DidConsume(rv); 390 drainable->DidConsume(rv);
391 total_bytes_written += rv; 391 total_bytes_written += rv;
392 } 392 }
393 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 393 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
394 EXPECT_EQ(file_size, kTestDataSize * 2); 394 EXPECT_EQ(file_size, kTestDataSize * 2);
395 } 395 }
396 396
397 TEST_F(FileStreamTest, BasicReadWrite) { 397 TEST_F(FileStreamTest, BasicReadWrite) {
398 int64 file_size; 398 int64_t file_size;
399 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 399 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
400 400
401 scoped_ptr<FileStream> stream( 401 scoped_ptr<FileStream> stream(
402 new FileStream(base::MessageLoopProxy::current())); 402 new FileStream(base::MessageLoopProxy::current()));
403 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 403 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
404 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; 404 base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
405 TestCompletionCallback callback; 405 TestCompletionCallback callback;
406 int rv = stream->Open(temp_file_path(), flags, callback.callback()); 406 int rv = stream->Open(temp_file_path(), flags, callback.callback());
407 EXPECT_EQ(ERR_IO_PENDING, rv); 407 EXPECT_EQ(ERR_IO_PENDING, rv);
408 EXPECT_EQ(OK, callback.WaitForResult()); 408 EXPECT_EQ(OK, callback.WaitForResult());
409 409
410 int64 total_bytes_read = 0; 410 int64_t total_bytes_read = 0;
411 411
412 std::string data_read; 412 std::string data_read;
413 for (;;) { 413 for (;;) {
414 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4); 414 scoped_refptr<IOBufferWithSize> buf = new IOBufferWithSize(4);
415 rv = stream->Read(buf.get(), buf->size(), callback.callback()); 415 rv = stream->Read(buf.get(), buf->size(), callback.callback());
416 if (rv == ERR_IO_PENDING) 416 if (rv == ERR_IO_PENDING)
417 rv = callback.WaitForResult(); 417 rv = callback.WaitForResult();
418 EXPECT_LE(0, rv); 418 EXPECT_LE(0, rv);
419 if (rv <= 0) 419 if (rv <= 0)
420 break; 420 break;
(...skipping 20 matching lines...) Expand all
441 total_bytes_written += rv; 441 total_bytes_written += rv;
442 } 442 }
443 443
444 stream.reset(); 444 stream.reset();
445 445
446 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 446 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
447 EXPECT_EQ(kTestDataSize * 2, file_size); 447 EXPECT_EQ(kTestDataSize * 2, file_size);
448 } 448 }
449 449
450 TEST_F(FileStreamTest, BasicWriteRead) { 450 TEST_F(FileStreamTest, BasicWriteRead) {
451 int64 file_size; 451 int64_t file_size;
452 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 452 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
453 453
454 scoped_ptr<FileStream> stream( 454 scoped_ptr<FileStream> stream(
455 new FileStream(base::MessageLoopProxy::current())); 455 new FileStream(base::MessageLoopProxy::current()));
456 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 456 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
457 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; 457 base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
458 TestCompletionCallback callback; 458 TestCompletionCallback callback;
459 int rv = stream->Open(temp_file_path(), flags, callback.callback()); 459 int rv = stream->Open(temp_file_path(), flags, callback.callback());
460 EXPECT_EQ(ERR_IO_PENDING, rv); 460 EXPECT_EQ(ERR_IO_PENDING, rv);
461 EXPECT_EQ(OK, callback.WaitForResult()); 461 EXPECT_EQ(OK, callback.WaitForResult());
462 462
463 TestInt64CompletionCallback callback64; 463 TestInt64CompletionCallback callback64;
464 rv = stream->Seek(base::File::FROM_END, 0, callback64.callback()); 464 rv = stream->Seek(base::File::FROM_END, 0, callback64.callback());
465 ASSERT_EQ(ERR_IO_PENDING, rv); 465 ASSERT_EQ(ERR_IO_PENDING, rv);
466 int64 offset = callback64.WaitForResult(); 466 int64_t offset = callback64.WaitForResult();
467 EXPECT_EQ(offset, file_size); 467 EXPECT_EQ(offset, file_size);
468 468
469 int total_bytes_written = 0; 469 int total_bytes_written = 0;
470 470
471 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer(); 471 scoped_refptr<IOBufferWithSize> buf = CreateTestDataBuffer();
472 scoped_refptr<DrainableIOBuffer> drainable = 472 scoped_refptr<DrainableIOBuffer> drainable =
473 new DrainableIOBuffer(buf.get(), buf->size()); 473 new DrainableIOBuffer(buf.get(), buf->size());
474 while (total_bytes_written != kTestDataSize) { 474 while (total_bytes_written != kTestDataSize) {
475 rv = stream->Write(drainable.get(), drainable->BytesRemaining(), 475 rv = stream->Write(drainable.get(), drainable->BytesRemaining(),
476 callback.callback()); 476 callback.callback());
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 int* total_bytes_read_; 612 int* total_bytes_read_;
613 std::string* data_read_; 613 std::string* data_read_;
614 const CompletionCallback callback_; 614 const CompletionCallback callback_;
615 scoped_refptr<IOBufferWithSize> test_data_; 615 scoped_refptr<IOBufferWithSize> test_data_;
616 scoped_refptr<DrainableIOBuffer> drainable_; 616 scoped_refptr<DrainableIOBuffer> drainable_;
617 617
618 DISALLOW_COPY_AND_ASSIGN(TestWriteReadCompletionCallback); 618 DISALLOW_COPY_AND_ASSIGN(TestWriteReadCompletionCallback);
619 }; 619 };
620 620
621 TEST_F(FileStreamTest, WriteRead) { 621 TEST_F(FileStreamTest, WriteRead) {
622 int64 file_size; 622 int64_t file_size;
623 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 623 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
624 624
625 scoped_ptr<FileStream> stream( 625 scoped_ptr<FileStream> stream(
626 new FileStream(base::MessageLoopProxy::current())); 626 new FileStream(base::MessageLoopProxy::current()));
627 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 627 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
628 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; 628 base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
629 TestCompletionCallback open_callback; 629 TestCompletionCallback open_callback;
630 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); 630 int rv = stream->Open(temp_file_path(), flags, open_callback.callback());
631 EXPECT_EQ(ERR_IO_PENDING, rv); 631 EXPECT_EQ(ERR_IO_PENDING, rv);
632 EXPECT_EQ(OK, open_callback.WaitForResult()); 632 EXPECT_EQ(OK, open_callback.WaitForResult());
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 FileStream* stream_; 719 FileStream* stream_;
720 int* total_bytes_written_; 720 int* total_bytes_written_;
721 const CompletionCallback callback_; 721 const CompletionCallback callback_;
722 scoped_refptr<IOBufferWithSize> test_data_; 722 scoped_refptr<IOBufferWithSize> test_data_;
723 scoped_refptr<DrainableIOBuffer> drainable_; 723 scoped_refptr<DrainableIOBuffer> drainable_;
724 724
725 DISALLOW_COPY_AND_ASSIGN(TestWriteCloseCompletionCallback); 725 DISALLOW_COPY_AND_ASSIGN(TestWriteCloseCompletionCallback);
726 }; 726 };
727 727
728 TEST_F(FileStreamTest, WriteClose) { 728 TEST_F(FileStreamTest, WriteClose) {
729 int64 file_size; 729 int64_t file_size;
730 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size)); 730 EXPECT_TRUE(base::GetFileSize(temp_file_path(), &file_size));
731 731
732 scoped_ptr<FileStream> stream( 732 scoped_ptr<FileStream> stream(
733 new FileStream(base::MessageLoopProxy::current())); 733 new FileStream(base::MessageLoopProxy::current()));
734 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 734 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
735 base::File::FLAG_WRITE | base::File::FLAG_ASYNC; 735 base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
736 TestCompletionCallback open_callback; 736 TestCompletionCallback open_callback;
737 int rv = stream->Open(temp_file_path(), flags, open_callback.callback()); 737 int rv = stream->Open(temp_file_path(), flags, open_callback.callback());
738 EXPECT_EQ(ERR_IO_PENDING, rv); 738 EXPECT_EQ(ERR_IO_PENDING, rv);
739 EXPECT_EQ(OK, open_callback.WaitForResult()); 739 EXPECT_EQ(OK, open_callback.WaitForResult());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 786
787 // open_callback won't be called. 787 // open_callback won't be called.
788 base::RunLoop().RunUntilIdle(); 788 base::RunLoop().RunUntilIdle();
789 EXPECT_FALSE(open_callback.have_result()); 789 EXPECT_FALSE(open_callback.have_result());
790 base::ThreadRestrictions::SetIOAllowed(prev); 790 base::ThreadRestrictions::SetIOAllowed(prev);
791 } 791 }
792 792
793 // Verify that Write() errors are mapped correctly. 793 // Verify that Write() errors are mapped correctly.
794 TEST_F(FileStreamTest, WriteError) { 794 TEST_F(FileStreamTest, WriteError) {
795 // Try opening file as read-only and then writing to it using FileStream. 795 // Try opening file as read-only and then writing to it using FileStream.
796 uint32 flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 796 uint32_t flags =
797 base::File::FLAG_ASYNC; 797 base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_ASYNC;
798 798
799 base::File file(temp_file_path(), flags); 799 base::File file(temp_file_path(), flags);
800 ASSERT_TRUE(file.IsValid()); 800 ASSERT_TRUE(file.IsValid());
801 801
802 scoped_ptr<FileStream> stream( 802 scoped_ptr<FileStream> stream(
803 new FileStream(file.Pass(), base::MessageLoopProxy::current())); 803 new FileStream(file.Pass(), base::MessageLoopProxy::current()));
804 804
805 scoped_refptr<IOBuffer> buf = new IOBuffer(1); 805 scoped_refptr<IOBuffer> buf = new IOBuffer(1);
806 buf->data()[0] = 0; 806 buf->data()[0] = 0;
807 807
808 TestCompletionCallback callback; 808 TestCompletionCallback callback;
809 int rv = stream->Write(buf.get(), 1, callback.callback()); 809 int rv = stream->Write(buf.get(), 1, callback.callback());
810 if (rv == ERR_IO_PENDING) 810 if (rv == ERR_IO_PENDING)
811 rv = callback.WaitForResult(); 811 rv = callback.WaitForResult();
812 EXPECT_LT(rv, 0); 812 EXPECT_LT(rv, 0);
813 813
814 stream.reset(); 814 stream.reset();
815 base::RunLoop().RunUntilIdle(); 815 base::RunLoop().RunUntilIdle();
816 } 816 }
817 817
818 // Verify that Read() errors are mapped correctly. 818 // Verify that Read() errors are mapped correctly.
819 TEST_F(FileStreamTest, ReadError) { 819 TEST_F(FileStreamTest, ReadError) {
820 // Try opening file for write and then reading from it using FileStream. 820 // Try opening file for write and then reading from it using FileStream.
821 uint32 flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE | 821 uint32_t flags =
822 base::File::FLAG_ASYNC; 822 base::File::FLAG_OPEN | base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
823 823
824 base::File file(temp_file_path(), flags); 824 base::File file(temp_file_path(), flags);
825 ASSERT_TRUE(file.IsValid()); 825 ASSERT_TRUE(file.IsValid());
826 826
827 scoped_ptr<FileStream> stream( 827 scoped_ptr<FileStream> stream(
828 new FileStream(file.Pass(), base::MessageLoopProxy::current())); 828 new FileStream(file.Pass(), base::MessageLoopProxy::current()));
829 829
830 scoped_refptr<IOBuffer> buf = new IOBuffer(1); 830 scoped_refptr<IOBuffer> buf = new IOBuffer(1);
831 TestCompletionCallback callback; 831 TestCompletionCallback callback;
832 int rv = stream->Read(buf.get(), 1, callback.callback()); 832 int rv = stream->Read(buf.get(), 1, callback.callback());
(...skipping 13 matching lines...) Expand all
846 test_dir = test_dir.AppendASCII("data"); 846 test_dir = test_dir.AppendASCII("data");
847 test_dir = test_dir.AppendASCII("file_stream_unittest"); 847 test_dir = test_dir.AppendASCII("file_stream_unittest");
848 ASSERT_TRUE(base::PathExists(test_dir)); 848 ASSERT_TRUE(base::PathExists(test_dir));
849 base::FilePath image_file = test_dir.Append(FILE_PATH_LITERAL("red.png")); 849 base::FilePath image_file = test_dir.Append(FILE_PATH_LITERAL("red.png"));
850 850
851 // Insert the image into MediaStore. MediaStore will do some conversions, and 851 // Insert the image into MediaStore. MediaStore will do some conversions, and
852 // return the content URI. 852 // return the content URI.
853 base::FilePath path = base::InsertImageIntoMediaStore(image_file); 853 base::FilePath path = base::InsertImageIntoMediaStore(image_file);
854 EXPECT_TRUE(path.IsContentUri()); 854 EXPECT_TRUE(path.IsContentUri());
855 EXPECT_TRUE(base::PathExists(path)); 855 EXPECT_TRUE(base::PathExists(path));
856 int64 file_size; 856 int64_t file_size;
857 EXPECT_TRUE(base::GetFileSize(path, &file_size)); 857 EXPECT_TRUE(base::GetFileSize(path, &file_size));
858 EXPECT_LT(0, file_size); 858 EXPECT_LT(0, file_size);
859 859
860 FileStream stream(base::MessageLoopProxy::current()); 860 FileStream stream(base::MessageLoopProxy::current());
861 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ | 861 int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
862 base::File::FLAG_ASYNC; 862 base::File::FLAG_ASYNC;
863 TestCompletionCallback callback; 863 TestCompletionCallback callback;
864 int rv = stream.Open(path, flags, callback.callback()); 864 int rv = stream.Open(path, flags, callback.callback());
865 EXPECT_EQ(ERR_IO_PENDING, rv); 865 EXPECT_EQ(ERR_IO_PENDING, rv);
866 EXPECT_EQ(OK, callback.WaitForResult()); 866 EXPECT_EQ(OK, callback.WaitForResult());
(...skipping 12 matching lines...) Expand all
879 total_bytes_read += rv; 879 total_bytes_read += rv;
880 data_read.append(buf->data(), rv); 880 data_read.append(buf->data(), rv);
881 } 881 }
882 EXPECT_EQ(file_size, total_bytes_read); 882 EXPECT_EQ(file_size, total_bytes_read);
883 } 883 }
884 #endif 884 #endif
885 885
886 } // namespace 886 } // namespace
887 887
888 } // namespace net 888 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698