| // Copyright (c) 2019 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. |
| |
| syntax = "proto2"; |
| |
| package disk_cache_fuzzer; |
| |
| enum RequestPriority { |
| THROTTLED = 0; |
| IDLE = 1; |
| LOWEST = 2; |
| LOW = 3; |
| MEDIUM = 4; |
| HIGHEST = 5; |
| } |
| |
| message FuzzCommands { |
| enum CacheBackend { |
| SIMPLE = 0; |
| IN_MEMORY = 1; |
| BLOCK = 2; |
| } |
| required CacheBackend cache_backend = 5; |
| |
| enum CacheType { |
| APP_CACHE = 1; |
| REMOVED_MEDIA_CACHE = 2; |
| SHADER_CACHE = 3; |
| PNACL_CACHE = 4; |
| GENERATED_BYTE_CODE_CACHE = 5; |
| DISK_CACHE = 6; |
| GENERATED_NATIVE_CODE_CACHE = 7; |
| } |
| required CacheType cache_type = 4; |
| |
| optional bool set_mask = 2; |
| optional SetMaxSize set_max_size = 3; |
| repeated FuzzCommand fuzz_commands = 1; |
| required bool simple_cache_wait_for_index = 6; |
| } |
| |
| message FuzzCommand { |
| oneof fuzz_command_oneof { |
| SetMaxSize set_max_size = 87; |
| CreateEntry create_entry = 1; |
| OpenEntry open_entry = 2; |
| OpenOrCreateEntry open_or_create_entry = 345; |
| CloseEntry close_entry = 3; |
| DoomEntry doom_entry = 4; |
| WriteData write_data = 5; |
| WriteSparseData write_sparse_data = 6; |
| DoomAllEntries doom_all_entries = 7; |
| FlushQueueForTest flush_queue_for_test = 8; |
| CreateIterator create_iterator = 10; |
| IteratorOpenNextEntry iterator_open_next_entry = 63; |
| FastForwardBy fast_forward_by = 11; |
| |
| ReadData read_data = 12; |
| ReadSparseData read_sparse_data = 456; |
| |
| DoomEntriesSince doom_entries_since = 13; |
| DoomEntriesBetween doom_entries_between = 14; |
| |
| OnExternalCacheHit on_external_cache_hit = 16; |
| |
| TrimForTest trim_for_test = 17; |
| TrimDeletedListForTest trim_deleted_list_for_test = 18; |
| GetAvailableRange get_available_range = 19; |
| CancelSparseIO cancel_sparse_io = 20; |
| DoomKey doom_key = 21; |
| DestructBackend destruct_backend = 22; |
| |
| AddRealDelay add_real_delay = 23; |
| |
| // Not included: GetStats, CalculateSizesOf, GetEntryInMemoryData, |
| // SetEntryInMemoryData, CouldBeSparse, ReadyForSparseIO |
| |
| // TODO(mpdenton) enable kPrioritizedSimpleCacheTasks? |
| // TODO(mpdenton) FlushWorkerPoolForTesting |
| } |
| } |
| |
| message SetMaxSize { |
| required uint32 size = 1; |
| } |
| |
| message CreateEntry { |
| required uint64 key_id = 1; |
| required uint64 entry_id = 2; |
| required RequestPriority pri = 3; |
| required bool async = 4; |
| required bool is_sparse = 5; |
| } |
| |
| message OpenEntry { |
| required uint64 key_id = 1; |
| required uint64 entry_id = 2; |
| required RequestPriority pri = 3; |
| required bool async = 4; |
| } |
| |
| message OpenOrCreateEntry { |
| required uint64 key_id = 1; |
| required uint64 entry_id = 2; |
| required bool create_new = 3; |
| required RequestPriority pri = 4; |
| required bool async = 5; |
| required bool is_sparse = 6; |
| } |
| |
| message CloseEntry { |
| required uint64 entry_id = 1; |
| } |
| |
| message DoomEntry { |
| required uint64 entry_id = 1; |
| } |
| |
| message WriteData { |
| required uint64 entry_id = 1; |
| required uint32 size = 2; |
| required uint32 index = 3; |
| required uint32 offset = 4; |
| required bool truncate = 5; |
| required bool async = 6; |
| } |
| |
| message WriteSparseData { |
| required uint64 entry_id = 1; |
| required uint32 size = 2; |
| required uint64 offset = 4; |
| required bool async = 5; |
| required bool cap_offset = 6; |
| } |
| |
| message ReadSparseData { |
| required uint64 entry_id = 1; |
| required uint32 size = 2; |
| required uint64 offset = 4; |
| required bool async = 5; |
| required bool cap_offset = 6; |
| } |
| |
| message ReadData { |
| required uint64 entry_id = 1; |
| required uint32 size = 2; |
| required uint32 index = 3; |
| required uint32 offset = 4; |
| required bool async = 5; |
| } |
| |
| message DoomAllEntries { |
| required bool async = 1; |
| } |
| |
| message FlushQueueForTest {} |
| |
| message CreateIterator { |
| required uint64 it_id = 1; |
| } |
| |
| message IteratorOpenNextEntry { |
| required uint64 it_id = 1; |
| required uint64 entry_id = 2; |
| required bool async = 3; |
| } |
| |
| message FastForwardBy { |
| required uint32 capped_num_millis = 1; |
| required uint64 time_id = 2; |
| } |
| |
| message DoomEntriesBetween { |
| required uint64 time_id1 = 1; |
| required uint64 time_id2 = 2; |
| required bool async = 3; |
| } |
| |
| message DoomEntriesSince { |
| required uint64 time_id = 1; |
| required bool async = 2; |
| } |
| |
| message OnExternalCacheHit { |
| required uint64 key_id = 1; |
| } |
| |
| message TrimForTest { |
| required bool empty = 1; |
| } |
| |
| message TrimDeletedListForTest { |
| required bool empty = 1; |
| } |
| |
| message GetAvailableRange { |
| required uint64 entry_id = 1; |
| required uint32 offset = 2; |
| required uint32 len = 3; |
| required bool async = 4; |
| } |
| |
| message CancelSparseIO { |
| required uint64 entry_id = 1; |
| } |
| |
| message DoomKey { |
| required uint64 key_id = 1; |
| required RequestPriority pri = 2; |
| required bool async = 3; |
| } |
| |
| message DestructBackend { |
| // I want this to be uncommon, so if either of these booleans are false, we |
| // won't actually destruct the backend. |
| required bool actually_destruct1 = 1; |
| required bool actually_destruct2 = 2; |
| } |
| |
| message AddRealDelay { |
| required bool actually_delay = 1; |
| } |