| 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 56ba4161bb03ee618a15ff586c79f1ebcd64e263..bf18e700bf36b7b4ad7e07eb0dd48f1f14cd81ed 100644
|
| --- a/media/cdm/ppapi/cdm_file_io_test.cc
|
| +++ b/media/cdm/ppapi/cdm_file_io_test.cc
|
| @@ -24,12 +24,15 @@ const uint8 kBigData[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
| const uint32 kBigDataSize = arraysize(kBigData);
|
|
|
| // Must be > kReadSize in cdm_file_io_impl.cc.
|
| -const uint32 kLargeDataSize = 9 * 1024 + 7;
|
| +const uint32 kLargeDataSize = 20 * 1024 + 7;
|
|
|
| // Macros to help add test cases/steps.
|
| +
|
| +// |test_name| is also used as the file name. File name validity tests relies
|
| +// on this to work.
|
| #define START_TEST_CASE(test_name) \
|
| do { \
|
| - FileIOTest test_case(create_file_io_cb_, "FileIOTest." test_name); \
|
| + FileIOTest test_case(create_file_io_cb_, test_name); \
|
| CREATE_FILE_IO // Create FileIO for each test case.
|
|
|
| #define ADD_TEST_STEP(type, status, data, data_size) \
|
| @@ -75,10 +78,6 @@ 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_|.
|
| - corrupted_big_data_.assign(kData, kData + kDataSize);
|
| - corrupted_big_data_.resize(kBigDataSize, 0);
|
| -
|
| AddTests();
|
| }
|
|
|
| @@ -94,6 +93,36 @@ FileIOTestRunner::~FileIOTestRunner() {
|
|
|
| // Note: Consecutive expectations (EXPECT*) can happen in any order.
|
| void FileIOTestRunner::AddTests() {
|
| + START_TEST_CASE("/FileNameStartsWithForwardSlash")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("FileNameContains/ForwardSlash")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("\\FileNameStartsWithBackslash")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("FileNameContains\\Backslash")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("_FileNameStartsWithUnderscore")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("FileNameContains_Underscore")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kSuccess)
|
| + END_TEST_CASE
|
| +
|
| START_TEST_CASE("ReadBeforeOpeningFile")
|
| READ_FILE
|
| EXPECT_FILE_READ(kError, NULL, 0)
|
| @@ -109,6 +138,11 @@ void FileIOTestRunner::AddTests() {
|
| READ_FILE
|
| EXPECT_FILE_OPENED(kSuccess)
|
| EXPECT_FILE_READ(kError, NULL, 0)
|
| + // After file opened, we can still do normal operations.
|
| + WRITE_FILE(kData, kDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("WriteBeforeFileOpened")
|
| @@ -116,6 +150,11 @@ void FileIOTestRunner::AddTests() {
|
| WRITE_FILE(kData, kDataSize)
|
| EXPECT_FILE_WRITTEN(kError)
|
| EXPECT_FILE_OPENED(kSuccess)
|
| + // After file opened, we can still do normal operations.
|
| + WRITE_FILE(kData, kDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("ReadDuringPendingRead")
|
| @@ -127,6 +166,9 @@ void FileIOTestRunner::AddTests() {
|
| READ_FILE
|
| EXPECT_FILE_READ(kInUse, NULL, 0)
|
| EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| + // Read again.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("ReadDuringPendingWrite")
|
| @@ -136,6 +178,9 @@ void FileIOTestRunner::AddTests() {
|
| READ_FILE
|
| EXPECT_FILE_READ(kInUse, NULL, 0)
|
| EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read again.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("WriteDuringPendingRead")
|
| @@ -145,6 +190,11 @@ void FileIOTestRunner::AddTests() {
|
| WRITE_FILE(kData, kDataSize)
|
| EXPECT_FILE_WRITTEN(kInUse)
|
| EXPECT_FILE_READ(kSuccess, NULL, 0)
|
| + // We can still do normal operations.
|
| + WRITE_FILE(kData, kDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("WriteDuringPendingWrite")
|
| @@ -154,9 +204,12 @@ void FileIOTestRunner::AddTests() {
|
| WRITE_FILE(kBigData, kBigDataSize)
|
| EXPECT_FILE_WRITTEN(kInUse)
|
| EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read to make sure original data (kData) is written.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| - START_TEST_CASE("ReadEmptyFile")
|
| + START_TEST_CASE("ReadFileThatDoesNotExist")
|
| OPEN_FILE
|
| EXPECT_FILE_OPENED(kSuccess)
|
| READ_FILE
|
| @@ -172,7 +225,7 @@ void FileIOTestRunner::AddTests() {
|
| EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| - START_TEST_CASE("WriteZeroBytes")
|
| + START_TEST_CASE("WriteAndReadEmptyFile")
|
| OPEN_FILE
|
| EXPECT_FILE_OPENED(kSuccess)
|
| WRITE_FILE(NULL, 0)
|
| @@ -238,7 +291,49 @@ void FileIOTestRunner::AddTests() {
|
| EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| - START_TEST_CASE("ReopenFileInTheSameFileIO")
|
| + START_TEST_CASE("MultipleReadsAndWrites")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kSuccess)
|
| + // Read file which doesn't exist.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, NULL, 0)
|
| + // Write kData to file.
|
| + WRITE_FILE(kData, kDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read file.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| + // Read file again.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| + // Overwrite file with large data.
|
| + WRITE_FILE(&large_data_[0], kLargeDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read file.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, &large_data_[0], kLargeDataSize)
|
| + // Overwrite file with kData.
|
| + WRITE_FILE(kData, kDataSize)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read file.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| + // Overwrite file with zero bytes.
|
| + WRITE_FILE(NULL, 0)
|
| + EXPECT_FILE_WRITTEN(kSuccess)
|
| + // Read file.
|
| + READ_FILE
|
| + EXPECT_FILE_READ(kSuccess, NULL, 0)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("OpenAfterOpen")
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kSuccess)
|
| + OPEN_FILE
|
| + EXPECT_FILE_OPENED(kError)
|
| + END_TEST_CASE
|
| +
|
| + START_TEST_CASE("OpenDuringPendingOpen")
|
| OPEN_FILE
|
| OPEN_FILE
|
| EXPECT_FILE_OPENED(kError) // The second Open() failed.
|
| @@ -278,12 +373,12 @@ void FileIOTestRunner::AddTests() {
|
| EXPECT_FILE_WRITTEN(kSuccess)
|
| WRITE_FILE(kBigData, kBigDataSize)
|
| CLOSE_FILE
|
| - // The file is corrupted. See http://crbug.com/410630
|
| + // Write() didn't finish and the content of the file is not modified.
|
| CREATE_FILE_IO
|
| OPEN_FILE
|
| EXPECT_FILE_OPENED(kSuccess)
|
| READ_FILE
|
| - EXPECT_FILE_READ(kSuccess, &corrupted_big_data_[0], kBigDataSize)
|
| + EXPECT_FILE_READ(kSuccess, kData, kDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("CloseDuringPendingOverwriteWithSmallerData")
|
| @@ -293,12 +388,12 @@ void FileIOTestRunner::AddTests() {
|
| EXPECT_FILE_WRITTEN(kSuccess)
|
| WRITE_FILE(kData, kDataSize)
|
| CLOSE_FILE
|
| - // The file is corrupted. See http://crbug.com/410630
|
| + // Write() didn't finish and the content of the file is not modified.
|
| CREATE_FILE_IO
|
| OPEN_FILE
|
| EXPECT_FILE_OPENED(kSuccess)
|
| READ_FILE
|
| - EXPECT_FILE_READ(kSuccess, kBigData, kDataSize)
|
| + EXPECT_FILE_READ(kSuccess, kBigData, kBigDataSize)
|
| END_TEST_CASE
|
|
|
| START_TEST_CASE("CloseDuringPendingRead")
|
|
|