#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;
}
class TestFileIO : public TestCase {
public:
explicit TestFileIO(TestingInstance* instance) : TestCase(instance) {}
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,
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();
std::string MatchOpenExpectations(pp::FileSystem* file_system,
size_t open_flags,
size_t expectations);
};
#endif