disk_cache_fuzzer.proto 4.8 KB

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