blob: a3dede832fdbe9b6e5f0afbc3a0283b3bf70d001 [file] [log] [blame]
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package fuzztest.internal;
enum BareEnum {
LABEL_DEFAULT = 0;
LABEL_OTHER = 10;
};
message TestSubProtobuf {
optional int32 subproto_i32 = 1;
repeated int32 subproto_rep_i32 = 2 [packed = true];
}
message TestProtobuf {
enum Enum {
Label1 = 0;
Label2 = 1;
Label3 = 2;
Label4 = 3;
Label5 = 4;
}
optional bool b = 1;
optional int32 i32 = 2;
optional uint32 u32 = 3;
optional int64 i64 = 4;
optional uint64 u64 = 5;
optional float f = 6;
optional double d = 7;
optional string str = 8;
optional Enum e = 9;
optional TestSubProtobuf subproto = 10;
repeated bool rep_b = 11;
repeated int32 rep_i32 = 12;
repeated uint32 rep_u32 = 13;
repeated int64 rep_i64 = 14;
repeated uint64 rep_u64 = 15;
repeated float rep_f = 16;
repeated double rep_d = 17;
repeated string rep_str = 18;
repeated Enum rep_e = 19;
repeated TestSubProtobuf rep_subproto = 20;
oneof oneof_field {
int32 oneof_i32 = 21;
int64 oneof_i64 = 22;
}
map<int32, int32> map_field = 23;
// Special cases
enum EnumOneLabel {
OnlyLabel = 17;
}
optional EnumOneLabel enum_one_label = 100;
message EmptyMessage {}
optional EmptyMessage empty_message = 101;
}
message TestProtobufWithRequired {
optional int32 i32 = 1;
required int32 req_i32 = 200;
required TestProtobuf.Enum req_e = 201;
required TestSubProtobuf req_sub = 202;
optional TestProtobufWithRequired sub_req = 203;
}
message IRObjectTestProto {
oneof value {
uint64 i = 1;
double d = 2;
bytes s = 3;
}
repeated IRObjectTestProto sub = 4;
}
message TestProtobufWithExtension {
optional int32 non_ext = 1;
extensions 1000 to max;
}
message ProtoExtender {
extend TestProtobufWithExtension {
optional string ext = 1001;
}
}
message TestProtobufWithRecursion {
message ChildProto {
optional TestProtobufWithRecursion parent = 1;
optional string id = 2;
}
optional ChildProto child = 1;
optional string id = 2;
}