Factored Conformance and Benchmark test messages into shared test schema. (#1971)
* Factored Conformance test messages into shared test schema. * Updated benchmarks to use new proto3 message locations. * Fixed include path. * Conformance: fixed include of Python test messages. * Make maven in Rakefile use --batch-mode. * Revert changes to benchmarks. On second thought I think a separate schema for CPU benchmarking makes sense. * Try regenerating C# protos for new test protos. * Removed benchmark messages from test proto. * Added Jon Skeet's fixes for C#. * Removed duplicate/old test messages C# file. * C# fixes for test schema move. * Fixed C# to use the correct TestAllTypes message. * Fixes for Objective C test schema move. * Added missing EXTRA_DIST file.
This commit is contained in:
parent
4280c27403
commit
f1ce60e7b4
@ -100,6 +100,7 @@ csharp_EXTRA_DIST= \
|
||||
csharp/src/Google.Protobuf.Test/TestCornerCases.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/ForeignMessagePartial.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/MapUnittestProto3.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/UnittestImportProto3.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/UnittestImportPublicProto3.cs \
|
||||
csharp/src/Google.Protobuf.Test/TestProtos/UnittestIssues.cs \
|
||||
|
@ -1,9 +1,10 @@
|
||||
import com.google.protobuf.ByteString;
|
||||
import com.google.protobuf.CodedInputStream;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf.conformance.Conformance;
|
||||
import com.google.protobuf.util.JsonFormat.TypeRegistry;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf_test_messages.proto3.TestMessagesProto3;
|
||||
import com.google.protobuf.util.JsonFormat;
|
||||
import com.google.protobuf.util.JsonFormat.TypeRegistry;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@ -53,27 +54,27 @@ class ConformanceJava {
|
||||
private enum BinaryDecoder {
|
||||
BYTE_STRING_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
return Conformance.TestAllTypes.parseFrom(bytes);
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(bytes);
|
||||
}
|
||||
},
|
||||
BYTE_ARRAY_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
return Conformance.TestAllTypes.parseFrom(bytes.toByteArray());
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(bytes.toByteArray());
|
||||
}
|
||||
},
|
||||
ARRAY_BYTE_BUFFER_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
ByteBuffer buffer = ByteBuffer.allocate(bytes.size());
|
||||
bytes.copyTo(buffer);
|
||||
buffer.flip();
|
||||
try {
|
||||
return Conformance.TestAllTypes.parseFrom(CodedInputStream.newInstance(buffer));
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(CodedInputStream.newInstance(buffer));
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
@ -84,10 +85,10 @@ class ConformanceJava {
|
||||
},
|
||||
READONLY_ARRAY_BYTE_BUFFER_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
try {
|
||||
return Conformance.TestAllTypes.parseFrom(
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(
|
||||
CodedInputStream.newInstance(bytes.asReadOnlyByteBuffer()));
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
throw e;
|
||||
@ -99,13 +100,13 @@ class ConformanceJava {
|
||||
},
|
||||
DIRECT_BYTE_BUFFER_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
ByteBuffer buffer = ByteBuffer.allocateDirect(bytes.size());
|
||||
bytes.copyTo(buffer);
|
||||
buffer.flip();
|
||||
try {
|
||||
return Conformance.TestAllTypes.parseFrom(CodedInputStream.newInstance(buffer));
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(CodedInputStream.newInstance(buffer));
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
@ -116,13 +117,13 @@ class ConformanceJava {
|
||||
},
|
||||
READONLY_DIRECT_BYTE_BUFFER_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
ByteBuffer buffer = ByteBuffer.allocateDirect(bytes.size());
|
||||
bytes.copyTo(buffer);
|
||||
buffer.flip();
|
||||
try {
|
||||
return Conformance.TestAllTypes.parseFrom(
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(
|
||||
CodedInputStream.newInstance(buffer.asReadOnlyBuffer()));
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
throw e;
|
||||
@ -134,10 +135,10 @@ class ConformanceJava {
|
||||
},
|
||||
INPUT_STREAM_DECODER() {
|
||||
@Override
|
||||
public Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
try {
|
||||
return Conformance.TestAllTypes.parseFrom(bytes.newInput());
|
||||
return TestMessagesProto3.TestAllTypes.parseFrom(bytes.newInput());
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
throw e;
|
||||
} catch (IOException e) {
|
||||
@ -147,14 +148,14 @@ class ConformanceJava {
|
||||
}
|
||||
};
|
||||
|
||||
public abstract Conformance.TestAllTypes parse(ByteString bytes)
|
||||
public abstract TestMessagesProto3.TestAllTypes parse(ByteString bytes)
|
||||
throws InvalidProtocolBufferException;
|
||||
}
|
||||
|
||||
private Conformance.TestAllTypes parseBinary(ByteString bytes)
|
||||
private TestMessagesProto3.TestAllTypes parseBinary(ByteString bytes)
|
||||
throws InvalidProtocolBufferException {
|
||||
Conformance.TestAllTypes[] messages =
|
||||
new Conformance.TestAllTypes[BinaryDecoder.values().length];
|
||||
TestMessagesProto3.TestAllTypes[] messages =
|
||||
new TestMessagesProto3.TestAllTypes[BinaryDecoder.values().length];
|
||||
InvalidProtocolBufferException[] exceptions =
|
||||
new InvalidProtocolBufferException[BinaryDecoder.values().length];
|
||||
|
||||
@ -220,7 +221,7 @@ class ConformanceJava {
|
||||
}
|
||||
|
||||
private Conformance.ConformanceResponse doTest(Conformance.ConformanceRequest request) {
|
||||
Conformance.TestAllTypes testMessage;
|
||||
TestMessagesProto3.TestAllTypes testMessage;
|
||||
|
||||
switch (request.getPayloadCase()) {
|
||||
case PROTOBUF_PAYLOAD: {
|
||||
@ -233,7 +234,7 @@ class ConformanceJava {
|
||||
}
|
||||
case JSON_PAYLOAD: {
|
||||
try {
|
||||
Conformance.TestAllTypes.Builder builder = Conformance.TestAllTypes.newBuilder();
|
||||
TestMessagesProto3.TestAllTypes.Builder builder = TestMessagesProto3.TestAllTypes.newBuilder();
|
||||
JsonFormat.parser().usingTypeRegistry(typeRegistry)
|
||||
.merge(request.getJsonPayload(), builder);
|
||||
testMessage = builder.build();
|
||||
@ -299,7 +300,7 @@ class ConformanceJava {
|
||||
|
||||
public void run() throws Exception {
|
||||
typeRegistry = TypeRegistry.newBuilder().add(
|
||||
Conformance.TestAllTypes.getDescriptor()).build();
|
||||
TestMessagesProto3.TestAllTypes.getDescriptor()).build();
|
||||
while (doTestIo()) {
|
||||
this.testCount++;
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
conformance_protoc_inputs = \
|
||||
conformance.proto
|
||||
conformance.proto \
|
||||
$(top_srcdir)/src/google/protobuf/test_messages_proto3.proto
|
||||
|
||||
well_known_type_protoc_inputs = \
|
||||
$(top_srcdir)/src/google/protobuf/any.proto \
|
||||
@ -61,6 +62,7 @@ other_language_protoc_outputs = \
|
||||
com/google/protobuf/Value.java \
|
||||
com/google/protobuf/ValueOrBuilder.java \
|
||||
com/google/protobuf/WrappersProto.java \
|
||||
com/google/protobuf_test_messages/proto3/TestMessagesProto3.java \
|
||||
google/protobuf/any.pb.cc \
|
||||
google/protobuf/any.pb.h \
|
||||
google/protobuf/any.rb \
|
||||
@ -77,6 +79,12 @@ other_language_protoc_outputs = \
|
||||
google/protobuf/struct.pb.h \
|
||||
google/protobuf/struct.rb \
|
||||
google/protobuf/struct_pb2.py \
|
||||
google/protobuf/TestMessagesProto3.pbobjc.h \
|
||||
google/protobuf/TestMessagesProto3.pbobjc.m \
|
||||
google/protobuf/test_messages_proto3.pb.cc \
|
||||
google/protobuf/test_messages_proto3.pb.h \
|
||||
google/protobuf/test_messages_proto3_pb.rb \
|
||||
google/protobuf/test_messages_proto3_pb2.py \
|
||||
google/protobuf/timestamp.pb.cc \
|
||||
google/protobuf/timestamp.pb.h \
|
||||
google/protobuf/timestamp.rb \
|
||||
@ -152,7 +160,7 @@ conformance_test_runner_SOURCES = conformance_test.h conformance_test.cc \
|
||||
conformance_test_runner.cc \
|
||||
third_party/jsoncpp/json.h \
|
||||
third_party/jsoncpp/jsoncpp.cpp
|
||||
nodist_conformance_test_runner_SOURCES = conformance.pb.cc
|
||||
nodist_conformance_test_runner_SOURCES = conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
|
||||
conformance_test_runner_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)
|
||||
conformance_test_runner_CXXFLAGS = -std=c++11
|
||||
# Explicit deps beacuse BUILT_SOURCES are only done before a "make all/check"
|
||||
@ -162,7 +170,7 @@ conformance_test_runner-conformance_test_runner.$(OBJEXT): conformance.pb.h
|
||||
|
||||
conformance_cpp_LDADD = $(top_srcdir)/src/libprotobuf.la
|
||||
conformance_cpp_SOURCES = conformance_cpp.cc
|
||||
nodist_conformance_cpp_SOURCES = conformance.pb.cc
|
||||
nodist_conformance_cpp_SOURCES = conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
|
||||
conformance_cpp_CPPFLAGS = -I$(top_srcdir)/src
|
||||
# Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check"
|
||||
# so a direct "make test_cpp" could fail if parallel enough.
|
||||
@ -173,7 +181,7 @@ if OBJC_CONFORMANCE_TEST
|
||||
bin_PROGRAMS += conformance-objc
|
||||
|
||||
conformance_objc_SOURCES = conformance_objc.m ../objectivec/GPBProtocolBuffers.m
|
||||
nodist_conformance_objc_SOURCES = Conformance.pbobjc.m
|
||||
nodist_conformance_objc_SOURCES = Conformance.pbobjc.m google/protobuf/TestMessagesProto3.pbobjc.m
|
||||
# On travis, the build fails without the isysroot because whatever system
|
||||
# headers are being found don't include generics support for
|
||||
# NSArray/NSDictionary, the only guess is their image at one time had an odd
|
||||
@ -182,7 +190,7 @@ conformance_objc_CPPFLAGS = -I$(top_srcdir)/objectivec -isysroot `xcrun --sdk ma
|
||||
conformance_objc_LDFLAGS = -framework Foundation
|
||||
# Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check"
|
||||
# so a direct "make test_objc" could fail if parallel enough.
|
||||
conformance_objc-conformance_objc.$(OBJEXT): Conformance.pbobjc.h
|
||||
conformance_objc-conformance_objc.$(OBJEXT): Conformance.pbobjc.h google/protobuf/TestMessagesProto3.pbobjc.h
|
||||
|
||||
endif
|
||||
|
||||
@ -221,7 +229,7 @@ MAINTAINERCLEANFILES = \
|
||||
Makefile.in
|
||||
|
||||
javac_middleman: ConformanceJava.java protoc_middleman $(other_language_protoc_outputs)
|
||||
jar=`ls ../java/util/target/*jar-with-dependencies.jar` && javac -classpath ../java/target/classes:$$jar ConformanceJava.java com/google/protobuf/conformance/Conformance.java
|
||||
jar=`ls ../java/util/target/*jar-with-dependencies.jar` && javac -classpath ../java/target/classes:$$jar ConformanceJava.java com/google/protobuf/conformance/Conformance.java com/google/protobuf_test_messages/proto3/TestMessagesProto3.java
|
||||
@touch javac_middleman
|
||||
|
||||
conformance-java: javac_middleman
|
||||
|
@ -32,13 +32,6 @@ syntax = "proto3";
|
||||
package conformance;
|
||||
option java_package = "com.google.protobuf.conformance";
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
// This defines the conformance testing protocol. This protocol exists between
|
||||
// the conformance test suite itself and the code being tested. For each test,
|
||||
// the suite will send a ConformanceRequest message and expect a
|
||||
@ -70,8 +63,13 @@ enum WireFormat {
|
||||
// 2. parse the protobuf or JSON payload in "payload" (which may fail)
|
||||
// 3. if the parse succeeded, serialize the message in the requested format.
|
||||
message ConformanceRequest {
|
||||
// The payload (whether protobuf of JSON) is always for a TestAllTypes proto
|
||||
// (see below).
|
||||
// The payload (whether protobuf of JSON) is always for a
|
||||
// protobuf_test_messages.proto3.TestAllTypes proto (as defined in
|
||||
// src/google/protobuf/proto3_test_messages.proto).
|
||||
//
|
||||
// TODO(haberman): if/when we expand the conformance tests to support proto2,
|
||||
// we will want to include a field that lets the payload/response be a
|
||||
// protobuf_test_messages.proto2.TestAllTypes message instead.
|
||||
oneof payload {
|
||||
bytes protobuf_payload = 1;
|
||||
string json_payload = 2;
|
||||
@ -114,172 +112,3 @@ message ConformanceResponse {
|
||||
string skipped = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// This proto includes every type of field in both singular and repeated
|
||||
// forms.
|
||||
message TestAllTypes {
|
||||
message NestedMessage {
|
||||
int32 a = 1;
|
||||
TestAllTypes corecursive = 2;
|
||||
}
|
||||
|
||||
enum NestedEnum {
|
||||
FOO = 0;
|
||||
BAR = 1;
|
||||
BAZ = 2;
|
||||
NEG = -1; // Intentionally negative.
|
||||
}
|
||||
|
||||
// Singular
|
||||
int32 optional_int32 = 1;
|
||||
int64 optional_int64 = 2;
|
||||
uint32 optional_uint32 = 3;
|
||||
uint64 optional_uint64 = 4;
|
||||
sint32 optional_sint32 = 5;
|
||||
sint64 optional_sint64 = 6;
|
||||
fixed32 optional_fixed32 = 7;
|
||||
fixed64 optional_fixed64 = 8;
|
||||
sfixed32 optional_sfixed32 = 9;
|
||||
sfixed64 optional_sfixed64 = 10;
|
||||
float optional_float = 11;
|
||||
double optional_double = 12;
|
||||
bool optional_bool = 13;
|
||||
string optional_string = 14;
|
||||
bytes optional_bytes = 15;
|
||||
|
||||
NestedMessage optional_nested_message = 18;
|
||||
ForeignMessage optional_foreign_message = 19;
|
||||
|
||||
NestedEnum optional_nested_enum = 21;
|
||||
ForeignEnum optional_foreign_enum = 22;
|
||||
|
||||
string optional_string_piece = 24 [ctype=STRING_PIECE];
|
||||
string optional_cord = 25 [ctype=CORD];
|
||||
|
||||
TestAllTypes recursive_message = 27;
|
||||
|
||||
// Repeated
|
||||
repeated int32 repeated_int32 = 31;
|
||||
repeated int64 repeated_int64 = 32;
|
||||
repeated uint32 repeated_uint32 = 33;
|
||||
repeated uint64 repeated_uint64 = 34;
|
||||
repeated sint32 repeated_sint32 = 35;
|
||||
repeated sint64 repeated_sint64 = 36;
|
||||
repeated fixed32 repeated_fixed32 = 37;
|
||||
repeated fixed64 repeated_fixed64 = 38;
|
||||
repeated sfixed32 repeated_sfixed32 = 39;
|
||||
repeated sfixed64 repeated_sfixed64 = 40;
|
||||
repeated float repeated_float = 41;
|
||||
repeated double repeated_double = 42;
|
||||
repeated bool repeated_bool = 43;
|
||||
repeated string repeated_string = 44;
|
||||
repeated bytes repeated_bytes = 45;
|
||||
|
||||
repeated NestedMessage repeated_nested_message = 48;
|
||||
repeated ForeignMessage repeated_foreign_message = 49;
|
||||
|
||||
repeated NestedEnum repeated_nested_enum = 51;
|
||||
repeated ForeignEnum repeated_foreign_enum = 52;
|
||||
|
||||
repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
|
||||
repeated string repeated_cord = 55 [ctype=CORD];
|
||||
|
||||
// Map
|
||||
map < int32, int32> map_int32_int32 = 56;
|
||||
map < int64, int64> map_int64_int64 = 57;
|
||||
map < uint32, uint32> map_uint32_uint32 = 58;
|
||||
map < uint64, uint64> map_uint64_uint64 = 59;
|
||||
map < sint32, sint32> map_sint32_sint32 = 60;
|
||||
map < sint64, sint64> map_sint64_sint64 = 61;
|
||||
map < fixed32, fixed32> map_fixed32_fixed32 = 62;
|
||||
map < fixed64, fixed64> map_fixed64_fixed64 = 63;
|
||||
map <sfixed32, sfixed32> map_sfixed32_sfixed32 = 64;
|
||||
map <sfixed64, sfixed64> map_sfixed64_sfixed64 = 65;
|
||||
map < int32, float> map_int32_float = 66;
|
||||
map < int32, double> map_int32_double = 67;
|
||||
map < bool, bool> map_bool_bool = 68;
|
||||
map < string, string> map_string_string = 69;
|
||||
map < string, bytes> map_string_bytes = 70;
|
||||
map < string, NestedMessage> map_string_nested_message = 71;
|
||||
map < string, ForeignMessage> map_string_foreign_message = 72;
|
||||
map < string, NestedEnum> map_string_nested_enum = 73;
|
||||
map < string, ForeignEnum> map_string_foreign_enum = 74;
|
||||
|
||||
oneof oneof_field {
|
||||
uint32 oneof_uint32 = 111;
|
||||
NestedMessage oneof_nested_message = 112;
|
||||
string oneof_string = 113;
|
||||
bytes oneof_bytes = 114;
|
||||
bool oneof_bool = 115;
|
||||
uint64 oneof_uint64 = 116;
|
||||
float oneof_float = 117;
|
||||
double oneof_double = 118;
|
||||
NestedEnum oneof_enum = 119;
|
||||
}
|
||||
|
||||
// Well-known types
|
||||
google.protobuf.BoolValue optional_bool_wrapper = 201;
|
||||
google.protobuf.Int32Value optional_int32_wrapper = 202;
|
||||
google.protobuf.Int64Value optional_int64_wrapper = 203;
|
||||
google.protobuf.UInt32Value optional_uint32_wrapper = 204;
|
||||
google.protobuf.UInt64Value optional_uint64_wrapper = 205;
|
||||
google.protobuf.FloatValue optional_float_wrapper = 206;
|
||||
google.protobuf.DoubleValue optional_double_wrapper = 207;
|
||||
google.protobuf.StringValue optional_string_wrapper = 208;
|
||||
google.protobuf.BytesValue optional_bytes_wrapper = 209;
|
||||
|
||||
repeated google.protobuf.BoolValue repeated_bool_wrapper = 211;
|
||||
repeated google.protobuf.Int32Value repeated_int32_wrapper = 212;
|
||||
repeated google.protobuf.Int64Value repeated_int64_wrapper = 213;
|
||||
repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 214;
|
||||
repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 215;
|
||||
repeated google.protobuf.FloatValue repeated_float_wrapper = 216;
|
||||
repeated google.protobuf.DoubleValue repeated_double_wrapper = 217;
|
||||
repeated google.protobuf.StringValue repeated_string_wrapper = 218;
|
||||
repeated google.protobuf.BytesValue repeated_bytes_wrapper = 219;
|
||||
|
||||
google.protobuf.Duration optional_duration = 301;
|
||||
google.protobuf.Timestamp optional_timestamp = 302;
|
||||
google.protobuf.FieldMask optional_field_mask = 303;
|
||||
google.protobuf.Struct optional_struct = 304;
|
||||
google.protobuf.Any optional_any = 305;
|
||||
google.protobuf.Value optional_value = 306;
|
||||
|
||||
repeated google.protobuf.Duration repeated_duration = 311;
|
||||
repeated google.protobuf.Timestamp repeated_timestamp = 312;
|
||||
repeated google.protobuf.FieldMask repeated_fieldmask = 313;
|
||||
repeated google.protobuf.Struct repeated_struct = 324;
|
||||
repeated google.protobuf.Any repeated_any = 315;
|
||||
repeated google.protobuf.Value repeated_value = 316;
|
||||
|
||||
// Test field-name-to-JSON-name convention.
|
||||
// (protobuf says names can be any valid C/C++ identifier.)
|
||||
int32 fieldname1 = 401;
|
||||
int32 field_name2 = 402;
|
||||
int32 _field_name3 = 403;
|
||||
int32 field__name4_ = 404;
|
||||
int32 field0name5 = 405;
|
||||
int32 field_0_name6 = 406;
|
||||
int32 fieldName7 = 407;
|
||||
int32 FieldName8 = 408;
|
||||
int32 field_Name9 = 409;
|
||||
int32 Field_Name10 = 410;
|
||||
int32 FIELD_NAME11 = 411;
|
||||
int32 FIELD_name12 = 412;
|
||||
int32 __field_name13 = 413;
|
||||
int32 __Field_name14 = 414;
|
||||
int32 field__name15 = 415;
|
||||
int32 field__Name16 = 416;
|
||||
int32 field_name17__ = 417;
|
||||
int32 Field_name18__ = 418;
|
||||
}
|
||||
|
||||
message ForeignMessage {
|
||||
int32 c = 1;
|
||||
}
|
||||
|
||||
enum ForeignEnum {
|
||||
FOREIGN_FOO = 0;
|
||||
FOREIGN_BAR = 1;
|
||||
FOREIGN_BAZ = 2;
|
||||
}
|
||||
|
@ -33,12 +33,12 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "conformance.pb.h"
|
||||
#include "google/protobuf/test_messages_proto3.pb.h"
|
||||
#include <google/protobuf/util/json_util.h>
|
||||
#include <google/protobuf/util/type_resolver_util.h>
|
||||
|
||||
using conformance::ConformanceRequest;
|
||||
using conformance::ConformanceResponse;
|
||||
using conformance::TestAllTypes;
|
||||
using google::protobuf::Descriptor;
|
||||
using google::protobuf::DescriptorPool;
|
||||
using google::protobuf::internal::scoped_ptr;
|
||||
@ -47,6 +47,7 @@ using google::protobuf::util::JsonToBinaryString;
|
||||
using google::protobuf::util::NewTypeResolverForDescriptorPool;
|
||||
using google::protobuf::util::Status;
|
||||
using google::protobuf::util::TypeResolver;
|
||||
using protobuf_test_messages::proto3::TestAllTypes;
|
||||
using std::string;
|
||||
|
||||
static const char kTypeUrlPrefix[] = "type.googleapis.com";
|
||||
|
@ -31,6 +31,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "Conformance.pbobjc.h"
|
||||
#import "google/protobuf/TestMessagesProto3.pbobjc.h"
|
||||
|
||||
static void Die(NSString *format, ...) __dead2;
|
||||
|
||||
|
@ -38,8 +38,9 @@ See conformance.proto for more information.
|
||||
import struct
|
||||
import sys
|
||||
import os
|
||||
from google.protobuf import message
|
||||
from google.protobuf import json_format
|
||||
from google.protobuf import message
|
||||
from google.protobuf import test_messages_proto3_pb2
|
||||
import conformance_pb2
|
||||
|
||||
sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0)
|
||||
@ -52,9 +53,9 @@ class ProtocolError(Exception):
|
||||
pass
|
||||
|
||||
def do_test(request):
|
||||
test_message = conformance_pb2.TestAllTypes()
|
||||
test_message = test_messages_proto3_pb2.TestAllTypes()
|
||||
response = conformance_pb2.ConformanceResponse()
|
||||
test_message = conformance_pb2.TestAllTypes()
|
||||
test_message = test_messages_proto3_pb2.TestAllTypes()
|
||||
|
||||
try:
|
||||
if request.WhichOneof('payload') == 'protobuf_payload':
|
||||
|
@ -31,20 +31,21 @@
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
require 'conformance_pb'
|
||||
require 'google/protobuf/test_messages_proto3_pb'
|
||||
|
||||
$test_count = 0
|
||||
$verbose = false
|
||||
|
||||
def do_test(request)
|
||||
test_message = Conformance::TestAllTypes.new
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.new
|
||||
response = Conformance::ConformanceResponse.new
|
||||
|
||||
begin
|
||||
case request.payload
|
||||
when :protobuf_payload
|
||||
begin
|
||||
test_message =
|
||||
Conformance::TestAllTypes.decode(request.protobuf_payload)
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.decode(
|
||||
request.protobuf_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
return response
|
||||
@ -52,7 +53,8 @@ def do_test(request)
|
||||
|
||||
when :json_payload
|
||||
begin
|
||||
test_message = Conformance::TestAllTypes.decode_json(request.json_payload)
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.decode_json(
|
||||
request.json_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
return response
|
||||
|
@ -34,11 +34,13 @@
|
||||
|
||||
#include "conformance.pb.h"
|
||||
#include "conformance_test.h"
|
||||
#include "google/protobuf/test_messages_proto3.pb.h"
|
||||
|
||||
#include <google/protobuf/stubs/common.h>
|
||||
#include <google/protobuf/stubs/stringprintf.h>
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include <google/protobuf/util/json_util.h>
|
||||
#include <google/protobuf/util/field_comparator.h>
|
||||
#include <google/protobuf/util/json_util.h>
|
||||
#include <google/protobuf/util/message_differencer.h>
|
||||
#include <google/protobuf/util/type_resolver_util.h>
|
||||
#include <google/protobuf/wire_format_lite.h>
|
||||
@ -47,7 +49,6 @@
|
||||
|
||||
using conformance::ConformanceRequest;
|
||||
using conformance::ConformanceResponse;
|
||||
using conformance::TestAllTypes;
|
||||
using conformance::WireFormat;
|
||||
using google::protobuf::Descriptor;
|
||||
using google::protobuf::FieldDescriptor;
|
||||
@ -58,6 +59,7 @@ using google::protobuf::util::JsonToBinaryString;
|
||||
using google::protobuf::util::MessageDifferencer;
|
||||
using google::protobuf::util::NewTypeResolverForDescriptorPool;
|
||||
using google::protobuf::util::Status;
|
||||
using protobuf_test_messages::proto3::TestAllTypes;
|
||||
using std::string;
|
||||
|
||||
namespace {
|
||||
@ -2040,13 +2042,13 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"Any", REQUIRED,
|
||||
R"({
|
||||
"optionalAny": {
|
||||
"@type": "type.googleapis.com/conformance.TestAllTypes",
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes",
|
||||
"optionalInt32": 12345
|
||||
}
|
||||
})",
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/conformance.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
@ -2057,7 +2059,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"optionalAny": {
|
||||
"@type": "type.googleapis.com/google.protobuf.Any",
|
||||
"value": {
|
||||
"@type": "type.googleapis.com/conformance.TestAllTypes",
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes",
|
||||
"optionalInt32": 12345
|
||||
}
|
||||
}
|
||||
@ -2065,7 +2067,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/google.protobuf.Any] {
|
||||
[type.googleapis.com/conformance.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
@ -2077,12 +2079,12 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
R"({
|
||||
"optionalAny": {
|
||||
"optionalInt32": 12345,
|
||||
"@type": "type.googleapis.com/conformance.TestAllTypes"
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes"
|
||||
}
|
||||
})",
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/conformance.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
|
@ -49,9 +49,14 @@
|
||||
namespace conformance {
|
||||
class ConformanceRequest;
|
||||
class ConformanceResponse;
|
||||
class TestAllTypes;
|
||||
} // namespace conformance
|
||||
|
||||
namespace protobuf_test_messages {
|
||||
namespace proto3 {
|
||||
class TestAllTypes;
|
||||
} // namespace proto3
|
||||
} // namespace protobuf_test_messages
|
||||
|
||||
namespace google {
|
||||
namespace protobuf {
|
||||
|
||||
@ -165,14 +170,16 @@ class ConformanceTestSuite {
|
||||
ConformanceLevel level,
|
||||
const string& input_json,
|
||||
const string& equivalent_text_format);
|
||||
void RunValidJsonTestWithProtobufInput(const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const conformance::TestAllTypes& input,
|
||||
const string& equivalent_text_format);
|
||||
void RunValidProtobufTest(const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const conformance::TestAllTypes& input,
|
||||
const string& equivalent_text_format);
|
||||
void RunValidJsonTestWithProtobufInput(
|
||||
const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const protobuf_test_messages::proto3::TestAllTypes& input,
|
||||
const string& equivalent_text_format);
|
||||
void RunValidProtobufTest(
|
||||
const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const protobuf_test_messages::proto3::TestAllTypes& input,
|
||||
const string& equivalent_text_format);
|
||||
|
||||
typedef std::function<bool(const Json::Value&)> Validator;
|
||||
void RunValidJsonTestWithValidator(const string& test_name,
|
||||
|
@ -54,6 +54,11 @@ $PROTOC -Icsharp/protos --csharp_out=csharp/src/Google.Protobuf.Test \
|
||||
--csharp_opt=base_namespace=UnitTest.Issues \
|
||||
csharp/protos/unittest_issues.proto
|
||||
|
||||
# Don't specify a base namespace at all; we just want to make sure the
|
||||
# results end up in TestProtos.
|
||||
$PROTOC -Isrc --csharp_out=csharp/src/Google.Protobuf.Test/TestProtos \
|
||||
src/google/protobuf/test_messages_proto3.proto
|
||||
|
||||
# AddressBook sample protos
|
||||
$PROTOC -Iexamples --csharp_out=csharp/src/AddressBook \
|
||||
examples/addressbook.proto
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -48,7 +48,7 @@ namespace Google.Protobuf.Conformance
|
||||
// This way we get the binary streams instead of readers/writers.
|
||||
var input = new BinaryReader(Console.OpenStandardInput());
|
||||
var output = new BinaryWriter(Console.OpenStandardOutput());
|
||||
var typeRegistry = TypeRegistry.FromMessages(TestAllTypes.Descriptor);
|
||||
var typeRegistry = TypeRegistry.FromMessages(ProtobufTestMessages.Proto3.TestAllTypes.Descriptor);
|
||||
|
||||
int count = 0;
|
||||
while (RunTest(input, output, typeRegistry))
|
||||
@ -81,17 +81,17 @@ namespace Google.Protobuf.Conformance
|
||||
|
||||
private static ConformanceResponse PerformRequest(ConformanceRequest request, TypeRegistry typeRegistry)
|
||||
{
|
||||
TestAllTypes message;
|
||||
ProtobufTestMessages.Proto3.TestAllTypes message;
|
||||
try
|
||||
{
|
||||
switch (request.PayloadCase)
|
||||
{
|
||||
case ConformanceRequest.PayloadOneofCase.JsonPayload:
|
||||
var parser = new JsonParser(new JsonParser.Settings(20, typeRegistry));
|
||||
message = parser.Parse<TestAllTypes>(request.JsonPayload);
|
||||
message = parser.Parse<ProtobufTestMessages.Proto3.TestAllTypes>(request.JsonPayload);
|
||||
break;
|
||||
case ConformanceRequest.PayloadOneofCase.ProtobufPayload:
|
||||
message = TestAllTypes.Parser.ParseFrom(request.ProtobufPayload);
|
||||
message = ProtobufTestMessages.Proto3.TestAllTypes.Parser.ParseFrom(request.ProtobufPayload);
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Unsupported request payload: " + request.PayloadCase);
|
||||
|
@ -4,10 +4,12 @@
|
||||
"emitEntryPoint": true
|
||||
},
|
||||
"dependencies": {
|
||||
"Google.Protobuf": { "target": "project" }
|
||||
"Google.Protobuf": { "target": "project" },
|
||||
"Google.Protobuf.Test": { "target": "project" }
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp1.0": {
|
||||
"imports": [ "dnxcore50", "netcoreapp1.0", "portable-net45+win8" ],
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"type": "platform",
|
||||
|
@ -11,9 +11,11 @@
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
|
||||
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
</Project>
|
3688
csharp/src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs
Normal file
3688
csharp/src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -78,6 +78,7 @@ def generate_proto(source, require = True):
|
||||
def GenerateUnittestProtos():
|
||||
generate_proto("../src/google/protobuf/any_test.proto", False)
|
||||
generate_proto("../src/google/protobuf/map_unittest.proto", False)
|
||||
generate_proto("../src/google/protobuf/test_messages_proto3.proto", False)
|
||||
generate_proto("../src/google/protobuf/unittest_arena.proto", False)
|
||||
generate_proto("../src/google/protobuf/unittest_no_arena.proto", False)
|
||||
generate_proto("../src/google/protobuf/unittest_no_arena_import.proto", False)
|
||||
|
@ -44,11 +44,11 @@ if RUBY_PLATFORM == "java"
|
||||
raise ArgumentError, "maven needs to be installed"
|
||||
end
|
||||
task :clean do
|
||||
system("mvn clean")
|
||||
system("mvn --batch-mode clean")
|
||||
end
|
||||
|
||||
task :compile do
|
||||
system("mvn package")
|
||||
system("mvn --batch-mode package")
|
||||
end
|
||||
else
|
||||
Rake::ExtensionTask.new("protobuf_c", spec) do |ext|
|
||||
|
227
src/google/protobuf/test_messages_proto3.proto
Normal file
227
src/google/protobuf/test_messages_proto3.proto
Normal file
@ -0,0 +1,227 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// Test schema for proto3 messages. This test schema is used by:
|
||||
//
|
||||
// - benchmarks
|
||||
// - fuzz tests
|
||||
// - conformance tests
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package protobuf_test_messages.proto3;
|
||||
option java_package = "com.google.protobuf_test_messages.proto3";
|
||||
|
||||
// This is the default, but we specify it here explicitly.
|
||||
option optimize_for = SPEED;
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
|
||||
// This proto includes every type of field in both singular and repeated
|
||||
// forms.
|
||||
//
|
||||
// Also, crucially, all messages and enums in this file are eventually
|
||||
// submessages of this message. So for example, a fuzz test of TestAllTypes
|
||||
// could trigger bugs that occur in any message type in this file. We verify
|
||||
// this stays true in a unit test.
|
||||
message TestAllTypes {
|
||||
message NestedMessage {
|
||||
int32 a = 1;
|
||||
TestAllTypes corecursive = 2;
|
||||
}
|
||||
|
||||
enum NestedEnum {
|
||||
FOO = 0;
|
||||
BAR = 1;
|
||||
BAZ = 2;
|
||||
NEG = -1; // Intentionally negative.
|
||||
}
|
||||
|
||||
// Singular
|
||||
int32 optional_int32 = 1;
|
||||
int64 optional_int64 = 2;
|
||||
uint32 optional_uint32 = 3;
|
||||
uint64 optional_uint64 = 4;
|
||||
sint32 optional_sint32 = 5;
|
||||
sint64 optional_sint64 = 6;
|
||||
fixed32 optional_fixed32 = 7;
|
||||
fixed64 optional_fixed64 = 8;
|
||||
sfixed32 optional_sfixed32 = 9;
|
||||
sfixed64 optional_sfixed64 = 10;
|
||||
float optional_float = 11;
|
||||
double optional_double = 12;
|
||||
bool optional_bool = 13;
|
||||
string optional_string = 14;
|
||||
bytes optional_bytes = 15;
|
||||
|
||||
NestedMessage optional_nested_message = 18;
|
||||
ForeignMessage optional_foreign_message = 19;
|
||||
|
||||
NestedEnum optional_nested_enum = 21;
|
||||
ForeignEnum optional_foreign_enum = 22;
|
||||
|
||||
string optional_string_piece = 24 [ctype=STRING_PIECE];
|
||||
string optional_cord = 25 [ctype=CORD];
|
||||
|
||||
TestAllTypes recursive_message = 27;
|
||||
|
||||
// Repeated
|
||||
repeated int32 repeated_int32 = 31;
|
||||
repeated int64 repeated_int64 = 32;
|
||||
repeated uint32 repeated_uint32 = 33;
|
||||
repeated uint64 repeated_uint64 = 34;
|
||||
repeated sint32 repeated_sint32 = 35;
|
||||
repeated sint64 repeated_sint64 = 36;
|
||||
repeated fixed32 repeated_fixed32 = 37;
|
||||
repeated fixed64 repeated_fixed64 = 38;
|
||||
repeated sfixed32 repeated_sfixed32 = 39;
|
||||
repeated sfixed64 repeated_sfixed64 = 40;
|
||||
repeated float repeated_float = 41;
|
||||
repeated double repeated_double = 42;
|
||||
repeated bool repeated_bool = 43;
|
||||
repeated string repeated_string = 44;
|
||||
repeated bytes repeated_bytes = 45;
|
||||
|
||||
repeated NestedMessage repeated_nested_message = 48;
|
||||
repeated ForeignMessage repeated_foreign_message = 49;
|
||||
|
||||
repeated NestedEnum repeated_nested_enum = 51;
|
||||
repeated ForeignEnum repeated_foreign_enum = 52;
|
||||
|
||||
repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
|
||||
repeated string repeated_cord = 55 [ctype=CORD];
|
||||
|
||||
// Map
|
||||
map < int32, int32> map_int32_int32 = 56;
|
||||
map < int64, int64> map_int64_int64 = 57;
|
||||
map < uint32, uint32> map_uint32_uint32 = 58;
|
||||
map < uint64, uint64> map_uint64_uint64 = 59;
|
||||
map < sint32, sint32> map_sint32_sint32 = 60;
|
||||
map < sint64, sint64> map_sint64_sint64 = 61;
|
||||
map < fixed32, fixed32> map_fixed32_fixed32 = 62;
|
||||
map < fixed64, fixed64> map_fixed64_fixed64 = 63;
|
||||
map <sfixed32, sfixed32> map_sfixed32_sfixed32 = 64;
|
||||
map <sfixed64, sfixed64> map_sfixed64_sfixed64 = 65;
|
||||
map < int32, float> map_int32_float = 66;
|
||||
map < int32, double> map_int32_double = 67;
|
||||
map < bool, bool> map_bool_bool = 68;
|
||||
map < string, string> map_string_string = 69;
|
||||
map < string, bytes> map_string_bytes = 70;
|
||||
map < string, NestedMessage> map_string_nested_message = 71;
|
||||
map < string, ForeignMessage> map_string_foreign_message = 72;
|
||||
map < string, NestedEnum> map_string_nested_enum = 73;
|
||||
map < string, ForeignEnum> map_string_foreign_enum = 74;
|
||||
|
||||
oneof oneof_field {
|
||||
uint32 oneof_uint32 = 111;
|
||||
NestedMessage oneof_nested_message = 112;
|
||||
string oneof_string = 113;
|
||||
bytes oneof_bytes = 114;
|
||||
bool oneof_bool = 115;
|
||||
uint64 oneof_uint64 = 116;
|
||||
float oneof_float = 117;
|
||||
double oneof_double = 118;
|
||||
NestedEnum oneof_enum = 119;
|
||||
}
|
||||
|
||||
// Well-known types
|
||||
google.protobuf.BoolValue optional_bool_wrapper = 201;
|
||||
google.protobuf.Int32Value optional_int32_wrapper = 202;
|
||||
google.protobuf.Int64Value optional_int64_wrapper = 203;
|
||||
google.protobuf.UInt32Value optional_uint32_wrapper = 204;
|
||||
google.protobuf.UInt64Value optional_uint64_wrapper = 205;
|
||||
google.protobuf.FloatValue optional_float_wrapper = 206;
|
||||
google.protobuf.DoubleValue optional_double_wrapper = 207;
|
||||
google.protobuf.StringValue optional_string_wrapper = 208;
|
||||
google.protobuf.BytesValue optional_bytes_wrapper = 209;
|
||||
|
||||
repeated google.protobuf.BoolValue repeated_bool_wrapper = 211;
|
||||
repeated google.protobuf.Int32Value repeated_int32_wrapper = 212;
|
||||
repeated google.protobuf.Int64Value repeated_int64_wrapper = 213;
|
||||
repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 214;
|
||||
repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 215;
|
||||
repeated google.protobuf.FloatValue repeated_float_wrapper = 216;
|
||||
repeated google.protobuf.DoubleValue repeated_double_wrapper = 217;
|
||||
repeated google.protobuf.StringValue repeated_string_wrapper = 218;
|
||||
repeated google.protobuf.BytesValue repeated_bytes_wrapper = 219;
|
||||
|
||||
google.protobuf.Duration optional_duration = 301;
|
||||
google.protobuf.Timestamp optional_timestamp = 302;
|
||||
google.protobuf.FieldMask optional_field_mask = 303;
|
||||
google.protobuf.Struct optional_struct = 304;
|
||||
google.protobuf.Any optional_any = 305;
|
||||
google.protobuf.Value optional_value = 306;
|
||||
|
||||
repeated google.protobuf.Duration repeated_duration = 311;
|
||||
repeated google.protobuf.Timestamp repeated_timestamp = 312;
|
||||
repeated google.protobuf.FieldMask repeated_fieldmask = 313;
|
||||
repeated google.protobuf.Struct repeated_struct = 324;
|
||||
repeated google.protobuf.Any repeated_any = 315;
|
||||
repeated google.protobuf.Value repeated_value = 316;
|
||||
|
||||
// Test field-name-to-JSON-name convention.
|
||||
// (protobuf says names can be any valid C/C++ identifier.)
|
||||
int32 fieldname1 = 401;
|
||||
int32 field_name2 = 402;
|
||||
int32 _field_name3 = 403;
|
||||
int32 field__name4_ = 404;
|
||||
int32 field0name5 = 405;
|
||||
int32 field_0_name6 = 406;
|
||||
int32 fieldName7 = 407;
|
||||
int32 FieldName8 = 408;
|
||||
int32 field_Name9 = 409;
|
||||
int32 Field_Name10 = 410;
|
||||
int32 FIELD_NAME11 = 411;
|
||||
int32 FIELD_name12 = 412;
|
||||
int32 __field_name13 = 413;
|
||||
int32 __Field_name14 = 414;
|
||||
int32 field__name15 = 415;
|
||||
int32 field__Name16 = 416;
|
||||
int32 field_name17__ = 417;
|
||||
int32 Field_name18__ = 418;
|
||||
}
|
||||
|
||||
message ForeignMessage {
|
||||
int32 c = 1;
|
||||
}
|
||||
|
||||
enum ForeignEnum {
|
||||
FOREIGN_FOO = 0;
|
||||
FOREIGN_BAR = 1;
|
||||
FOREIGN_BAZ = 2;
|
||||
}
|
Loading…
Reference in New Issue
Block a user