OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |