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

Side by Side Diff: ppapi/tests/test_file_io.cc

Issue 6410064: Fix FileIO and FileRef PPAPI tests to match changes in (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed long line Created 9 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/test/ui/ppapi_uitest.cc ('k') | ppapi/tests/test_file_ref.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "ppapi/tests/test_file_io.h" 5 #include "ppapi/tests/test_file_io.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include "ppapi/c/pp_errors.h" 10 #include "ppapi/c/pp_errors.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 TestCompletionCallback callback; 94 TestCompletionCallback callback;
95 95
96 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 96 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
97 pp::FileRef_Dev file_ref(file_system, "/file_open"); 97 pp::FileRef_Dev file_ref(file_system, "/file_open");
98 int32_t rv = file_system.Open(1024, callback); 98 int32_t rv = file_system.Open(1024, callback);
99 if (rv == PP_ERROR_WOULDBLOCK) 99 if (rv == PP_ERROR_WOULDBLOCK)
100 rv = callback.WaitForResult(); 100 rv = callback.WaitForResult();
101 if (rv != PP_OK) 101 if (rv != PP_OK)
102 return ReportError("FileSystem::Open", rv); 102 return ReportError("FileSystem::Open", rv);
103 103
104 pp::FileIO_Dev file_io; 104 pp::FileIO_Dev file_io(instance_);
105 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback); 105 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback);
106 if (rv == PP_ERROR_WOULDBLOCK) 106 if (rv == PP_ERROR_WOULDBLOCK)
107 rv = callback.WaitForResult(); 107 rv = callback.WaitForResult();
108 if (rv != PP_OK) 108 if (rv != PP_OK)
109 return ReportError("FileIO::Open", rv); 109 return ReportError("FileIO::Open", rv);
110 110
111 // Try opening a file that doesn't exist. 111 // Try opening a file that doesn't exist.
112 pp::FileRef_Dev nonexistent_file_ref(file_system, "/nonexistent_file"); 112 pp::FileRef_Dev nonexistent_file_ref(file_system, "/nonexistent_file");
113 pp::FileIO_Dev nonexistent_file_io; 113 pp::FileIO_Dev nonexistent_file_io(instance_);
114 rv = nonexistent_file_io.Open( 114 rv = nonexistent_file_io.Open(
115 nonexistent_file_ref, PP_FILEOPENFLAG_READ, callback); 115 nonexistent_file_ref, PP_FILEOPENFLAG_READ, callback);
116 if (rv == PP_ERROR_WOULDBLOCK) 116 if (rv == PP_ERROR_WOULDBLOCK)
117 rv = callback.WaitForResult(); 117 rv = callback.WaitForResult();
118 if (rv != PP_ERROR_FILENOTFOUND) 118 if (rv != PP_ERROR_FILENOTFOUND)
119 return ReportError("FileIO::Open", rv); 119 return ReportError("FileIO::Open", rv);
120 120
121 PASS(); 121 PASS();
122 } 122 }
123 123
124 std::string TestFileIO::TestReadWriteSetLength() { 124 std::string TestFileIO::TestReadWriteSetLength() {
125 TestCompletionCallback callback; 125 TestCompletionCallback callback;
126 126
127 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 127 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
128 pp::FileRef_Dev file_ref(file_system, "/file_read_write_setlength"); 128 pp::FileRef_Dev file_ref(file_system, "/file_read_write_setlength");
129 int32_t rv = file_system.Open(1024, callback); 129 int32_t rv = file_system.Open(1024, callback);
130 if (rv == PP_ERROR_WOULDBLOCK) 130 if (rv == PP_ERROR_WOULDBLOCK)
131 rv = callback.WaitForResult(); 131 rv = callback.WaitForResult();
132 if (rv != PP_OK) 132 if (rv != PP_OK)
133 return ReportError("FileSystem::Open", rv); 133 return ReportError("FileSystem::Open", rv);
134 134
135 pp::FileIO_Dev file_io; 135 pp::FileIO_Dev file_io(instance_);
136 rv = file_io.Open(file_ref, 136 rv = file_io.Open(file_ref,
137 PP_FILEOPENFLAG_CREATE | 137 PP_FILEOPENFLAG_CREATE |
138 PP_FILEOPENFLAG_READ | 138 PP_FILEOPENFLAG_READ |
139 PP_FILEOPENFLAG_WRITE, 139 PP_FILEOPENFLAG_WRITE,
140 callback); 140 callback);
141 if (rv == PP_ERROR_WOULDBLOCK) 141 if (rv == PP_ERROR_WOULDBLOCK)
142 rv = callback.WaitForResult(); 142 rv = callback.WaitForResult();
143 if (rv != PP_OK) 143 if (rv != PP_OK)
144 return ReportError("FileIO::Open", rv); 144 return ReportError("FileIO::Open", rv);
145 145
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 TestCompletionCallback callback; 239 TestCompletionCallback callback;
240 240
241 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 241 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
242 int32_t rv = file_system.Open(1024, callback); 242 int32_t rv = file_system.Open(1024, callback);
243 if (rv == PP_ERROR_WOULDBLOCK) 243 if (rv == PP_ERROR_WOULDBLOCK)
244 rv = callback.WaitForResult(); 244 rv = callback.WaitForResult();
245 if (rv != PP_OK) 245 if (rv != PP_OK)
246 return ReportError("FileSystem::Open", rv); 246 return ReportError("FileSystem::Open", rv);
247 247
248 pp::FileRef_Dev file_ref(file_system, "/file_touch"); 248 pp::FileRef_Dev file_ref(file_system, "/file_touch");
249 pp::FileIO_Dev file_io; 249 pp::FileIO_Dev file_io(instance_);
250 rv = file_io.Open(file_ref, 250 rv = file_io.Open(file_ref,
251 PP_FILEOPENFLAG_CREATE | PP_FILEOPENFLAG_WRITE, 251 PP_FILEOPENFLAG_CREATE | PP_FILEOPENFLAG_WRITE,
252 callback); 252 callback);
253 if (rv == PP_ERROR_WOULDBLOCK) 253 if (rv == PP_ERROR_WOULDBLOCK)
254 rv = callback.WaitForResult(); 254 rv = callback.WaitForResult();
255 if (rv != PP_OK) 255 if (rv != PP_OK)
256 return ReportError("FileIO::Open", rv); 256 return ReportError("FileIO::Open", rv);
257 257
258 // Write some data to have a non-zero file size. 258 // Write some data to have a non-zero file size.
259 rv = file_io.Write(0, "test", 4, callback); 259 rv = file_io.Write(0, "test", 4, callback);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 302 pp::FileSystem_Dev file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
303 pp::FileRef_Dev file_ref(file_system, "/file_abort_calls"); 303 pp::FileRef_Dev file_ref(file_system, "/file_abort_calls");
304 int32_t rv = file_system.Open(1024, callback); 304 int32_t rv = file_system.Open(1024, callback);
305 if (rv == PP_ERROR_WOULDBLOCK) 305 if (rv == PP_ERROR_WOULDBLOCK)
306 rv = callback.WaitForResult(); 306 rv = callback.WaitForResult();
307 if (rv != PP_OK) 307 if (rv != PP_OK)
308 return ReportError("FileSystem::Open", rv); 308 return ReportError("FileSystem::Open", rv);
309 309
310 // First, create a file which to do ops on. 310 // First, create a file which to do ops on.
311 { 311 {
312 pp::FileIO_Dev file_io; 312 pp::FileIO_Dev file_io(instance_);
313 rv = file_io.Open(file_ref, 313 rv = file_io.Open(file_ref,
314 PP_FILEOPENFLAG_CREATE | PP_FILEOPENFLAG_WRITE, 314 PP_FILEOPENFLAG_CREATE | PP_FILEOPENFLAG_WRITE,
315 callback); 315 callback);
316 if (rv == PP_ERROR_WOULDBLOCK) 316 if (rv == PP_ERROR_WOULDBLOCK)
317 rv = callback.WaitForResult(); 317 rv = callback.WaitForResult();
318 if (rv != PP_OK) 318 if (rv != PP_OK)
319 return ReportError("FileIO::Open", rv); 319 return ReportError("FileIO::Open", rv);
320 320
321 // N.B.: Should write at least 3 bytes. 321 // N.B.: Should write at least 3 bytes.
322 rv = WriteEntireBuffer(&file_io, 0, "foobarbazquux"); 322 rv = WriteEntireBuffer(&file_io, 0, "foobarbazquux");
323 if (rv != PP_OK) 323 if (rv != PP_OK)
324 return ReportError("FileIO::Write", rv); 324 return ReportError("FileIO::Write", rv);
325 } 325 }
326 326
327 // Abort |Open()|. 327 // Abort |Open()|.
328 { 328 {
329 callback.reset_run_count(); 329 callback.reset_run_count();
330 rv = pp::FileIO_Dev().Open(file_ref, PP_FILEOPENFLAG_READ, callback); 330 rv = pp::FileIO_Dev(instance_)
331 .Open(file_ref, PP_FILEOPENFLAG_READ,callback);
331 if (callback.run_count() > 0) 332 if (callback.run_count() > 0)
332 return "FileIO::Open ran callback synchronously."; 333 return "FileIO::Open ran callback synchronously.";
333 if (rv == PP_ERROR_WOULDBLOCK) { 334 if (rv == PP_ERROR_WOULDBLOCK) {
334 rv = callback.WaitForResult(); 335 rv = callback.WaitForResult();
335 if (rv != PP_ERROR_ABORTED) 336 if (rv != PP_ERROR_ABORTED)
336 return "FileIO::Open not aborted."; 337 return "FileIO::Open not aborted.";
337 } else if (rv != PP_OK) { 338 } else if (rv != PP_OK) {
338 return ReportError("FileIO::Open", rv); 339 return ReportError("FileIO::Open", rv);
339 } 340 }
340 } 341 }
341 342
342 // Abort |Query()|. 343 // Abort |Query()|.
343 { 344 {
344 PP_FileInfo_Dev info = { 0 }; 345 PP_FileInfo_Dev info = { 0 };
345 { 346 {
346 pp::FileIO_Dev file_io; 347 pp::FileIO_Dev file_io(instance_);
347 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback); 348 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback);
348 if (rv == PP_ERROR_WOULDBLOCK) 349 if (rv == PP_ERROR_WOULDBLOCK)
349 rv = callback.WaitForResult(); 350 rv = callback.WaitForResult();
350 if (rv != PP_OK) 351 if (rv != PP_OK)
351 return ReportError("FileIO::Open", rv); 352 return ReportError("FileIO::Open", rv);
352 353
353 callback.reset_run_count(); 354 callback.reset_run_count();
354 rv = file_io.Query(&info, callback); 355 rv = file_io.Query(&info, callback);
355 } // Destroy |file_io|. 356 } // Destroy |file_io|.
356 if (rv == PP_ERROR_WOULDBLOCK) { 357 if (rv == PP_ERROR_WOULDBLOCK) {
357 // Save a copy and make sure |info| doesn't get written to. 358 // Save a copy and make sure |info| doesn't get written to.
358 PP_FileInfo_Dev info_copy; 359 PP_FileInfo_Dev info_copy;
359 memcpy(&info_copy, &info, sizeof(info)); 360 memcpy(&info_copy, &info, sizeof(info));
360 rv = callback.WaitForResult(); 361 rv = callback.WaitForResult();
361 if (rv != PP_ERROR_ABORTED) 362 if (rv != PP_ERROR_ABORTED)
362 return "FileIO::Query not aborted."; 363 return "FileIO::Query not aborted.";
363 if (memcmp(&info_copy, &info, sizeof(info)) != 0) 364 if (memcmp(&info_copy, &info, sizeof(info)) != 0)
364 return "FileIO::Query wrote data after resource destruction."; 365 return "FileIO::Query wrote data after resource destruction.";
365 } else if (rv != PP_OK) { 366 } else if (rv != PP_OK) {
366 return ReportError("FileIO::Query", rv); 367 return ReportError("FileIO::Query", rv);
367 } 368 }
368 } 369 }
369 370
370 // Abort |Touch()|. 371 // Abort |Touch()|.
371 { 372 {
372 { 373 {
373 pp::FileIO_Dev file_io; 374 pp::FileIO_Dev file_io(instance_);
374 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_WRITE, callback); 375 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_WRITE, callback);
375 if (rv == PP_ERROR_WOULDBLOCK) 376 if (rv == PP_ERROR_WOULDBLOCK)
376 rv = callback.WaitForResult(); 377 rv = callback.WaitForResult();
377 if (rv != PP_OK) 378 if (rv != PP_OK)
378 return ReportError("FileIO::Open", rv); 379 return ReportError("FileIO::Open", rv);
379 380
380 callback.reset_run_count(); 381 callback.reset_run_count();
381 rv = file_io.Touch(0, 0, callback); 382 rv = file_io.Touch(0, 0, callback);
382 } // Destroy |file_io|. 383 } // Destroy |file_io|.
383 if (rv == PP_ERROR_WOULDBLOCK) { 384 if (rv == PP_ERROR_WOULDBLOCK) {
384 rv = callback.WaitForResult(); 385 rv = callback.WaitForResult();
385 if (rv != PP_ERROR_ABORTED) 386 if (rv != PP_ERROR_ABORTED)
386 return "FileIO::Touch not aborted."; 387 return "FileIO::Touch not aborted.";
387 } else if (rv != PP_OK) { 388 } else if (rv != PP_OK) {
388 return ReportError("FileIO::Touch", rv); 389 return ReportError("FileIO::Touch", rv);
389 } 390 }
390 } 391 }
391 392
392 // Abort |Read()|. 393 // Abort |Read()|.
393 { 394 {
394 char buf[3] = { 0 }; 395 char buf[3] = { 0 };
395 { 396 {
396 pp::FileIO_Dev file_io; 397 pp::FileIO_Dev file_io(instance_);
397 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback); 398 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback);
398 if (rv == PP_ERROR_WOULDBLOCK) 399 if (rv == PP_ERROR_WOULDBLOCK)
399 rv = callback.WaitForResult(); 400 rv = callback.WaitForResult();
400 if (rv != PP_OK) 401 if (rv != PP_OK)
401 return ReportError("FileIO::Open", rv); 402 return ReportError("FileIO::Open", rv);
402 403
403 callback.reset_run_count(); 404 callback.reset_run_count();
404 rv = file_io.Read(0, buf, sizeof(buf), callback); 405 rv = file_io.Read(0, buf, sizeof(buf), callback);
405 } // Destroy |file_io|. 406 } // Destroy |file_io|.
406 if (rv == PP_ERROR_WOULDBLOCK) { 407 if (rv == PP_ERROR_WOULDBLOCK) {
407 // Save a copy and make sure |buf| doesn't get written to. 408 // Save a copy and make sure |buf| doesn't get written to.
408 char buf_copy[3]; 409 char buf_copy[3];
409 memcpy(&buf_copy, &buf, sizeof(buf)); 410 memcpy(&buf_copy, &buf, sizeof(buf));
410 rv = callback.WaitForResult(); 411 rv = callback.WaitForResult();
411 if (rv != PP_ERROR_ABORTED) 412 if (rv != PP_ERROR_ABORTED)
412 return "FileIO::Read not aborted."; 413 return "FileIO::Read not aborted.";
413 if (memcmp(&buf_copy, &buf, sizeof(buf)) != 0) 414 if (memcmp(&buf_copy, &buf, sizeof(buf)) != 0)
414 return "FileIO::Read wrote data after resource destruction."; 415 return "FileIO::Read wrote data after resource destruction.";
415 } else if (rv != PP_OK) { 416 } else if (rv != PP_OK) {
416 return ReportError("FileIO::Read", rv); 417 return ReportError("FileIO::Read", rv);
417 } 418 }
418 } 419 }
419 420
420 // Abort |Write()|. 421 // Abort |Write()|.
421 { 422 {
422 char buf[3] = { 0 }; 423 char buf[3] = { 0 };
423 { 424 {
424 pp::FileIO_Dev file_io; 425 pp::FileIO_Dev file_io(instance_);
425 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback); 426 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback);
426 if (rv == PP_ERROR_WOULDBLOCK) 427 if (rv == PP_ERROR_WOULDBLOCK)
427 rv = callback.WaitForResult(); 428 rv = callback.WaitForResult();
428 if (rv != PP_OK) 429 if (rv != PP_OK)
429 return ReportError("FileIO::Open", rv); 430 return ReportError("FileIO::Open", rv);
430 431
431 callback.reset_run_count(); 432 callback.reset_run_count();
432 rv = file_io.Write(0, buf, sizeof(buf), callback); 433 rv = file_io.Write(0, buf, sizeof(buf), callback);
433 } // Destroy |file_io|. 434 } // Destroy |file_io|.
434 if (rv == PP_ERROR_WOULDBLOCK) { 435 if (rv == PP_ERROR_WOULDBLOCK) {
435 rv = callback.WaitForResult(); 436 rv = callback.WaitForResult();
436 if (rv != PP_ERROR_ABORTED) 437 if (rv != PP_ERROR_ABORTED)
437 return "FileIO::Write not aborted."; 438 return "FileIO::Write not aborted.";
438 } else if (rv != PP_OK) { 439 } else if (rv != PP_OK) {
439 return ReportError("FileIO::Write", rv); 440 return ReportError("FileIO::Write", rv);
440 } 441 }
441 } 442 }
442 443
443 // Abort |SetLength()|. 444 // Abort |SetLength()|.
444 { 445 {
445 { 446 {
446 pp::FileIO_Dev file_io; 447 pp::FileIO_Dev file_io(instance_);
447 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback); 448 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback);
448 if (rv == PP_ERROR_WOULDBLOCK) 449 if (rv == PP_ERROR_WOULDBLOCK)
449 rv = callback.WaitForResult(); 450 rv = callback.WaitForResult();
450 if (rv != PP_OK) 451 if (rv != PP_OK)
451 return ReportError("FileIO::Open", rv); 452 return ReportError("FileIO::Open", rv);
452 453
453 callback.reset_run_count(); 454 callback.reset_run_count();
454 rv = file_io.SetLength(3, callback); 455 rv = file_io.SetLength(3, callback);
455 } // Destroy |file_io|. 456 } // Destroy |file_io|.
456 if (rv == PP_ERROR_WOULDBLOCK) { 457 if (rv == PP_ERROR_WOULDBLOCK) {
457 rv = callback.WaitForResult(); 458 rv = callback.WaitForResult();
458 if (rv != PP_ERROR_ABORTED) 459 if (rv != PP_ERROR_ABORTED)
459 return "FileIO::SetLength not aborted."; 460 return "FileIO::SetLength not aborted.";
460 } else if (rv != PP_OK) { 461 } else if (rv != PP_OK) {
461 return ReportError("FileIO::SetLength", rv); 462 return ReportError("FileIO::SetLength", rv);
462 } 463 }
463 } 464 }
464 465
465 // Abort |Flush()|. 466 // Abort |Flush()|.
466 { 467 {
467 { 468 {
468 pp::FileIO_Dev file_io; 469 pp::FileIO_Dev file_io(instance_);
469 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback); 470 rv = file_io.Open(file_ref, PP_FILEOPENFLAG_READ, callback);
470 if (rv == PP_ERROR_WOULDBLOCK) 471 if (rv == PP_ERROR_WOULDBLOCK)
471 rv = callback.WaitForResult(); 472 rv = callback.WaitForResult();
472 if (rv != PP_OK) 473 if (rv != PP_OK)
473 return ReportError("FileIO::Open", rv); 474 return ReportError("FileIO::Open", rv);
474 475
475 callback.reset_run_count(); 476 callback.reset_run_count();
476 rv = file_io.Flush(callback); 477 rv = file_io.Flush(callback);
477 } // Destroy |file_io|. 478 } // Destroy |file_io|.
478 if (rv == PP_ERROR_WOULDBLOCK) { 479 if (rv == PP_ERROR_WOULDBLOCK) {
479 rv = callback.WaitForResult(); 480 rv = callback.WaitForResult();
480 if (rv != PP_ERROR_ABORTED) 481 if (rv != PP_ERROR_ABORTED)
481 return "FileIO::Flush not aborted."; 482 return "FileIO::Flush not aborted.";
482 } else if (rv != PP_OK) { 483 } else if (rv != PP_OK) {
483 return ReportError("FileIO::Flush", rv); 484 return ReportError("FileIO::Flush", rv);
484 } 485 }
485 } 486 }
486 487
487 // TODO(viettrungluu): Also test that Close() aborts callbacks. 488 // TODO(viettrungluu): Also test that Close() aborts callbacks.
488 // crbug.com/69457 489 // crbug.com/69457
489 490
490 PASS(); 491 PASS();
491 } 492 }
492 493
493 // TODO(viettrungluu): Test Close(). crbug.com/69457 494 // TODO(viettrungluu): Test Close(). crbug.com/69457
OLDNEW
« no previous file with comments | « chrome/test/ui/ppapi_uitest.cc ('k') | ppapi/tests/test_file_ref.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698