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

Side by Side Diff: media/cdm/ppapi/cdm_file_io_test.cc

Issue 563193002: CDM FileIOTest: Explictly test corrupted file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@set_length
Patch Set: Created 6 years, 3 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
« no previous file with comments | « media/cdm/ppapi/cdm_file_io_test.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/cdm/ppapi/cdm_file_io_test.h" 5 #include "media/cdm/ppapi/cdm_file_io_test.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 68
69 FileIOTestRunner::FileIOTestRunner(const CreateFileIOCB& create_file_io_cb) 69 FileIOTestRunner::FileIOTestRunner(const CreateFileIOCB& create_file_io_cb)
70 : create_file_io_cb_(create_file_io_cb), 70 : create_file_io_cb_(create_file_io_cb),
71 total_num_tests_(0), 71 total_num_tests_(0),
72 num_passed_tests_(0) { 72 num_passed_tests_(0) {
73 // Generate |large_data_|. 73 // Generate |large_data_|.
74 large_data_.resize(kLargeDataSize); 74 large_data_.resize(kLargeDataSize);
75 for (size_t i = 0; i < kLargeDataSize; ++i) 75 for (size_t i = 0; i < kLargeDataSize; ++i)
76 large_data_[i] = i % kuint8max; 76 large_data_[i] = i % kuint8max;
77 77
78 // Generate |corrupted_big_data_|.
ddorwin 2014/09/12 20:25:24 Do we really need a member for one test?
xhwang 2014/09/13 01:19:30 We add test cases first then run all tests togethe
79 corrupted_big_data_.assign(kData, kData + kDataSize);
ddorwin 2014/09/12 20:25:24 I don't think the naming is right. It is data but
xhwang 2014/09/13 01:19:30 Acknowledged.
80 corrupted_big_data_.resize(kBigDataSize, 0);
81
78 AddTests(); 82 AddTests();
79 } 83 }
80 84
81 FileIOTestRunner::~FileIOTestRunner() { 85 FileIOTestRunner::~FileIOTestRunner() {
82 if (remaining_tests_.empty()) 86 if (remaining_tests_.empty())
83 return; 87 return;
84 88
85 DCHECK_LT(num_passed_tests_, total_num_tests_); 89 DCHECK_LT(num_passed_tests_, total_num_tests_);
86 FILE_IO_DVLOG(1) << "Not Finished (probably due to timeout). " 90 FILE_IO_DVLOG(1) << "Not Finished (probably due to timeout). "
87 << num_passed_tests_ << " passed in " 91 << num_passed_tests_ << " passed in "
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 CLOSE_FILE 264 CLOSE_FILE
261 END_TEST_CASE 265 END_TEST_CASE
262 266
263 START_TEST_CASE("CloseDuringPendingWrite") 267 START_TEST_CASE("CloseDuringPendingWrite")
264 OPEN_FILE 268 OPEN_FILE
265 EXPECT_FILE_OPENED(kSuccess) 269 EXPECT_FILE_OPENED(kSuccess)
266 WRITE_FILE(kData, kDataSize) 270 WRITE_FILE(kData, kDataSize)
267 CLOSE_FILE 271 CLOSE_FILE
268 END_TEST_CASE 272 END_TEST_CASE
269 273
274 START_TEST_CASE("CloseDuringPendingOverwriteWithLargerData")
275 OPEN_FILE
276 EXPECT_FILE_OPENED(kSuccess)
277 WRITE_FILE(kData, kDataSize)
278 EXPECT_FILE_WRITTEN(kSuccess)
279 WRITE_FILE(kBigData, kBigDataSize)
280 CLOSE_FILE
281 // The file is corrupted. See http://crbug.com/410630
282 CREATE_FILE_IO
283 OPEN_FILE
284 EXPECT_FILE_OPENED(kSuccess)
285 READ_FILE
286 EXPECT_FILE_READ(kSuccess, &corrupted_big_data_[0], kBigDataSize)
287 END_TEST_CASE
288
289 START_TEST_CASE("CloseDuringPendingOverwriteWithSmallerData")
290 OPEN_FILE
291 EXPECT_FILE_OPENED(kSuccess)
292 WRITE_FILE(kBigData, kBigDataSize)
293 EXPECT_FILE_WRITTEN(kSuccess)
294 WRITE_FILE(kData, kDataSize)
295 CLOSE_FILE
296 // The file is corrupted. See http://crbug.com/410630
297 CREATE_FILE_IO
298 OPEN_FILE
299 EXPECT_FILE_OPENED(kSuccess)
300 READ_FILE
301 EXPECT_FILE_READ(kSuccess, kBigData, kDataSize)
302 END_TEST_CASE
303
270 START_TEST_CASE("CloseDuringPendingRead") 304 START_TEST_CASE("CloseDuringPendingRead")
271 OPEN_FILE 305 OPEN_FILE
272 EXPECT_FILE_OPENED(kSuccess) 306 EXPECT_FILE_OPENED(kSuccess)
273 WRITE_FILE(kData, kDataSize) 307 WRITE_FILE(kData, kDataSize)
274 EXPECT_FILE_WRITTEN(kSuccess) 308 EXPECT_FILE_WRITTEN(kSuccess)
275 READ_FILE 309 READ_FILE
276 CLOSE_FILE 310 CLOSE_FILE
311 // Make sure the file is not modified.
312 CREATE_FILE_IO
313 OPEN_FILE
314 EXPECT_FILE_OPENED(kSuccess)
315 READ_FILE
316 EXPECT_FILE_READ(kSuccess, kData, kDataSize)
277 END_TEST_CASE 317 END_TEST_CASE
278 } 318 }
279 319
280 void FileIOTestRunner::RunAllTests(const CompletionCB& completion_cb) { 320 void FileIOTestRunner::RunAllTests(const CompletionCB& completion_cb) {
281 completion_cb_ = completion_cb; 321 completion_cb_ = completion_cb;
282 total_num_tests_ = remaining_tests_.size(); 322 total_num_tests_ = remaining_tests_.size();
283 RunNextTest(); 323 RunNextTest();
284 } 324 }
285 325
286 void FileIOTestRunner::RunNextTest() { 326 void FileIOTestRunner::RunNextTest() {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 void FileIOTest::OnTestComplete(bool success) { 485 void FileIOTest::OnTestComplete(bool success) {
446 while (!file_io_stack_.empty()) { 486 while (!file_io_stack_.empty()) {
447 file_io_stack_.top()->Close(); 487 file_io_stack_.top()->Close();
448 file_io_stack_.pop(); 488 file_io_stack_.pop();
449 } 489 }
450 FILE_IO_DVLOG(3) << test_name_ << (success ? " PASSED" : " FAILED"); 490 FILE_IO_DVLOG(3) << test_name_ << (success ? " PASSED" : " FAILED");
451 base::ResetAndReturn(&completion_cb_).Run(success); 491 base::ResetAndReturn(&completion_cb_).Run(success);
452 } 492 }
453 493
454 } // namespace media 494 } // namespace media
OLDNEW
« no previous file with comments | « media/cdm/ppapi/cdm_file_io_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698