Index: media/cdm/ppapi/cdm_file_io_test.cc |
diff --git a/media/cdm/ppapi/cdm_file_io_test.cc b/media/cdm/ppapi/cdm_file_io_test.cc |
index f171003f6247a3240b2863623fcc4761d9013307..56ba4161bb03ee618a15ff586c79f1ebcd64e263 100644 |
--- a/media/cdm/ppapi/cdm_file_io_test.cc |
+++ b/media/cdm/ppapi/cdm_file_io_test.cc |
@@ -75,6 +75,10 @@ FileIOTestRunner::FileIOTestRunner(const CreateFileIOCB& create_file_io_cb) |
for (size_t i = 0; i < kLargeDataSize; ++i) |
large_data_[i] = i % kuint8max; |
+ // 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
|
+ 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.
|
+ corrupted_big_data_.resize(kBigDataSize, 0); |
+ |
AddTests(); |
} |
@@ -267,6 +271,36 @@ void FileIOTestRunner::AddTests() { |
CLOSE_FILE |
END_TEST_CASE |
+ START_TEST_CASE("CloseDuringPendingOverwriteWithLargerData") |
+ OPEN_FILE |
+ EXPECT_FILE_OPENED(kSuccess) |
+ WRITE_FILE(kData, kDataSize) |
+ EXPECT_FILE_WRITTEN(kSuccess) |
+ WRITE_FILE(kBigData, kBigDataSize) |
+ CLOSE_FILE |
+ // The file is corrupted. See http://crbug.com/410630 |
+ CREATE_FILE_IO |
+ OPEN_FILE |
+ EXPECT_FILE_OPENED(kSuccess) |
+ READ_FILE |
+ EXPECT_FILE_READ(kSuccess, &corrupted_big_data_[0], kBigDataSize) |
+ END_TEST_CASE |
+ |
+ START_TEST_CASE("CloseDuringPendingOverwriteWithSmallerData") |
+ OPEN_FILE |
+ EXPECT_FILE_OPENED(kSuccess) |
+ WRITE_FILE(kBigData, kBigDataSize) |
+ EXPECT_FILE_WRITTEN(kSuccess) |
+ WRITE_FILE(kData, kDataSize) |
+ CLOSE_FILE |
+ // The file is corrupted. See http://crbug.com/410630 |
+ CREATE_FILE_IO |
+ OPEN_FILE |
+ EXPECT_FILE_OPENED(kSuccess) |
+ READ_FILE |
+ EXPECT_FILE_READ(kSuccess, kBigData, kDataSize) |
+ END_TEST_CASE |
+ |
START_TEST_CASE("CloseDuringPendingRead") |
OPEN_FILE |
EXPECT_FILE_OPENED(kSuccess) |
@@ -274,6 +308,12 @@ void FileIOTestRunner::AddTests() { |
EXPECT_FILE_WRITTEN(kSuccess) |
READ_FILE |
CLOSE_FILE |
+ // Make sure the file is not modified. |
+ CREATE_FILE_IO |
+ OPEN_FILE |
+ EXPECT_FILE_OPENED(kSuccess) |
+ READ_FILE |
+ EXPECT_FILE_READ(kSuccess, kData, kDataSize) |
END_TEST_CASE |
} |