1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef PAPPI_TESTS_TEST_FILE_IO_H_
6 #define PAPPI_TESTS_TEST_FILE_IO_H_
10 #include "ppapi/tests/test_case.h"
17 class TestFileIO
: public TestCase
{
19 explicit TestFileIO(TestingInstance
* instance
) : TestCase(instance
) {}
21 // TestCase implementation.
23 virtual void RunTests(const std::string
& filter
);
26 enum OpenExpectation
{
27 CREATE_IF_DOESNT_EXIST
= 1 << 0,
28 DONT_CREATE_IF_DOESNT_EXIST
= 1 << 1,
29 OPEN_IF_EXISTS
= 1 << 2,
30 DONT_OPEN_IF_EXISTS
= 1 << 3,
31 TRUNCATE_IF_EXISTS
= 1 << 4,
32 DONT_TRUNCATE_IF_EXISTS
= 1 << 5,
33 // All values above are defined in pairs: <some_expectation> and
34 // DONT_<some_expectation>.
35 END_OF_OPEN_EXPECATION_PAIRS
= DONT_TRUNCATE_IF_EXISTS
,
37 INVALID_FLAG_COMBINATION
= 1 << 6,
40 std::string
TestOpen();
41 std::string
TestOpenDirectory();
42 std::string
TestReadWriteSetLength();
43 std::string
TestReadToArrayWriteSetLength();
44 std::string
TestTouchQuery();
45 std::string
TestAbortCalls();
46 std::string
TestParallelReads();
47 std::string
TestParallelWrites();
48 std::string
TestNotAllowMixedReadWrite();
49 std::string
TestRequestOSFileHandle();
50 std::string
TestRequestOSFileHandleWithOpenExclusive();
51 std::string
TestMmap();
53 // Helper method used by TestOpen().
54 // |expectations| is a combination of OpenExpectation values. The followings
55 // are considered as valid input:
56 // 1) INVALID_FLAG_COMBINATION
57 // 2) (DONT_)?CREATE_IF_DOESNT_EXIST | (DONT_)?OPEN_IF_EXISTS |
58 // (DONT_)?TRUNCATE_IF_EXISTS
59 std::string
MatchOpenExpectations(pp::FileSystem
* file_system
,
61 int32_t expectations
);
64 #endif // PAPPI_TESTS_TEST_FILE_IO_H_