xref: /aosp_15_r20/external/grpc-grpc/test/core/resource_quota/memory_quota_fuzzer.proto (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1// Copyright 2021 gRPC authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package memory_quota_fuzzer;
18
19import "test/core/util/fuzz_config_vars.proto";
20
21message Empty {}
22
23message Reclaimer {
24    enum Pass {
25        BENIGN = 0;
26        IDLE = 1;
27        DESTRUCTIVE = 2;
28    }
29    bool synchronous = 1;
30    Pass pass = 2;
31    Msg msg = 3;
32}
33
34message AllocationRequest {
35    uint32 min = 1;
36    uint32 max = 2;
37}
38
39message Action {
40    reserved 15;
41    int32 quota = 1;
42    int32 allocator = 2;
43    int32 allocation = 3;
44    oneof action_type {
45        Empty flush_exec_ctx = 7;
46        Empty create_quota = 10;
47        Empty delete_quota = 11;
48        Empty create_allocator = 12;
49        Empty delete_allocator = 13;
50        uint64 set_quota_size = 14;
51        AllocationRequest create_allocation = 16;
52        Empty delete_allocation = 17;
53        Reclaimer post_reclaimer = 18;
54    }
55}
56
57message Msg {
58    repeated Action actions = 2;
59    grpc.testing.FuzzConfigVars config_vars = 3;
60}
61