1// Copyright 2019 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto2"; 6 7package disk_cache_fuzzer; 8 9enum RequestPriority { 10 THROTTLED = 0; 11 IDLE = 1; 12 LOWEST = 2; 13 LOW = 3; 14 MEDIUM = 4; 15 HIGHEST = 5; 16} 17 18message FuzzCommands { 19 enum CacheBackend { 20 SIMPLE = 0; 21 IN_MEMORY = 1; 22 BLOCK = 2; 23 } 24 required CacheBackend cache_backend = 5; 25 26 enum CacheType { 27 APP_CACHE = 1; 28 REMOVED_MEDIA_CACHE = 2; 29 SHADER_CACHE = 3; 30 PNACL_CACHE = 4; 31 GENERATED_BYTE_CODE_CACHE = 5; 32 DISK_CACHE = 6; 33 GENERATED_NATIVE_CODE_CACHE = 7; 34 } 35 required CacheType cache_type = 4; 36 37 optional bool set_mask = 2; 38 optional SetMaxSize set_max_size = 3; 39 repeated FuzzCommand fuzz_commands = 1; 40 required bool simple_cache_wait_for_index = 6; 41} 42 43message FuzzCommand { 44 oneof fuzz_command_oneof { 45 CreateEntry create_entry = 1; 46 OpenEntry open_entry = 2; 47 OpenOrCreateEntry open_or_create_entry = 345; 48 CloseEntry close_entry = 3; 49 DoomEntry doom_entry = 4; 50 WriteData write_data = 5; 51 WriteSparseData write_sparse_data = 6; 52 DoomAllEntries doom_all_entries = 7; 53 FlushQueueForTest flush_queue_for_test = 8; 54 CreateIterator create_iterator = 10; 55 IteratorOpenNextEntry iterator_open_next_entry = 63; 56 FastForwardBy fast_forward_by = 11; 57 58 ReadData read_data = 12; 59 ReadSparseData read_sparse_data = 456; 60 61 DoomEntriesSince doom_entries_since = 13; 62 DoomEntriesBetween doom_entries_between = 14; 63 64 OnExternalCacheHit on_external_cache_hit = 16; 65 66 TrimForTest trim_for_test = 17; 67 TrimDeletedListForTest trim_deleted_list_for_test = 18; 68 GetAvailableRange get_available_range = 19; 69 CancelSparseIO cancel_sparse_io = 20; 70 DoomKey doom_key = 21; 71 DestructBackend destruct_backend = 22; 72 73 AddRealDelay add_real_delay = 23; 74 SetMaxSize recreate_with_size = 24; 75 76 // Not included: GetStats, CalculateSizesOf, GetEntryInMemoryData, 77 // SetEntryInMemoryData, CouldBeSparse, ReadyForSparseIO 78 79 // TODO(mpdenton) FlushWorkerPoolForTesting 80 } 81 82 reserved 87; // previously set_max_size member of the oneof. 83} 84 85message SetMaxSize { 86 required uint32 size = 1; 87} 88 89message CreateEntry { 90 required uint64 key_id = 1; 91 required uint64 entry_id = 2; 92 required RequestPriority pri = 3; 93 required bool async = 4; 94 required bool is_sparse = 5; 95} 96 97message OpenEntry { 98 required uint64 key_id = 1; 99 required uint64 entry_id = 2; 100 required RequestPriority pri = 3; 101 required bool async = 4; 102} 103 104message OpenOrCreateEntry { 105 required uint64 key_id = 1; 106 required uint64 entry_id = 2; 107 required bool create_new = 3; 108 required RequestPriority pri = 4; 109 required bool async = 5; 110 required bool is_sparse = 6; 111} 112 113message CloseEntry { 114 required uint64 entry_id = 1; 115} 116 117message DoomEntry { 118 required uint64 entry_id = 1; 119} 120 121message WriteData { 122 required uint64 entry_id = 1; 123 required uint32 size = 2; 124 required uint32 index = 3; 125 required uint32 offset = 4; 126 required bool truncate = 5; 127 required bool async = 6; 128} 129 130message WriteSparseData { 131 required uint64 entry_id = 1; 132 required uint32 size = 2; 133 required uint64 offset = 4; 134 required bool async = 5; 135 required bool cap_offset = 6; 136} 137 138message ReadSparseData { 139 required uint64 entry_id = 1; 140 required uint32 size = 2; 141 required uint64 offset = 4; 142 required bool async = 5; 143 required bool cap_offset = 6; 144} 145 146message ReadData { 147 required uint64 entry_id = 1; 148 required uint32 size = 2; 149 required uint32 index = 3; 150 required uint32 offset = 4; 151 required bool async = 5; 152} 153 154message DoomAllEntries { 155 required bool async = 1; 156} 157 158message FlushQueueForTest {} 159 160message CreateIterator { 161 required uint64 it_id = 1; 162} 163 164message IteratorOpenNextEntry { 165 required uint64 it_id = 1; 166 required uint64 entry_id = 2; 167 required bool async = 3; 168} 169 170message FastForwardBy { 171 required uint32 capped_num_millis = 1; 172 required uint64 time_id = 2; 173} 174 175message DoomEntriesBetween { 176 required uint64 time_id1 = 1; 177 required uint64 time_id2 = 2; 178 required bool async = 3; 179} 180 181message DoomEntriesSince { 182 required uint64 time_id = 1; 183 required bool async = 2; 184} 185 186message OnExternalCacheHit { 187 required uint64 key_id = 1; 188} 189 190message TrimForTest { 191 required bool empty = 1; 192} 193 194message TrimDeletedListForTest { 195 required bool empty = 1; 196} 197 198message GetAvailableRange { 199 required uint64 entry_id = 1; 200 required uint32 offset = 2; 201 required uint32 len = 3; 202 required bool async = 4; 203} 204 205message CancelSparseIO { 206 required uint64 entry_id = 1; 207} 208 209message DoomKey { 210 required uint64 key_id = 1; 211 required RequestPriority pri = 2; 212 required bool async = 3; 213} 214 215message DestructBackend { 216 // I want this to be uncommon, so if either of these booleans are false, we 217 // won't actually destruct the backend. 218 required bool actually_destruct1 = 1; 219 required bool actually_destruct2 = 2; 220} 221 222message AddRealDelay { 223 required bool actually_delay = 1; 224} 225