xref: /aosp_15_r20/external/cronet/net/disk_cache/disk_cache_fuzzer.proto (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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    SetMaxSize set_max_size = 87;
46    CreateEntry create_entry = 1;
47    OpenEntry open_entry = 2;
48    OpenOrCreateEntry open_or_create_entry = 345;
49    CloseEntry close_entry = 3;
50    DoomEntry doom_entry = 4;
51    WriteData write_data = 5;
52    WriteSparseData write_sparse_data = 6;
53    DoomAllEntries doom_all_entries = 7;
54    FlushQueueForTest flush_queue_for_test = 8;
55    CreateIterator create_iterator = 10;
56    IteratorOpenNextEntry iterator_open_next_entry = 63;
57    FastForwardBy fast_forward_by = 11;
58
59    ReadData read_data = 12;
60    ReadSparseData read_sparse_data = 456;
61
62    DoomEntriesSince doom_entries_since = 13;
63    DoomEntriesBetween doom_entries_between = 14;
64
65    OnExternalCacheHit on_external_cache_hit = 16;
66
67    TrimForTest trim_for_test = 17;
68    TrimDeletedListForTest trim_deleted_list_for_test = 18;
69    GetAvailableRange get_available_range = 19;
70    CancelSparseIO cancel_sparse_io = 20;
71    DoomKey doom_key = 21;
72    DestructBackend destruct_backend = 22;
73
74    AddRealDelay add_real_delay = 23;
75
76    // Not included: GetStats, CalculateSizesOf, GetEntryInMemoryData,
77    // SetEntryInMemoryData, CouldBeSparse, ReadyForSparseIO
78
79    // TODO(mpdenton) FlushWorkerPoolForTesting
80  }
81}
82
83message SetMaxSize {
84  required uint32 size = 1;
85}
86
87message CreateEntry {
88  required uint64 key_id = 1;
89  required uint64 entry_id = 2;
90  required RequestPriority pri = 3;
91  required bool async = 4;
92  required bool is_sparse = 5;
93}
94
95message OpenEntry {
96  required uint64 key_id = 1;
97  required uint64 entry_id = 2;
98  required RequestPriority pri = 3;
99  required bool async = 4;
100}
101
102message OpenOrCreateEntry {
103  required uint64 key_id = 1;
104  required uint64 entry_id = 2;
105  required bool create_new = 3;
106  required RequestPriority pri = 4;
107  required bool async = 5;
108  required bool is_sparse = 6;
109}
110
111message CloseEntry {
112  required uint64 entry_id = 1;
113}
114
115message DoomEntry {
116  required uint64 entry_id = 1;
117}
118
119message WriteData {
120  required uint64 entry_id = 1;
121  required uint32 size = 2;
122  required uint32 index = 3;
123  required uint32 offset = 4;
124  required bool truncate = 5;
125  required bool async = 6;
126}
127
128message WriteSparseData {
129  required uint64 entry_id = 1;
130  required uint32 size = 2;
131  required uint64 offset = 4;
132  required bool async = 5;
133  required bool cap_offset = 6;
134}
135
136message ReadSparseData {
137  required uint64 entry_id = 1;
138  required uint32 size = 2;
139  required uint64 offset = 4;
140  required bool async = 5;
141  required bool cap_offset = 6;
142}
143
144message ReadData {
145  required uint64 entry_id = 1;
146  required uint32 size = 2;
147  required uint32 index = 3;
148  required uint32 offset = 4;
149  required bool async = 5;
150}
151
152message DoomAllEntries {
153  required bool async = 1;
154}
155
156message FlushQueueForTest {}
157
158message CreateIterator {
159  required uint64 it_id = 1;
160}
161
162message IteratorOpenNextEntry {
163  required uint64 it_id = 1;
164  required uint64 entry_id = 2;
165  required bool async = 3;
166}
167
168message FastForwardBy {
169  required uint32 capped_num_millis = 1;
170  required uint64 time_id = 2;
171}
172
173message DoomEntriesBetween {
174  required uint64 time_id1 = 1;
175  required uint64 time_id2 = 2;
176  required bool async = 3;
177}
178
179message DoomEntriesSince {
180  required uint64 time_id = 1;
181  required bool async = 2;
182}
183
184message OnExternalCacheHit {
185  required uint64 key_id = 1;
186}
187
188message TrimForTest {
189  required bool empty = 1;
190}
191
192message TrimDeletedListForTest {
193  required bool empty = 1;
194}
195
196message GetAvailableRange {
197  required uint64 entry_id = 1;
198  required uint32 offset = 2;
199  required uint32 len = 3;
200  required bool async = 4;
201}
202
203message CancelSparseIO {
204  required uint64 entry_id = 1;
205}
206
207message DoomKey {
208  required uint64 key_id = 1;
209  required RequestPriority pri = 2;
210  required bool async = 3;
211}
212
213message DestructBackend {
214  // I want this to be uncommon, so if either of these booleans are false, we
215  // won't actually destruct the backend.
216  required bool actually_destruct1 = 1;
217  required bool actually_destruct2 = 2;
218}
219
220message AddRealDelay {
221  required bool actually_delay = 1;
222}
223