// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PAPPI_TESTS_TEST_FILE_IO_H_ #define PAPPI_TESTS_TEST_FILE_IO_H_ #include <string> #include "ppapi/tests/test_case.h" namespace pp { class FileIO; class FileSystem; } // namespace pp class TestFileIO : public TestCase { public: explicit TestFileIO(TestingInstance* instance) : TestCase(instance) {} // TestCase implementation. virtual bool Init(); virtual void RunTests(const std::string& filter); private: enum OpenExpectation { CREATE_IF_DOESNT_EXIST = 1 << 0, DONT_CREATE_IF_DOESNT_EXIST = 1 << 1, OPEN_IF_EXISTS = 1 << 2, DONT_OPEN_IF_EXISTS = 1 << 3, TRUNCATE_IF_EXISTS = 1 << 4, DONT_TRUNCATE_IF_EXISTS = 1 << 5, // All values above are defined in pairs: <some_expectation> and // DONT_<some_expectation>. END_OF_OPEN_EXPECATION_PAIRS = DONT_TRUNCATE_IF_EXISTS, INVALID_FLAG_COMBINATION = 1 << 6, }; std::string TestOpen(); std::string TestOpenDirectory(); std::string TestReadWriteSetLength(); std::string TestReadToArrayWriteSetLength(); std::string TestTouchQuery(); std::string TestAbortCalls(); std::string TestParallelReads(); std::string TestParallelWrites(); std::string TestNotAllowMixedReadWrite(); std::string TestRequestOSFileHandle(); std::string TestRequestOSFileHandleWithOpenExclusive(); std::string TestMmap(); // Helper method used by TestOpen(). // |expectations| is a combination of OpenExpectation values. The followings // are considered as valid input: // 1) INVALID_FLAG_COMBINATION // 2) (DONT_)?CREATE_IF_DOESNT_EXIST | (DONT_)?OPEN_IF_EXISTS | // (DONT_)?TRUNCATE_IF_EXISTS std::string MatchOpenExpectations(pp::FileSystem* file_system, size_t open_flags, size_t expectations); }; #endif // PAPPI_TESTS_TEST_FILE_IO_H_