add some test proto2 supported, add js proto2 supported, fixed some error
This commit is contained in:
parent
a7d5be6a91
commit
3adb054bbf
@ -5,7 +5,7 @@ import com.google.protobuf.CodedInputStream;
|
||||
import com.google.protobuf.conformance.Conformance;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf_test_messages.proto3.TestMessagesProto3;
|
||||
import com.google.protobuf_test_messages.proto3.TestMessagesProto3.TestAllTypes;
|
||||
import com.google.protobuf_test_messages.proto3.TestMessagesProto3.TestAllTypesProto3;
|
||||
import com.google.protobuf_test_messages.proto2.TestMessagesProto2;
|
||||
import com.google.protobuf_test_messages.proto2.TestMessagesProto2.TestAllTypesProto2;
|
||||
import com.google.protobuf.ExtensionRegistry;
|
||||
@ -205,7 +205,7 @@ class ConformanceJava {
|
||||
|
||||
private Conformance.ConformanceResponse doTest(Conformance.ConformanceRequest request) {
|
||||
com.google.protobuf.AbstractMessage testMessage;
|
||||
boolean isProto3 = request.getMessageType().equals("protobuf_test_messages.proto3.TestAllTypes");
|
||||
boolean isProto3 = request.getMessageType().equals("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
boolean isProto2 = request.getMessageType().equals("protobuf_test_messages.proto2.TestAllTypesProto2");
|
||||
|
||||
switch (request.getPayloadCase()) {
|
||||
@ -214,7 +214,7 @@ class ConformanceJava {
|
||||
try {
|
||||
ExtensionRegistry extensions = ExtensionRegistry.newInstance();
|
||||
TestMessagesProto3.registerAllExtensions(extensions);
|
||||
testMessage = parseBinary(request.getProtobufPayload(), TestAllTypes.parser(), extensions);
|
||||
testMessage = parseBinary(request.getProtobufPayload(), TestAllTypesProto3.parser(), extensions);
|
||||
} catch (InvalidProtocolBufferException e) {
|
||||
return Conformance.ConformanceResponse.newBuilder().setParseError(e.getMessage()).build();
|
||||
}
|
||||
@ -233,7 +233,8 @@ class ConformanceJava {
|
||||
}
|
||||
case JSON_PAYLOAD: {
|
||||
try {
|
||||
TestMessagesProto3.TestAllTypes.Builder builder = TestMessagesProto3.TestAllTypes.newBuilder();
|
||||
TestMessagesProto3.TestAllTypesProto3.Builder builder =
|
||||
TestMessagesProto3.TestAllTypesProto3.newBuilder();
|
||||
JsonFormat.parser().usingTypeRegistry(typeRegistry)
|
||||
.merge(request.getJsonPayload(), builder);
|
||||
testMessage = builder.build();
|
||||
@ -301,7 +302,7 @@ class ConformanceJava {
|
||||
|
||||
public void run() throws Exception {
|
||||
typeRegistry = TypeRegistry.newBuilder().add(
|
||||
TestMessagesProto3.TestAllTypes.getDescriptor()).build();
|
||||
TestMessagesProto3.TestAllTypesProto3.getDescriptor()).build();
|
||||
while (doTestIo()) {
|
||||
this.testCount++;
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ if USE_EXTERNAL_PROTOC
|
||||
# Some implementations include pre-generated versions of well-known types.
|
||||
protoc_middleman: $(conformance_protoc_inputs) $(conformance_proto2_protoc_inputs) $(well_known_type_protoc_inputs) google-protobuf
|
||||
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --ruby_out=. --objc_out=. --python_out=. --php_out=. --js_out=import_style=commonjs,binary:. $(conformance_protoc_inputs)
|
||||
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --python_out=. $(conformance_proto2_protoc_inputs)
|
||||
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --python_out=. --js_out=import_style=commonjs,binary:. $(conformance_proto2_protoc_inputs)
|
||||
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --ruby_out=. --python_out=. --php_out=. --js_out=import_style=commonjs,binary:google-protobuf $(well_known_type_protoc_inputs)
|
||||
## $(PROTOC) -I$(srcdir) -I$(top_srcdir) --java_out=lite:lite $(conformance_protoc_inputs) $(well_known_type_protoc_inputs)
|
||||
touch protoc_middleman
|
||||
@ -264,7 +264,7 @@ else
|
||||
# building out-of-tree.
|
||||
protoc_middleman: $(top_srcdir)/src/protoc$(EXEEXT) $(conformance_protoc_inputs) $(conformance_proto2_protoc_inputs) $(well_known_type_protoc_inputs) google-protobuf
|
||||
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --ruby_out=$$oldpwd --objc_out=$$oldpwd --python_out=$$oldpwd --php_out=$$oldpwd --js_out=import_style=commonjs,binary:$$oldpwd $(conformance_protoc_inputs) )
|
||||
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --python_out=$$oldpwd $(conformance_proto2_protoc_inputs) )
|
||||
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --python_out=$$oldpwd --js_out=import_style=commonjs,binary:$$oldpwd $(conformance_proto2_protoc_inputs) )
|
||||
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --ruby_out=$$oldpwd --python_out=$$oldpwd --php_out=$$oldpwd --js_out=import_style=commonjs,binary:$$oldpwd/google-protobuf $(well_known_type_protoc_inputs) )
|
||||
## @mkdir -p lite
|
||||
## oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --java_out=lite:$$oldpwd/lite $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) )
|
||||
|
@ -44,14 +44,14 @@ using conformance::ConformanceResponse;
|
||||
using google::protobuf::Descriptor;
|
||||
using google::protobuf::DescriptorPool;
|
||||
using google::protobuf::Message;
|
||||
using google::protobuf::MessageFactory;
|
||||
using google::protobuf::internal::scoped_ptr;
|
||||
using google::protobuf::util::BinaryToJsonString;
|
||||
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 protobuf_test_messages::proto2::TestAllTypesProto2;
|
||||
using protobuf_test_messages::proto3::TestAllTypesProto3;
|
||||
using std::string;
|
||||
|
||||
static const char kTypeUrlPrefix[] = "type.googleapis.com";
|
||||
@ -92,18 +92,12 @@ void CheckedWrite(int fd, const void *buf, size_t len) {
|
||||
|
||||
void DoTest(const ConformanceRequest& request, ConformanceResponse* response) {
|
||||
Message *test_message;
|
||||
bool isProto3 =
|
||||
request.message_type() == "protobuf_test_messages.proto3.TestAllTypes";
|
||||
bool isJson = request.payload_case() == ConformanceRequest::kJsonPayload;
|
||||
bool isProto2 =
|
||||
request.message_type() == "protobuf_test_messages.proto2.TestAllTypesProto2";
|
||||
if (isJson || isProto3) {
|
||||
test_message = new TestAllTypes;
|
||||
} else if (isProto2) {
|
||||
test_message = new TestAllTypesProto2;
|
||||
} else {
|
||||
GOOGLE_LOG(FATAL) << "Protobuf request doesn't have specific payload type";
|
||||
const Descriptor *descriptor = DescriptorPool::generated_pool()->FindMessageTypeByName(
|
||||
request.message_type());
|
||||
if (!descriptor) {
|
||||
GOOGLE_LOG(FATAL) << "No such message type: " << request.message_type();
|
||||
}
|
||||
test_message = MessageFactory::generated_factory()->GetPrototype(descriptor)->New();
|
||||
|
||||
switch (request.payload_case()) {
|
||||
case ConformanceRequest::kProtobufPayload: {
|
||||
@ -214,7 +208,7 @@ bool DoTestIo() {
|
||||
int main() {
|
||||
type_resolver = NewTypeResolverForDescriptorPool(
|
||||
kTypeUrlPrefix, DescriptorPool::generated_pool());
|
||||
type_url = new string(GetTypeUrl(TestAllTypes::descriptor()));
|
||||
type_url = new string(GetTypeUrl(TestAllTypesProto3::descriptor()));
|
||||
while (1) {
|
||||
if (!DoTestIo()) {
|
||||
fprintf(stderr, "conformance-cpp: received EOF from test runner "
|
||||
|
@ -34,6 +34,7 @@
|
||||
|
||||
var conformance = require('conformance_pb');
|
||||
var test_messages_proto3 = require('google/protobuf/test_messages_proto3_pb');
|
||||
var test_messages_proto2 = require('google/protobuf/test_messages_proto2_pb');
|
||||
var fs = require('fs');
|
||||
|
||||
var testCount = 0;
|
||||
@ -50,17 +51,22 @@ function doTest(request) {
|
||||
|
||||
switch (request.getPayloadCase()) {
|
||||
case conformance.ConformanceRequest.PayloadCase.PROTOBUF_PAYLOAD: {
|
||||
if (request.getMessageType() == "protobuf_test_messages.proto3.TestAllTypes") {
|
||||
if (request.getMessageType() == "protobuf_test_messages.proto3.TestAllTypesProto3") {
|
||||
try {
|
||||
testMessage = test_messages_proto3.TestAllTypes.deserializeBinary(
|
||||
testMessage = test_messages_proto3.TestAllTypesProto3.deserializeBinary(
|
||||
request.getProtobufPayload());
|
||||
} catch (err) {
|
||||
response.setParseError(err.toString());
|
||||
return response;
|
||||
}
|
||||
} else if (request.getMessageType() == "protobuf_test_messages.proto2.TestAllTypesProto2"){
|
||||
response.setSkipped("NodeJS doesn\'t support proto2");
|
||||
return response;
|
||||
try {
|
||||
testMessage = test_messages_proto2.TestAllTypesProto2.deserializeBinary(
|
||||
request.getProtobufPayload());
|
||||
} catch (err) {
|
||||
response.setParseError(err.toString());
|
||||
return response;
|
||||
}
|
||||
} else {
|
||||
throw "Protobuf request doesn\'t have specific payload type";
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes
|
||||
|
||||
static ConformanceResponse *DoTest(ConformanceRequest *request) {
|
||||
ConformanceResponse *response = [ConformanceResponse message];
|
||||
TestAllTypes *testMessage = nil;
|
||||
TestAllTypesProto3 *testMessage = nil;
|
||||
|
||||
switch (request.payloadOneOfCase) {
|
||||
case ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase:
|
||||
@ -71,9 +71,9 @@ static ConformanceResponse *DoTest(ConformanceRequest *request) {
|
||||
break;
|
||||
|
||||
case ConformanceRequest_Payload_OneOfCase_ProtobufPayload: {
|
||||
if ([request.messageType isEqualToString:@"protobuf_test_messages.proto3.TestAllTypes"]) {
|
||||
if ([request.messageType isEqualToString:@"protobuf_test_messages.proto3.TestAllTypesProto3"]) {
|
||||
NSError *error = nil;
|
||||
testMessage = [TestAllTypes parseFromData:request.protobufPayload
|
||||
testMessage = [TestAllTypesProto3 parseFromData:request.protobufPayload
|
||||
error:&error];
|
||||
if (!testMessage) {
|
||||
response.parseError =
|
||||
|
188
conformance/conformance_objc.m~
Normal file
188
conformance/conformance_objc.m~
Normal file
@ -0,0 +1,188 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2015 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.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "Conformance.pbobjc.h"
|
||||
#import "google/protobuf/TestMessagesProto3.pbobjc.h"
|
||||
|
||||
static void Die(NSString *format, ...) __dead2;
|
||||
|
||||
static BOOL verbose = NO;
|
||||
static int32_t testCount = 0;
|
||||
|
||||
static void Die(NSString *format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
NSString *msg = [[NSString alloc] initWithFormat:format arguments:args];
|
||||
NSLog(@"%@", msg);
|
||||
va_end(args);
|
||||
[msg release];
|
||||
exit(66);
|
||||
}
|
||||
|
||||
static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes) {
|
||||
NSData *data = [handle readDataOfLength:numBytes];
|
||||
NSUInteger dataLen = data.length;
|
||||
if (dataLen == 0) {
|
||||
return nil; // EOF.
|
||||
}
|
||||
if (dataLen != numBytes) {
|
||||
Die(@"Failed to read the request length (%d), only got: %@",
|
||||
numBytes, data);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
static ConformanceResponse *DoTest(ConformanceRequest *request) {
|
||||
ConformanceResponse *response = [ConformanceResponse message];
|
||||
TestAllTypesProto3 *testMessage = nil;
|
||||
|
||||
switch (request.payloadOneOfCase) {
|
||||
case ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase:
|
||||
Die(@"Request didn't have a payload: %@", request);
|
||||
break;
|
||||
|
||||
case ConformanceRequest_Payload_OneOfCase_ProtobufPayload: {
|
||||
if ([request.messageType isEqualToString:@"protobuf_test_messages.proto3.TestAllTypesProto3"]) {
|
||||
NSError *error = nil;
|
||||
testMessage = [TestAllTypesProto3 parseFromData:request.protobufPayload
|
||||
error:&error];
|
||||
if (!testMessage) {
|
||||
response.parseError =
|
||||
[NSString stringWithFormat:@"Parse error: %@", error];
|
||||
}
|
||||
} else if ([request.messageType isEqualToString:@"protobuf_test_messages.proto2.TestAllTypesProto2"]) {
|
||||
response.skipped = @"ObjC doesn't support proto2";
|
||||
break;
|
||||
} else {
|
||||
Die(@"Protobuf request doesn't have specific payload type");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ConformanceRequest_Payload_OneOfCase_JsonPayload:
|
||||
response.skipped = @"ObjC doesn't support parsing JSON";
|
||||
break;
|
||||
}
|
||||
|
||||
if (testMessage) {
|
||||
switch (request.requestedOutputFormat) {
|
||||
case WireFormat_GPBUnrecognizedEnumeratorValue:
|
||||
case WireFormat_Unspecified:
|
||||
Die(@"Unrecognized/unspecified output format: %@", request);
|
||||
break;
|
||||
|
||||
case WireFormat_Protobuf:
|
||||
response.protobufPayload = testMessage.data;
|
||||
if (!response.protobufPayload) {
|
||||
response.serializeError =
|
||||
[NSString stringWithFormat:@"Failed to make data from: %@", testMessage];
|
||||
}
|
||||
break;
|
||||
|
||||
case WireFormat_Json:
|
||||
response.skipped = @"ObjC doesn't support generating JSON";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
static uint32_t UInt32FromLittleEndianData(NSData *data) {
|
||||
if (data.length != sizeof(uint32_t)) {
|
||||
Die(@"Data not the right size for uint32_t: %@", data);
|
||||
}
|
||||
uint32_t value;
|
||||
memcpy(&value, data.bytes, sizeof(uint32_t));
|
||||
return CFSwapInt32LittleToHost(value);
|
||||
}
|
||||
|
||||
static NSData *UInt32ToLittleEndianData(uint32_t num) {
|
||||
uint32_t value = CFSwapInt32HostToLittle(num);
|
||||
return [NSData dataWithBytes:&value length:sizeof(uint32_t)];
|
||||
}
|
||||
|
||||
static BOOL DoTestIo(NSFileHandle *input, NSFileHandle *output) {
|
||||
// See conformance_test_runner.cc for the wire format.
|
||||
NSData *data = CheckedReadDataOfLength(input, sizeof(uint32_t));
|
||||
if (!data) {
|
||||
// EOF.
|
||||
return NO;
|
||||
}
|
||||
uint32_t numBytes = UInt32FromLittleEndianData(data);
|
||||
data = CheckedReadDataOfLength(input, numBytes);
|
||||
if (!data) {
|
||||
Die(@"Failed to read request");
|
||||
}
|
||||
|
||||
NSError *error = nil;
|
||||
ConformanceRequest *request = [ConformanceRequest parseFromData:data
|
||||
error:&error];
|
||||
if (!request) {
|
||||
Die(@"Failed to parse the message data: %@", error);
|
||||
}
|
||||
|
||||
ConformanceResponse *response = DoTest(request);
|
||||
if (!response) {
|
||||
Die(@"Failed to make a reply from %@", request);
|
||||
}
|
||||
|
||||
data = response.data;
|
||||
[output writeData:UInt32ToLittleEndianData((int32_t)data.length)];
|
||||
[output writeData:data];
|
||||
|
||||
if (verbose) {
|
||||
NSLog(@"Request: %@", request);
|
||||
NSLog(@"Response: %@", response);
|
||||
}
|
||||
|
||||
++testCount;
|
||||
return YES;
|
||||
}
|
||||
|
||||
int main(int argc, const char *argv[]) {
|
||||
@autoreleasepool {
|
||||
NSFileHandle *input = [[NSFileHandle fileHandleWithStandardInput] retain];
|
||||
NSFileHandle *output = [[NSFileHandle fileHandleWithStandardOutput] retain];
|
||||
|
||||
BOOL notDone = YES;
|
||||
while (notDone) {
|
||||
@autoreleasepool {
|
||||
notDone = DoTestIo(input, output);
|
||||
}
|
||||
}
|
||||
|
||||
NSLog(@"Received EOF from test runner after %d tests, exiting.", testCount);
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -23,9 +23,9 @@ require_once("Google/Protobuf/StringValue.php");
|
||||
require_once("Google/Protobuf/UInt64Value.php");
|
||||
require_once("Protobuf_test_messages/Proto3/ForeignMessage.php");
|
||||
require_once("Protobuf_test_messages/Proto3/ForeignEnum.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes_NestedMessage.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes_NestedEnum.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypesProto3.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypesProto3_NestedMessage.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypesProto3_NestedEnum.php");
|
||||
|
||||
require_once("GPBMetadata/Conformance.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Any.php");
|
||||
@ -42,10 +42,10 @@ $test_count = 0;
|
||||
|
||||
function doTest($request)
|
||||
{
|
||||
$test_message = new \Protobuf_test_messages\Proto3\TestAllTypes();
|
||||
$test_message = new \Protobuf_test_messages\Proto3\TestAllTypesProto3();
|
||||
$response = new \Conformance\ConformanceResponse();
|
||||
if ($request->getPayload() == "protobuf_payload") {
|
||||
if ($request->getMessageType() == "protobuf_test_messages.proto3.TestAllTypes") {
|
||||
if ($request->getMessageType() == "protobuf_test_messages.proto3.TestAllTypesProto3") {
|
||||
try {
|
||||
$test_message->mergeFromString($request->getProtobufPayload());
|
||||
} catch (Exception $e) {
|
||||
|
119
conformance/conformance_php.php~
Executable file
119
conformance/conformance_php.php~
Executable file
@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
require_once("Conformance/WireFormat.php");
|
||||
require_once("Conformance/ConformanceResponse.php");
|
||||
require_once("Conformance/ConformanceRequest.php");
|
||||
require_once("Google/Protobuf/Any.php");
|
||||
require_once("Google/Protobuf/Duration.php");
|
||||
require_once("Google/Protobuf/FieldMask.php");
|
||||
require_once("Google/Protobuf/Struct.php");
|
||||
require_once("Google/Protobuf/Value.php");
|
||||
require_once("Google/Protobuf/ListValue.php");
|
||||
require_once("Google/Protobuf/NullValue.php");
|
||||
require_once("Google/Protobuf/Timestamp.php");
|
||||
require_once("Google/Protobuf/DoubleValue.php");
|
||||
require_once("Google/Protobuf/BytesValue.php");
|
||||
require_once("Google/Protobuf/FloatValue.php");
|
||||
require_once("Google/Protobuf/Int64Value.php");
|
||||
require_once("Google/Protobuf/UInt32Value.php");
|
||||
require_once("Google/Protobuf/BoolValue.php");
|
||||
require_once("Google/Protobuf/DoubleValue.php");
|
||||
require_once("Google/Protobuf/Int32Value.php");
|
||||
require_once("Google/Protobuf/StringValue.php");
|
||||
require_once("Google/Protobuf/UInt64Value.php");
|
||||
require_once("Protobuf_test_messages/Proto3/ForeignMessage.php");
|
||||
require_once("Protobuf_test_messages/Proto3/ForeignEnum.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes_NestedMessage.php");
|
||||
require_once("Protobuf_test_messages/Proto3/TestAllTypes_NestedEnum.php");
|
||||
|
||||
require_once("GPBMetadata/Conformance.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Any.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Duration.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/FieldMask.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Struct.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Timestamp.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/Wrappers.php");
|
||||
require_once("GPBMetadata/Google/Protobuf/TestMessagesProto3.php");
|
||||
|
||||
use \Conformance\WireFormat;
|
||||
|
||||
$test_count = 0;
|
||||
|
||||
function doTest($request)
|
||||
{
|
||||
$test_message = new \Protobuf_test_messages\Proto3\TestAllTypes();
|
||||
$response = new \Conformance\ConformanceResponse();
|
||||
if ($request->getPayload() == "protobuf_payload") {
|
||||
if ($request->getMessageType() == "protobuf_test_messages.proto3.TestAllTypes") {
|
||||
try {
|
||||
$test_message->mergeFromString($request->getProtobufPayload());
|
||||
} catch (Exception $e) {
|
||||
$response->setParseError($e->getMessage());
|
||||
return $response;
|
||||
}
|
||||
} elseif ($request->getMessageType() == "protobuf_test_messages.proto2.TestAllTypesProto2") {
|
||||
$response->setSkipped("PHP doesn't support proto2");
|
||||
return $response;
|
||||
} else {
|
||||
trigger_error("Protobuf request doesn't have specific payload type", E_USER_ERROR);
|
||||
}
|
||||
} elseif ($request->getPayload() == "json_payload") {
|
||||
try {
|
||||
$test_message->jsonDecode($request->getJsonPayload());
|
||||
} catch (Exception $e) {
|
||||
$response->setParseError($e->getMessage());
|
||||
return $response;
|
||||
}
|
||||
} else {
|
||||
trigger_error("Request didn't have payload.", E_USER_ERROR);
|
||||
}
|
||||
|
||||
if ($request->getRequestedOutputFormat() == WireFormat::UNSPECIFIED) {
|
||||
trigger_error("Unspecified output format.", E_USER_ERROR);
|
||||
} elseif ($request->getRequestedOutputFormat() == WireFormat::PROTOBUF) {
|
||||
$response->setProtobufPayload($test_message->serializeToString());
|
||||
} elseif ($request->getRequestedOutputFormat() == WireFormat::JSON) {
|
||||
$response->setJsonPayload($test_message->jsonEncode());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
function doTestIO()
|
||||
{
|
||||
$length_bytes = fread(STDIN, 4);
|
||||
if (strlen($length_bytes) == 0) {
|
||||
return false; # EOF
|
||||
} elseif (strlen($length_bytes) != 4) {
|
||||
trigger_error("I/O error", E_USER_ERROR);
|
||||
}
|
||||
|
||||
$length = unpack("V", $length_bytes)[1];
|
||||
$serialized_request = fread(STDIN, $length);
|
||||
if (strlen($serialized_request) != $length) {
|
||||
trigger_error("I/O error", E_USER_ERROR);
|
||||
}
|
||||
|
||||
$request = new \Conformance\ConformanceRequest();
|
||||
$request->mergeFromString($serialized_request);
|
||||
|
||||
$response = doTest($request);
|
||||
|
||||
$serialized_response = $response->serializeToString();
|
||||
fwrite(STDOUT, pack("V", strlen($serialized_response)));
|
||||
fwrite(STDOUT, $serialized_response);
|
||||
|
||||
$GLOBALS['test_count'] += 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
while(true){
|
||||
if (!doTestIO()) {
|
||||
fprintf(STDERR,
|
||||
"conformance_php: received EOF from test runner " +
|
||||
"after %d tests, exiting\n", $test_count);
|
||||
exit;
|
||||
}
|
||||
}
|
@ -38,6 +38,8 @@ See conformance.proto for more information.
|
||||
import struct
|
||||
import sys
|
||||
import os
|
||||
from google.protobuf import descriptor
|
||||
from google.protobuf import descriptor_pool
|
||||
from google.protobuf import json_format
|
||||
from google.protobuf import message
|
||||
from google.protobuf import test_messages_proto3_pb2
|
||||
@ -54,7 +56,7 @@ class ProtocolError(Exception):
|
||||
pass
|
||||
|
||||
def do_test(request):
|
||||
isProto3 = (request.message_type == "protobuf_test_messages.proto3.TestAllTypes")
|
||||
isProto3 = (request.message_type == "protobuf_test_messages.proto3.TestAllTypesProto3")
|
||||
isJson = (request.WhichOneof('payload') == 'json_payload')
|
||||
isProto2 = (request.message_type == "protobuf_test_messages.proto2.TestAllTypesProto2")
|
||||
|
||||
@ -62,7 +64,8 @@ def do_test(request):
|
||||
raise ProtocolError("Protobuf request doesn't have specific payload type")
|
||||
|
||||
test_message = test_messages_proto2_pb2.TestAllTypesProto2() if isProto2 else \
|
||||
test_messages_proto3_pb2.TestAllTypes()
|
||||
test_messages_proto3_pb2.TestAllTypesProto3()
|
||||
|
||||
response = conformance_pb2.ConformanceResponse()
|
||||
|
||||
try:
|
||||
|
@ -37,15 +37,15 @@ $test_count = 0
|
||||
$verbose = false
|
||||
|
||||
def do_test(request)
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.new
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.new
|
||||
response = Conformance::ConformanceResponse.new
|
||||
|
||||
begin
|
||||
case request.payload
|
||||
when :protobuf_payload
|
||||
if request.message_type.eql?('protobuf_test_messages.proto3.TestAllTypes')
|
||||
if request.message_type.eql?('protobuf_test_messages.proto3.TestAllTypesProto3')
|
||||
begin
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.decode(
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.decode(
|
||||
request.protobuf_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
@ -60,7 +60,7 @@ def do_test(request)
|
||||
|
||||
when :json_payload
|
||||
begin
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypes.decode_json(
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.decode_json(
|
||||
request.json_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
|
131
conformance/conformance_ruby.rb~
Executable file
131
conformance/conformance_ruby.rb~
Executable file
@ -0,0 +1,131 @@
|
||||
#!/usr/bin/env ruby
|
||||
#
|
||||
# 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.
|
||||
|
||||
require 'conformance_pb'
|
||||
require 'google/protobuf/test_messages_proto3_pb'
|
||||
|
||||
$test_count = 0
|
||||
$verbose = false
|
||||
|
||||
def do_test(request)
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.new
|
||||
response = Conformance::ConformanceResponse.new
|
||||
|
||||
begin
|
||||
case request.payload
|
||||
when :protobuf_payload
|
||||
if request.message_type.eql?('protobuf_test_messages.proto3.TestAllTypesProto3')
|
||||
begin
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.decode(
|
||||
request.protobuf_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
return response
|
||||
end
|
||||
elsif request.message_type.eql?('protobuf_test_messages.proto2.TestAllTypesProto2')
|
||||
response.skipped = "Ruby doesn't support proto2"
|
||||
return response
|
||||
else
|
||||
fail "Protobuf request doesn't have specific payload type"
|
||||
end
|
||||
|
||||
when :json_payload
|
||||
begin
|
||||
test_message = ProtobufTestMessages::Proto3::TestAllTypesProto3.decode_json(
|
||||
request.json_payload)
|
||||
rescue Google::Protobuf::ParseError => err
|
||||
response.parse_error = err.message.encode('utf-8')
|
||||
return response
|
||||
end
|
||||
|
||||
when nil
|
||||
fail "Request didn't have payload"
|
||||
end
|
||||
|
||||
case request.requested_output_format
|
||||
when :UNSPECIFIED
|
||||
fail 'Unspecified output format'
|
||||
|
||||
when :PROTOBUF
|
||||
response.protobuf_payload = test_message.to_proto
|
||||
|
||||
when :JSON
|
||||
response.json_payload = test_message.to_json
|
||||
|
||||
when nil
|
||||
fail "Request didn't have requested output format"
|
||||
end
|
||||
rescue StandardError => err
|
||||
response.runtime_error = err.message.encode('utf-8')
|
||||
end
|
||||
|
||||
response
|
||||
end
|
||||
|
||||
# Returns true if the test ran successfully, false on legitimate EOF.
|
||||
# If EOF is encountered in an unexpected place, raises IOError.
|
||||
def do_test_io
|
||||
length_bytes = STDIN.read(4)
|
||||
return false if length_bytes.nil?
|
||||
|
||||
length = length_bytes.unpack('V').first
|
||||
serialized_request = STDIN.read(length)
|
||||
if serialized_request.nil? || serialized_request.length != length
|
||||
fail IOError
|
||||
end
|
||||
|
||||
request = Conformance::ConformanceRequest.decode(serialized_request)
|
||||
|
||||
response = do_test(request)
|
||||
|
||||
serialized_response = Conformance::ConformanceResponse.encode(response)
|
||||
STDOUT.write([serialized_response.length].pack('V'))
|
||||
STDOUT.write(serialized_response)
|
||||
STDOUT.flush
|
||||
|
||||
if $verbose
|
||||
STDERR.puts("conformance_ruby: request=#{request.to_json}, " \
|
||||
"response=#{response.to_json}\n")
|
||||
end
|
||||
|
||||
$test_count += 1
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
loop do
|
||||
unless do_test_io
|
||||
STDERR.puts('conformance_ruby: received EOF from test runner ' \
|
||||
"after #{$test_count} tests, exiting")
|
||||
break
|
||||
end
|
||||
end
|
@ -60,7 +60,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 protobuf_test_messages::proto3::TestAllTypesProto3;
|
||||
using protobuf_test_messages::proto2::TestAllTypesProto2;
|
||||
using std::string;
|
||||
|
||||
@ -168,7 +168,7 @@ const FieldDescriptor* GetFieldForType(FieldDescriptor::Type type,
|
||||
bool repeated, bool isProto3) {
|
||||
|
||||
const Descriptor* d = isProto3 ?
|
||||
TestAllTypes().GetDescriptor() : TestAllTypesProto2().GetDescriptor();
|
||||
TestAllTypesProto3().GetDescriptor() : TestAllTypesProto2().GetDescriptor();
|
||||
for (int i = 0; i < d->field_count(); i++) {
|
||||
const FieldDescriptor* f = d->field(i);
|
||||
if (f->type() == type && f->is_repeated() == repeated) {
|
||||
@ -279,7 +279,7 @@ void ConformanceTestSuite::RunValidInputTest(
|
||||
auto newTestMessage = [&isProto3]() {
|
||||
Message* newMessage;
|
||||
if (isProto3) {
|
||||
newMessage = new TestAllTypes;
|
||||
newMessage = new TestAllTypesProto3;
|
||||
} else {
|
||||
newMessage = new TestAllTypesProto2;
|
||||
}
|
||||
@ -298,16 +298,18 @@ void ConformanceTestSuite::RunValidInputTest(
|
||||
case conformance::PROTOBUF: {
|
||||
request.set_protobuf_payload(input);
|
||||
if (isProto3) {
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypes");
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
} else {
|
||||
request.set_message_type("protobuf_test_messages.proto2.TestAllTypesProto2");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case conformance::JSON:
|
||||
case conformance::JSON: {
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
request.set_json_payload(input);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
GOOGLE_LOG(FATAL) << "Unspecified input format";
|
||||
@ -402,20 +404,19 @@ void ConformanceTestSuite::RunValidInputTest(
|
||||
differences.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
// Expect that this precise protobuf will cause a parse error.
|
||||
void ConformanceTestSuite::ExpectParseFailureForProto(
|
||||
void ConformanceTestSuite::ExpectParseFailureForProtoWithProtoVersion (
|
||||
const string& proto, const string& test_name, ConformanceLevel level,
|
||||
bool isProto3) {
|
||||
ConformanceRequest request;
|
||||
ConformanceResponse response;
|
||||
request.set_protobuf_payload(proto);
|
||||
if (isProto3) {
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypes");
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
} else {
|
||||
request.set_message_type("protobuf_test_messages.proto2.TestAllTypesProto2");
|
||||
}
|
||||
string effective_test_name = ConformanceLevelToString(level) +
|
||||
(isProto3 ? ".Proto3" : ".Proto2") +
|
||||
".ProtobufInput." + test_name;
|
||||
|
||||
// We don't expect output, but if the program erroneously accepts the protobuf
|
||||
@ -433,61 +434,69 @@ void ConformanceTestSuite::ExpectParseFailureForProto(
|
||||
}
|
||||
}
|
||||
|
||||
// Expect that this precise protobuf will cause a parse error.
|
||||
void ConformanceTestSuite::ExpectParseFailureForProto(
|
||||
const string& proto, const string& test_name, ConformanceLevel level) {
|
||||
ExpectParseFailureForProtoWithProtoVersion(proto, test_name, level, true);
|
||||
ExpectParseFailureForProtoWithProtoVersion(proto, test_name, level, false);
|
||||
}
|
||||
|
||||
// Expect that this protobuf will cause a parse error, even if it is followed
|
||||
// by valid protobuf data. We can try running this twice: once with this
|
||||
// data verbatim and once with this data followed by some valid data.
|
||||
//
|
||||
// TODO(haberman): implement the second of these.
|
||||
void ConformanceTestSuite::ExpectHardParseFailureForProto(
|
||||
const string& proto, const string& test_name, ConformanceLevel level,
|
||||
bool isProto3) {
|
||||
return ExpectParseFailureForProto(proto, test_name, level, isProto3);
|
||||
const string& proto, const string& test_name, ConformanceLevel level) {
|
||||
return ExpectParseFailureForProto(proto, test_name, level);
|
||||
}
|
||||
|
||||
void ConformanceTestSuite::RunValidJsonTest(
|
||||
const string& test_name, ConformanceLevel level, const string& input_json,
|
||||
const string& equivalent_text_format) {
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + ".JsonInput." + test_name +
|
||||
ConformanceLevelToString(level) + ".Proto3.JsonInput." + test_name +
|
||||
".ProtobufOutput", level, input_json, conformance::JSON,
|
||||
equivalent_text_format, conformance::PROTOBUF, true);
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + ".JsonInput." + test_name +
|
||||
ConformanceLevelToString(level) + ".Proto3.JsonInput." + test_name +
|
||||
".JsonOutput", level, input_json, conformance::JSON,
|
||||
equivalent_text_format, conformance::JSON, true);
|
||||
}
|
||||
|
||||
void ConformanceTestSuite::RunValidJsonTestWithProtobufInput(
|
||||
const string& test_name, ConformanceLevel level, const TestAllTypes& input,
|
||||
const string& equivalent_text_format, bool isProto3) {
|
||||
const string& test_name, ConformanceLevel level, const TestAllTypesProto3& input,
|
||||
const string& equivalent_text_format) {
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + ".ProtobufInput." + test_name +
|
||||
ConformanceLevelToString(level) + ".Proto3" + ".ProtobufInput." + test_name +
|
||||
".JsonOutput", level, input.SerializeAsString(), conformance::PROTOBUF,
|
||||
equivalent_text_format, conformance::JSON, isProto3);
|
||||
equivalent_text_format, conformance::JSON, true);
|
||||
}
|
||||
|
||||
void ConformanceTestSuite::RunValidProtobufTest(
|
||||
const string& test_name, ConformanceLevel level,
|
||||
const string& input_protobuf, const string& equivalent_text_format,
|
||||
bool isProto3) {
|
||||
string rname = ".ProtobufInput.";
|
||||
string rname = ".Proto3";
|
||||
if (!isProto3) {
|
||||
rname = ".Protobuf2Input.";
|
||||
rname = ".Proto2";
|
||||
}
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + rname + test_name +
|
||||
ConformanceLevelToString(level) + rname + ".ProtobufInput." + test_name +
|
||||
".ProtobufOutput", level, input_protobuf, conformance::PROTOBUF,
|
||||
equivalent_text_format, conformance::PROTOBUF, isProto3);
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + rname + test_name +
|
||||
".JsonOutput", level, input_protobuf, conformance::PROTOBUF,
|
||||
equivalent_text_format, conformance::JSON, isProto3);
|
||||
if (isProto3) {
|
||||
RunValidInputTest(
|
||||
ConformanceLevelToString(level) + rname + ".ProtobufInput." + test_name +
|
||||
".JsonOutput", level, input_protobuf, conformance::PROTOBUF,
|
||||
equivalent_text_format, conformance::JSON, isProto3);
|
||||
}
|
||||
}
|
||||
|
||||
void ConformanceTestSuite::RunValidProtobufTestWithMessage(
|
||||
const string& test_name, ConformanceLevel level, const TestAllTypes& input,
|
||||
const string& test_name, ConformanceLevel level, const Message *input,
|
||||
const string& equivalent_text_format, bool isProto3) {
|
||||
RunValidProtobufTest(test_name, level, input.SerializeAsString(), equivalent_text_format, isProto3);
|
||||
RunValidProtobufTest(test_name, level, input->SerializeAsString(), equivalent_text_format, isProto3);
|
||||
}
|
||||
|
||||
// According to proto3 JSON specification, JSON serializers follow more strict
|
||||
@ -502,9 +511,10 @@ void ConformanceTestSuite::RunValidJsonTestWithValidator(
|
||||
ConformanceResponse response;
|
||||
request.set_json_payload(input_json);
|
||||
request.set_requested_output_format(conformance::JSON);
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
|
||||
string effective_test_name = ConformanceLevelToString(level) +
|
||||
".JsonInput." + test_name + ".Validator";
|
||||
".Proto3.JsonInput." + test_name + ".Validator";
|
||||
|
||||
RunTest(effective_test_name, request, &response);
|
||||
|
||||
@ -540,8 +550,9 @@ void ConformanceTestSuite::ExpectParseFailureForJson(
|
||||
ConformanceRequest request;
|
||||
ConformanceResponse response;
|
||||
request.set_json_payload(input_json);
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
string effective_test_name =
|
||||
ConformanceLevelToString(level) + ".JsonInput." + test_name;
|
||||
ConformanceLevelToString(level) + ".Proto3.JsonInput." + test_name;
|
||||
|
||||
// We don't expect output, but if the program erroneously accepts the protobuf
|
||||
// we let it send its response as this. We must not leave it unspecified.
|
||||
@ -560,7 +571,7 @@ void ConformanceTestSuite::ExpectParseFailureForJson(
|
||||
|
||||
void ConformanceTestSuite::ExpectSerializeFailureForJson(
|
||||
const string& test_name, ConformanceLevel level, const string& text_format) {
|
||||
TestAllTypes payload_message;
|
||||
TestAllTypesProto3 payload_message;
|
||||
GOOGLE_CHECK(
|
||||
TextFormat::ParseFromString(text_format, &payload_message))
|
||||
<< "Failed to parse: " << text_format;
|
||||
@ -568,7 +579,7 @@ void ConformanceTestSuite::ExpectSerializeFailureForJson(
|
||||
ConformanceRequest request;
|
||||
ConformanceResponse response;
|
||||
request.set_protobuf_payload(payload_message.SerializeAsString());
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypes");
|
||||
request.set_message_type("protobuf_test_messages.proto3.TestAllTypesProto3");
|
||||
string effective_test_name =
|
||||
ConformanceLevelToString(level) + "." + test_name + ".JsonOutput";
|
||||
request.set_requested_output_format(conformance::JSON);
|
||||
@ -606,43 +617,43 @@ void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
tag(field->number(), wire_type),
|
||||
"PrematureEofBeforeKnownNonRepeatedValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofBeforeKnownNonRepeatedValue" + type_name, REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
tag(rep_field->number(), wire_type),
|
||||
"PrematureEofBeforeKnownRepeatedValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofBeforeKnownRepeatedValue" + type_name, REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
tag(UNKNOWN_FIELD, wire_type),
|
||||
"PrematureEofBeforeUnknownValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofBeforeUnknownValue" + type_name, REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(field->number(), wire_type), incomplete ),
|
||||
"PrematureEofInsideKnownNonRepeatedValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInsideKnownNonRepeatedValue" + type_name, REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(rep_field->number(), wire_type), incomplete ),
|
||||
"PrematureEofInsideKnownRepeatedValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInsideKnownRepeatedValue" + type_name, REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(UNKNOWN_FIELD, wire_type), incomplete ),
|
||||
"PrematureEofInsideUnknownValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInsideUnknownValue" + type_name, REQUIRED);
|
||||
|
||||
if (wire_type == WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(field->number(), wire_type), varint(1) ),
|
||||
"PrematureEofInDelimitedDataForKnownNonRepeatedValue" + type_name,
|
||||
REQUIRED, true);
|
||||
REQUIRED);
|
||||
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(rep_field->number(), wire_type), varint(1) ),
|
||||
"PrematureEofInDelimitedDataForKnownRepeatedValue" + type_name,
|
||||
REQUIRED, true);
|
||||
REQUIRED);
|
||||
|
||||
// EOF in the middle of delimited data for unknown value.
|
||||
ExpectParseFailureForProto(
|
||||
cat( tag(UNKNOWN_FIELD, wire_type), varint(1) ),
|
||||
"PrematureEofInDelimitedDataForUnknownValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInDelimitedDataForUnknownValue" + type_name, REQUIRED);
|
||||
|
||||
if (type == FieldDescriptor::TYPE_MESSAGE) {
|
||||
// Submessage ends in the middle of a value.
|
||||
@ -653,7 +664,7 @@ void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
|
||||
cat( tag(field->number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
|
||||
varint(incomplete_submsg.size()),
|
||||
incomplete_submsg ),
|
||||
"PrematureEofInSubmessageValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInSubmessageValue" + type_name, REQUIRED);
|
||||
}
|
||||
} else if (type != FieldDescriptor::TYPE_GROUP) {
|
||||
// Non-delimited, non-group: eligible for packing.
|
||||
@ -662,13 +673,13 @@ void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
|
||||
ExpectHardParseFailureForProto(
|
||||
cat(tag(rep_field->number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
|
||||
varint(incomplete.size()), incomplete),
|
||||
"PrematureEofInPackedFieldValue" + type_name, REQUIRED, true);
|
||||
"PrematureEofInPackedFieldValue" + type_name, REQUIRED);
|
||||
|
||||
// EOF in the middle of packed region.
|
||||
ExpectParseFailureForProto(
|
||||
cat(tag(rep_field->number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
|
||||
varint(1)),
|
||||
"PrematureEofInPackedField" + type_name, REQUIRED, true);
|
||||
"PrematureEofInPackedField" + type_name, REQUIRED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -758,9 +769,47 @@ void ConformanceTestSuite::TestIllegalTags() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
string name = "IllegalZeroFieldNum_Case_0";
|
||||
name.back() += i;
|
||||
ExpectParseFailureForProto(nullfield[i], name, REQUIRED, true);
|
||||
ExpectParseFailureForProto(nullfield[i], name, REQUIRED);
|
||||
}
|
||||
}
|
||||
template <class MessageType>
|
||||
void ConformanceTestSuite::TestOneofMessage (MessageType &message,
|
||||
bool isProto3) {
|
||||
message.set_oneof_uint32(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroUint32", RECOMMENDED, &message, "oneof_uint32: 0", isProto3);
|
||||
message.mutable_oneof_nested_message()->set_a(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroMessage", RECOMMENDED, &message,
|
||||
isProto3 ? "oneof_nested_message: {}" : "oneof_nested_message: {a: 0}",
|
||||
isProto3);
|
||||
message.mutable_oneof_nested_message()->set_a(1);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroMessageSetTwice", RECOMMENDED, &message,
|
||||
"oneof_nested_message: {a: 1}",
|
||||
isProto3);
|
||||
message.set_oneof_string("");
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroString", RECOMMENDED, &message, "oneof_string: \"\"", isProto3);
|
||||
message.set_oneof_bytes("");
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroBytes", RECOMMENDED, &message, "oneof_bytes: \"\"", isProto3);
|
||||
message.set_oneof_bool(false);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroBool", RECOMMENDED, &message, "oneof_bool: false", isProto3);
|
||||
message.set_oneof_uint64(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroUint64", RECOMMENDED, &message, "oneof_uint64: 0", isProto3);
|
||||
message.set_oneof_float(0.0f);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroFloat", RECOMMENDED, &message, "oneof_float: 0", isProto3);
|
||||
message.set_oneof_double(0.0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroDouble", RECOMMENDED, &message, "oneof_double: 0", isProto3);
|
||||
message.set_oneof_enum(MessageType::FOO);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroEnum", RECOMMENDED, &message, "oneof_enum: FOO", isProto3);
|
||||
}
|
||||
|
||||
bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
std::string* output) {
|
||||
@ -773,7 +822,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
unexpected_succeeding_tests_.clear();
|
||||
type_resolver_.reset(NewTypeResolverForDescriptorPool(
|
||||
kTypeUrlPrefix, DescriptorPool::generated_pool()));
|
||||
type_url_ = GetTypeUrl(TestAllTypes::descriptor());
|
||||
type_url_ = GetTypeUrl(TestAllTypesProto3::descriptor());
|
||||
|
||||
output_ = "\nCONFORMANCE TEST BEGIN ====================================\n\n";
|
||||
|
||||
@ -1369,21 +1418,21 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"optional_float: -inf");
|
||||
// Non-cannonical Nan will be correctly normalized.
|
||||
{
|
||||
TestAllTypes message;
|
||||
TestAllTypesProto3 message;
|
||||
// IEEE floating-point standard 32-bit quiet NaN:
|
||||
// 0111 1111 1xxx xxxx xxxx xxxx xxxx xxxx
|
||||
message.set_optional_float(
|
||||
WireFormatLite::DecodeFloat(0x7FA12345));
|
||||
RunValidJsonTestWithProtobufInput(
|
||||
"FloatFieldNormalizeQuietNan", REQUIRED, message,
|
||||
"optional_float: nan", true);
|
||||
"optional_float: nan");
|
||||
// IEEE floating-point standard 64-bit signaling NaN:
|
||||
// 1111 1111 1xxx xxxx xxxx xxxx xxxx xxxx
|
||||
message.set_optional_float(
|
||||
WireFormatLite::DecodeFloat(0xFFB54321));
|
||||
RunValidJsonTestWithProtobufInput(
|
||||
"FloatFieldNormalizeSignalingNan", REQUIRED, message,
|
||||
"optional_float: nan", true);
|
||||
"optional_float: nan");
|
||||
}
|
||||
|
||||
// Special values must be quoted.
|
||||
@ -1441,17 +1490,17 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"optional_double: -inf");
|
||||
// Non-cannonical Nan will be correctly normalized.
|
||||
{
|
||||
TestAllTypes message;
|
||||
TestAllTypesProto3 message;
|
||||
message.set_optional_double(
|
||||
WireFormatLite::DecodeDouble(0x7FFA123456789ABCLL));
|
||||
RunValidJsonTestWithProtobufInput(
|
||||
"DoubleFieldNormalizeQuietNan", REQUIRED, message,
|
||||
"optional_double: nan", true);
|
||||
"optional_double: nan");
|
||||
message.set_optional_double(
|
||||
WireFormatLite::DecodeDouble(0xFFFBCBA987654321LL));
|
||||
RunValidJsonTestWithProtobufInput(
|
||||
"DoubleFieldNormalizeSignalingNan", REQUIRED, message,
|
||||
"optional_double: nan", true);
|
||||
"optional_double: nan");
|
||||
}
|
||||
|
||||
// Special values must be quoted.
|
||||
@ -1571,36 +1620,10 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"OneofFieldDuplicate", REQUIRED,
|
||||
R"({"oneofUint32": 1, "oneofString": "test"})");
|
||||
// Ensure zero values for oneof make it out/backs.
|
||||
{
|
||||
TestAllTypes message;
|
||||
message.set_oneof_uint32(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroUint32", RECOMMENDED, message, "oneof_uint32: 0", true);
|
||||
message.mutable_oneof_nested_message()->set_a(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroMessage", RECOMMENDED, message, "oneof_nested_message: {}", true);
|
||||
message.set_oneof_string("");
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroString", RECOMMENDED, message, "oneof_string: \"\"", true);
|
||||
message.set_oneof_bytes("");
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroBytes", RECOMMENDED, message, "oneof_bytes: \"\"", true);
|
||||
message.set_oneof_bool(false);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroBool", RECOMMENDED, message, "oneof_bool: false", true);
|
||||
message.set_oneof_uint64(0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroUint64", RECOMMENDED, message, "oneof_uint64: 0", true);
|
||||
message.set_oneof_float(0.0f);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroFloat", RECOMMENDED, message, "oneof_float: 0", true);
|
||||
message.set_oneof_double(0.0);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroDouble", RECOMMENDED, message, "oneof_double: 0", true);
|
||||
message.set_oneof_enum(TestAllTypes::FOO);
|
||||
RunValidProtobufTestWithMessage(
|
||||
"OneofZeroEnum", RECOMMENDED, message, "oneof_enum: FOO", true);
|
||||
}
|
||||
TestAllTypesProto3 messageProto3;
|
||||
TestAllTypesProto2 messageProto2;
|
||||
TestOneofMessage(messageProto3, true);
|
||||
TestOneofMessage(messageProto2, false);
|
||||
RunValidJsonTest(
|
||||
"OneofZeroUint32", RECOMMENDED,
|
||||
R"({"oneofUint32": 0})", "oneof_uint32: 0");
|
||||
@ -2242,13 +2265,13 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"Any", REQUIRED,
|
||||
R"({
|
||||
"optionalAny": {
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes",
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3",
|
||||
"optionalInt32": 12345
|
||||
}
|
||||
})",
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
@ -2259,7 +2282,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
"optionalAny": {
|
||||
"@type": "type.googleapis.com/google.protobuf.Any",
|
||||
"value": {
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes",
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3",
|
||||
"optionalInt32": 12345
|
||||
}
|
||||
}
|
||||
@ -2267,7 +2290,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/google.protobuf.Any] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
@ -2279,12 +2302,12 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
|
||||
R"({
|
||||
"optionalAny": {
|
||||
"optionalInt32": 12345,
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes"
|
||||
"@type": "type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3"
|
||||
}
|
||||
})",
|
||||
R"(
|
||||
optional_any: {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
|
||||
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypesProto3] {
|
||||
optional_int32: 12345
|
||||
}
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ class ConformanceResponse;
|
||||
|
||||
namespace protobuf_test_messages {
|
||||
namespace proto3 {
|
||||
class TestAllTypes;
|
||||
class TestAllTypesProto3;
|
||||
} // namespace proto3
|
||||
} // namespace protobuf_test_messages
|
||||
|
||||
@ -174,16 +174,15 @@ class ConformanceTestSuite {
|
||||
void RunValidJsonTestWithProtobufInput(
|
||||
const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const protobuf_test_messages::proto3::TestAllTypes& input,
|
||||
const string& equivalent_text_format,
|
||||
bool isProto3);
|
||||
const protobuf_test_messages::proto3::TestAllTypesProto3& input,
|
||||
const string& equivalent_text_format);
|
||||
void RunValidProtobufTest(const string& test_name, ConformanceLevel level,
|
||||
const string& input_protobuf,
|
||||
const string& equivalent_text_format,
|
||||
bool isProto3);
|
||||
void RunValidProtobufTestWithMessage(
|
||||
const string& test_name, ConformanceLevel level,
|
||||
const protobuf_test_messages::proto3::TestAllTypes& input,
|
||||
const Message *input,
|
||||
const string& equivalent_text_format,
|
||||
bool isProto3);
|
||||
|
||||
@ -198,16 +197,21 @@ class ConformanceTestSuite {
|
||||
void ExpectSerializeFailureForJson(const string& test_name,
|
||||
ConformanceLevel level,
|
||||
const string& text_format);
|
||||
void ExpectParseFailureForProtoWithProtoVersion (const string& proto,
|
||||
const string& test_name,
|
||||
ConformanceLevel level,
|
||||
bool isProto3);
|
||||
void ExpectParseFailureForProto(const std::string& proto,
|
||||
const std::string& test_name,
|
||||
ConformanceLevel level,
|
||||
bool isProto3);
|
||||
ConformanceLevel level);
|
||||
void ExpectHardParseFailureForProto(const std::string& proto,
|
||||
const std::string& test_name,
|
||||
ConformanceLevel level,
|
||||
bool isProto3);
|
||||
ConformanceLevel level);
|
||||
void TestPrematureEOFForType(google::protobuf::FieldDescriptor::Type type);
|
||||
void TestIllegalTags();
|
||||
template <class MessageType>
|
||||
void TestOneofMessage (MessageType &message,
|
||||
bool isProto3);
|
||||
void TestValidDataForType(
|
||||
google::protobuf::FieldDescriptor::Type,
|
||||
std::vector<std::pair<std::string, std::string>> values);
|
||||
|
@ -10,35 +10,46 @@
|
||||
Recommended.FieldMaskNumbersDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskPathsDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskTooManyUnderscore.JsonOutput
|
||||
Recommended.JsonInput.BoolFieldDoubleQuotedFalse
|
||||
Recommended.JsonInput.BoolFieldDoubleQuotedTrue
|
||||
Recommended.JsonInput.FieldMaskInvalidCharacter
|
||||
Recommended.JsonInput.FieldNameDuplicate
|
||||
Recommended.JsonInput.FieldNameDuplicateDifferentCasing1
|
||||
Recommended.JsonInput.FieldNameDuplicateDifferentCasing2
|
||||
Recommended.JsonInput.FieldNameNotQuoted
|
||||
Recommended.JsonInput.MapFieldValueIsNull
|
||||
Recommended.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.JsonInput.RepeatedFieldTrailingComma
|
||||
Recommended.JsonInput.RepeatedFieldTrailingCommaWithNewlines
|
||||
Recommended.JsonInput.RepeatedFieldTrailingCommaWithSpace
|
||||
Recommended.JsonInput.RepeatedFieldTrailingCommaWithSpaceCommaSpace
|
||||
Recommended.JsonInput.StringFieldSingleQuoteBoth
|
||||
Recommended.JsonInput.StringFieldSingleQuoteKey
|
||||
Recommended.JsonInput.StringFieldSingleQuoteValue
|
||||
Recommended.JsonInput.StringFieldUppercaseEscapeLetter
|
||||
Recommended.JsonInput.TrailingCommaInAnObject
|
||||
Recommended.JsonInput.TrailingCommaInAnObjectWithNewlines
|
||||
Recommended.JsonInput.TrailingCommaInAnObjectWithSpace
|
||||
Recommended.JsonInput.TrailingCommaInAnObjectWithSpaceCommaSpace
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
Recommended.Proto3.JsonInput.BoolFieldDoubleQuotedFalse
|
||||
Recommended.Proto3.JsonInput.BoolFieldDoubleQuotedTrue
|
||||
Recommended.Proto3.JsonInput.FieldMaskInvalidCharacter
|
||||
Recommended.Proto3.JsonInput.FieldNameDuplicate
|
||||
Recommended.Proto3.JsonInput.FieldNameDuplicateDifferentCasing1
|
||||
Recommended.Proto3.JsonInput.FieldNameDuplicateDifferentCasing2
|
||||
Recommended.Proto3.JsonInput.FieldNameNotQuoted
|
||||
Recommended.Proto3.JsonInput.MapFieldValueIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldTrailingComma
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldTrailingCommaWithNewlines
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldTrailingCommaWithSpace
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldTrailingCommaWithSpaceCommaSpace
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteBoth
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteKey
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteValue
|
||||
Recommended.Proto3.JsonInput.StringFieldUppercaseEscapeLetter
|
||||
Recommended.Proto3.JsonInput.TrailingCommaInAnObject
|
||||
Recommended.Proto3.JsonInput.TrailingCommaInAnObjectWithNewlines
|
||||
Recommended.Proto3.JsonInput.TrailingCommaInAnObjectWithSpace
|
||||
Recommended.Proto3.JsonInput.TrailingCommaInAnObjectWithSpaceCommaSpace
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
|
||||
|
@ -1,4 +1,8 @@
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
|
@ -7,39 +7,41 @@
|
||||
Recommended.FieldMaskNumbersDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskPathsDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskTooManyUnderscore.JsonOutput
|
||||
Recommended.JsonInput.BoolFieldAllCapitalFalse
|
||||
Recommended.JsonInput.BoolFieldAllCapitalTrue
|
||||
Recommended.JsonInput.BoolFieldCamelCaseFalse
|
||||
Recommended.JsonInput.BoolFieldCamelCaseTrue
|
||||
Recommended.JsonInput.BoolFieldDoubleQuotedFalse
|
||||
Recommended.JsonInput.BoolFieldDoubleQuotedTrue
|
||||
Recommended.JsonInput.BoolMapFieldKeyNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.JsonInput.FieldMaskInvalidCharacter
|
||||
Recommended.JsonInput.FieldNameDuplicate
|
||||
Recommended.JsonInput.FieldNameNotQuoted
|
||||
Recommended.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Recommended.JsonInput.Int32MapFieldKeyNotQuoted
|
||||
Recommended.JsonInput.Int64MapFieldKeyNotQuoted
|
||||
Recommended.JsonInput.JsonWithComments
|
||||
Recommended.JsonInput.StringFieldSingleQuoteBoth
|
||||
Recommended.JsonInput.StringFieldSingleQuoteKey
|
||||
Recommended.JsonInput.StringFieldSingleQuoteValue
|
||||
Recommended.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.JsonInput.Uint32MapFieldKeyNotQuoted
|
||||
Recommended.JsonInput.Uint64MapFieldKeyNotQuoted
|
||||
Required.JsonInput.EnumFieldNotQuoted
|
||||
Required.JsonInput.Int32FieldLeadingZero
|
||||
Required.JsonInput.Int32FieldNegativeWithLeadingZero
|
||||
Required.JsonInput.Int32FieldPlusSign
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotBool
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotInt
|
||||
Required.JsonInput.StringFieldNotAString
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Recommended.Proto3.JsonInput.BoolFieldAllCapitalFalse
|
||||
Recommended.Proto3.JsonInput.BoolFieldAllCapitalTrue
|
||||
Recommended.Proto3.JsonInput.BoolFieldCamelCaseFalse
|
||||
Recommended.Proto3.JsonInput.BoolFieldCamelCaseTrue
|
||||
Recommended.Proto3.JsonInput.BoolFieldDoubleQuotedFalse
|
||||
Recommended.Proto3.JsonInput.BoolFieldDoubleQuotedTrue
|
||||
Recommended.Proto3.JsonInput.BoolMapFieldKeyNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FieldMaskInvalidCharacter
|
||||
Recommended.Proto3.JsonInput.FieldNameDuplicate
|
||||
Recommended.Proto3.JsonInput.FieldNameNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.Int32MapFieldKeyNotQuoted
|
||||
Recommended.Proto3.JsonInput.Int64MapFieldKeyNotQuoted
|
||||
Recommended.Proto3.JsonInput.JsonWithComments
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteBoth
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteKey
|
||||
Recommended.Proto3.JsonInput.StringFieldSingleQuoteValue
|
||||
Recommended.Proto3.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.Proto3.JsonInput.Uint32MapFieldKeyNotQuoted
|
||||
Recommended.Proto3.JsonInput.Uint64MapFieldKeyNotQuoted
|
||||
Required.Proto3.JsonInput.EnumFieldNotQuoted
|
||||
Required.Proto3.JsonInput.Int32FieldLeadingZero
|
||||
Required.Proto3.JsonInput.Int32FieldNegativeWithLeadingZero
|
||||
Required.Proto3.JsonInput.Int32FieldPlusSign
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotBool
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotInt
|
||||
Required.Proto3.JsonInput.StringFieldNotAString
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
@ -1,15 +1,19 @@
|
||||
Required.ProtobufInput.RepeatedScalarSelectsLast.INT32.ProtobufOutput
|
||||
Required.ProtobufInput.RepeatedScalarSelectsLast.UINT32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.BOOL.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.DOUBLE.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.FIXED32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.FIXED64.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.FLOAT.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.INT32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.INT64.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.SFIXED32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.SFIXED64.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.SINT32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.SINT64.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.UINT32.ProtobufOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.UINT64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.INT32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.UINT32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.BOOL.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.DOUBLE.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.FIXED32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.FIXED64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.FLOAT.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.INT32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.INT64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.SFIXED32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.SFIXED64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.SINT32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.SINT64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.UINT32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.UINT64.ProtobufOutput
|
||||
Required.Proto2.ProtobufInput.RepeatedScalarSelectsLast.INT32.ProtobufOutput
|
||||
Required.Proto2.ProtobufInput.RepeatedScalarSelectsLast.UINT32.ProtobufOutput
|
||||
Required.Proto2.ProtobufInput.ValidDataRepeated.INT32.ProtobufOutput
|
||||
Required.Proto2.ProtobufInput.ValidDataRepeated.UINT32.ProtobufOutput
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,227 +1,228 @@
|
||||
Recommended.FieldMaskNumbersDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskPathsDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskTooManyUnderscore.JsonOutput
|
||||
Recommended.JsonInput.BoolFieldIntegerOne
|
||||
Recommended.JsonInput.BoolFieldIntegerZero
|
||||
Recommended.JsonInput.DurationHas3FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHas6FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHas9FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHasZeroFractionalDigit.Validator
|
||||
Recommended.JsonInput.Int64FieldBeString.Validator
|
||||
Recommended.JsonInput.MapFieldValueIsNull
|
||||
Recommended.JsonInput.OneofZeroBool.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroBool.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroBytes.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroBytes.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroDouble.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroDouble.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroEnum.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroEnum.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroFloat.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroFloat.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroString.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroString.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroUint32.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroUint32.ProtobufOutput
|
||||
Recommended.JsonInput.OneofZeroUint64.JsonOutput
|
||||
Recommended.JsonInput.OneofZeroUint64.ProtobufOutput
|
||||
Recommended.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.JsonInput.StringEndsWithEscapeChar
|
||||
Recommended.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.JsonInput.TimestampHas3FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHas6FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHas9FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHasZeroFractionalDigit.Validator
|
||||
Recommended.JsonInput.TimestampZeroNormalized.Validator
|
||||
Recommended.JsonInput.Uint64FieldBeString.Validator
|
||||
Recommended.ProtobufInput.OneofZeroBool.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroBool.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroBytes.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroBytes.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroDouble.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroDouble.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroEnum.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroEnum.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroFloat.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroFloat.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroString.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroString.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroUint32.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroUint32.ProtobufOutput
|
||||
Recommended.ProtobufInput.OneofZeroUint64.JsonOutput
|
||||
Recommended.ProtobufInput.OneofZeroUint64.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.BoolFieldIntegerOne
|
||||
Recommended.Proto3.JsonInput.BoolFieldIntegerZero
|
||||
Recommended.Proto3.JsonInput.DurationHas3FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHas6FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHas9FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHasZeroFractionalDigit.Validator
|
||||
Recommended.Proto3.JsonInput.Int64FieldBeString.Validator
|
||||
Recommended.Proto3.JsonInput.MapFieldValueIsNull
|
||||
Recommended.Proto3.JsonInput.OneofZeroBool.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroBool.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroBytes.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroBytes.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroDouble.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroDouble.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroEnum.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroEnum.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroFloat.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroFloat.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroString.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroString.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroUint32.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroUint32.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroUint64.JsonOutput
|
||||
Recommended.Proto3.JsonInput.OneofZeroUint64.ProtobufOutput
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.Proto3.JsonInput.StringEndsWithEscapeChar
|
||||
Recommended.Proto3.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.Proto3.JsonInput.TimestampHas3FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHas6FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHas9FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHasZeroFractionalDigit.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampZeroNormalized.Validator
|
||||
Recommended.Proto3.JsonInput.Uint64FieldBeString.Validator
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroBool.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroBool.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroBytes.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroBytes.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroDouble.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroDouble.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroEnum.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroEnum.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroFloat.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroFloat.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroString.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroString.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroUint32.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroUint32.ProtobufOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroUint64.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroUint64.ProtobufOutput
|
||||
Required.DurationProtoInputTooLarge.JsonOutput
|
||||
Required.DurationProtoInputTooSmall.JsonOutput
|
||||
Required.JsonInput.AllFieldAcceptNull.ProtobufOutput
|
||||
Required.JsonInput.Any.JsonOutput
|
||||
Required.JsonInput.Any.ProtobufOutput
|
||||
Required.JsonInput.AnyNested.JsonOutput
|
||||
Required.JsonInput.AnyNested.ProtobufOutput
|
||||
Required.JsonInput.AnyUnorderedTypeTag.JsonOutput
|
||||
Required.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
|
||||
Required.JsonInput.AnyWithDuration.JsonOutput
|
||||
Required.JsonInput.AnyWithDuration.ProtobufOutput
|
||||
Required.JsonInput.AnyWithFieldMask.JsonOutput
|
||||
Required.JsonInput.AnyWithFieldMask.ProtobufOutput
|
||||
Required.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
|
||||
Required.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
|
||||
Required.JsonInput.AnyWithStruct.JsonOutput
|
||||
Required.JsonInput.AnyWithStruct.ProtobufOutput
|
||||
Required.JsonInput.AnyWithTimestamp.JsonOutput
|
||||
Required.JsonInput.AnyWithTimestamp.ProtobufOutput
|
||||
Required.JsonInput.AnyWithValueForInteger.JsonOutput
|
||||
Required.JsonInput.AnyWithValueForInteger.ProtobufOutput
|
||||
Required.JsonInput.AnyWithValueForJsonObject.JsonOutput
|
||||
Required.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
|
||||
Required.JsonInput.BoolFieldFalse.ProtobufOutput
|
||||
Required.JsonInput.BoolMapField.JsonOutput
|
||||
Required.JsonInput.DoubleFieldInfinity.JsonOutput
|
||||
Required.JsonInput.DoubleFieldInfinity.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMaxNegativeValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMaxNegativeValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMaxPositiveValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMaxPositiveValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMinNegativeValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMinNegativeValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMinPositiveValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMinPositiveValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldNan.JsonOutput
|
||||
Required.JsonInput.DoubleFieldNan.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldNegativeInfinity.JsonOutput
|
||||
Required.JsonInput.DoubleFieldNegativeInfinity.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldQuotedValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldQuotedValue.ProtobufOutput
|
||||
Required.JsonInput.DurationMaxValue.JsonOutput
|
||||
Required.JsonInput.DurationMaxValue.ProtobufOutput
|
||||
Required.JsonInput.DurationMinValue.JsonOutput
|
||||
Required.JsonInput.DurationMinValue.ProtobufOutput
|
||||
Required.JsonInput.DurationRepeatedValue.JsonOutput
|
||||
Required.JsonInput.DurationRepeatedValue.ProtobufOutput
|
||||
Required.JsonInput.EnumField.ProtobufOutput
|
||||
Required.JsonInput.EnumFieldNumericValueNonZero.JsonOutput
|
||||
Required.JsonInput.EnumFieldNumericValueNonZero.ProtobufOutput
|
||||
Required.JsonInput.EnumFieldNumericValueZero.JsonOutput
|
||||
Required.JsonInput.EnumFieldNumericValueZero.ProtobufOutput
|
||||
Required.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.JsonInput.FieldMask.JsonOutput
|
||||
Required.JsonInput.FieldMask.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldInfinity.JsonOutput
|
||||
Required.JsonInput.FloatFieldInfinity.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldNan.JsonOutput
|
||||
Required.JsonInput.FloatFieldNan.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldNegativeInfinity.JsonOutput
|
||||
Required.JsonInput.FloatFieldNegativeInfinity.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldQuotedValue.JsonOutput
|
||||
Required.JsonInput.FloatFieldQuotedValue.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldTooLarge
|
||||
Required.JsonInput.FloatFieldTooSmall
|
||||
Required.JsonInput.Int32FieldExponentialFormat.JsonOutput
|
||||
Required.JsonInput.Int32FieldExponentialFormat.ProtobufOutput
|
||||
Required.JsonInput.Int32FieldFloatTrailingZero.JsonOutput
|
||||
Required.JsonInput.Int32FieldFloatTrailingZero.ProtobufOutput
|
||||
Required.JsonInput.Int32FieldMaxFloatValue.JsonOutput
|
||||
Required.JsonInput.Int32FieldMaxFloatValue.ProtobufOutput
|
||||
Required.JsonInput.Int32FieldMinFloatValue.JsonOutput
|
||||
Required.JsonInput.Int32FieldMinFloatValue.ProtobufOutput
|
||||
Required.JsonInput.Int32FieldStringValue.JsonOutput
|
||||
Required.JsonInput.Int32FieldStringValue.ProtobufOutput
|
||||
Required.JsonInput.Int32FieldStringValueEscaped.JsonOutput
|
||||
Required.JsonInput.Int32FieldStringValueEscaped.ProtobufOutput
|
||||
Required.JsonInput.Int64FieldMaxValue.JsonOutput
|
||||
Required.JsonInput.Int64FieldMaxValue.ProtobufOutput
|
||||
Required.JsonInput.Int64FieldMinValue.JsonOutput
|
||||
Required.JsonInput.Int64FieldMinValue.ProtobufOutput
|
||||
Required.JsonInput.MessageField.JsonOutput
|
||||
Required.JsonInput.MessageField.ProtobufOutput
|
||||
Required.JsonInput.OptionalBoolWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalBoolWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalBytesWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalBytesWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalDoubleWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalDoubleWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalFloatWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalFloatWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalInt32Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalInt32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalInt64Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalInt64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalStringWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalStringWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalUint32Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalUint32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalUint64Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalUint64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.JsonOutput
|
||||
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.ProtobufOutput
|
||||
Required.JsonInput.RepeatedBoolWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedBoolWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedBytesWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedBytesWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedDoubleWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedDoubleWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingMessagesGotInt
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotInt
|
||||
Required.JsonInput.RepeatedFloatWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedFloatWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedInt32Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedInt32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedInt64Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedInt64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedStringWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedStringWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedUint32Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedUint32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedUint64Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedUint64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.StringFieldEscape.JsonOutput
|
||||
Required.JsonInput.StringFieldEscape.ProtobufOutput
|
||||
Required.JsonInput.StringFieldNotAString
|
||||
Required.JsonInput.StringFieldSurrogatePair.JsonOutput
|
||||
Required.JsonInput.StringFieldSurrogatePair.ProtobufOutput
|
||||
Required.JsonInput.StringFieldUnicodeEscape.JsonOutput
|
||||
Required.JsonInput.StringFieldUnicodeEscape.ProtobufOutput
|
||||
Required.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.JsonOutput
|
||||
Required.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.ProtobufOutput
|
||||
Required.JsonInput.Struct.JsonOutput
|
||||
Required.JsonInput.Struct.ProtobufOutput
|
||||
Required.JsonInput.TimestampMaxValue.JsonOutput
|
||||
Required.JsonInput.TimestampMaxValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampMinValue.JsonOutput
|
||||
Required.JsonInput.TimestampMinValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampRepeatedValue.JsonOutput
|
||||
Required.JsonInput.TimestampRepeatedValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampWithNegativeOffset.JsonOutput
|
||||
Required.JsonInput.TimestampWithNegativeOffset.ProtobufOutput
|
||||
Required.JsonInput.TimestampWithPositiveOffset.JsonOutput
|
||||
Required.JsonInput.TimestampWithPositiveOffset.ProtobufOutput
|
||||
Required.JsonInput.Uint32FieldMaxFloatValue.JsonOutput
|
||||
Required.JsonInput.Uint32FieldMaxFloatValue.ProtobufOutput
|
||||
Required.JsonInput.Uint64FieldMaxValue.JsonOutput
|
||||
Required.JsonInput.Uint64FieldMaxValue.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptBool.JsonOutput
|
||||
Required.JsonInput.ValueAcceptBool.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptFloat.JsonOutput
|
||||
Required.JsonInput.ValueAcceptFloat.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptInteger.JsonOutput
|
||||
Required.JsonInput.ValueAcceptInteger.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptList.JsonOutput
|
||||
Required.JsonInput.ValueAcceptList.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptNull.JsonOutput
|
||||
Required.JsonInput.ValueAcceptNull.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptObject.JsonOutput
|
||||
Required.JsonInput.ValueAcceptObject.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptString.JsonOutput
|
||||
Required.JsonInput.ValueAcceptString.ProtobufOutput
|
||||
Required.JsonInput.WrapperTypesWithNullValue.ProtobufOutput
|
||||
Required.ProtobufInput.DoubleFieldNormalizeQuietNan.JsonOutput
|
||||
Required.ProtobufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.ProtobufInput.FloatFieldNormalizeQuietNan.JsonOutput
|
||||
Required.ProtobufInput.FloatFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.ProtobufInput.RepeatedScalarSelectsLast.FIXED32.ProtobufOutput
|
||||
Required.ProtobufInput.RepeatedScalarSelectsLast.FIXED64.ProtobufOutput
|
||||
Required.ProtobufInput.RepeatedScalarSelectsLast.UINT64.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AllFieldAcceptNull.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Any.JsonOutput
|
||||
Required.Proto3.JsonInput.Any.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyNested.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyNested.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyUnorderedTypeTag.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithDuration.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithDuration.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithFieldMask.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithFieldMask.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithStruct.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithStruct.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithTimestamp.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithTimestamp.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForInteger.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForInteger.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForJsonObject.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
|
||||
Required.Proto3.JsonInput.BoolFieldFalse.ProtobufOutput
|
||||
Required.Proto3.JsonInput.BoolMapField.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldInfinity.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxNegativeValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxNegativeValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxPositiveValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxPositiveValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinNegativeValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinNegativeValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinPositiveValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinPositiveValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldNan.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldNan.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldNegativeInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldNegativeInfinity.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldQuotedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldQuotedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DurationMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DurationMinValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationMinValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DurationRepeatedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationRepeatedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.EnumField.ProtobufOutput
|
||||
Required.Proto3.JsonInput.EnumFieldNumericValueNonZero.JsonOutput
|
||||
Required.Proto3.JsonInput.EnumFieldNumericValueNonZero.ProtobufOutput
|
||||
Required.Proto3.JsonInput.EnumFieldNumericValueZero.JsonOutput
|
||||
Required.Proto3.JsonInput.EnumFieldNumericValueZero.ProtobufOutput
|
||||
Required.Proto3.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.Proto3.JsonInput.FieldMask.JsonOutput
|
||||
Required.Proto3.JsonInput.FieldMask.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldInfinity.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNan.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNan.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNegativeInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNegativeInfinity.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldQuotedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldQuotedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldTooLarge
|
||||
Required.Proto3.JsonInput.FloatFieldTooSmall
|
||||
Required.Proto3.JsonInput.Int32FieldExponentialFormat.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldExponentialFormat.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int32FieldFloatTrailingZero.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldFloatTrailingZero.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int32FieldMaxFloatValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldMaxFloatValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int32FieldMinFloatValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldMinFloatValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int32FieldStringValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldStringValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int32FieldStringValueEscaped.JsonOutput
|
||||
Required.Proto3.JsonInput.Int32FieldStringValueEscaped.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int64FieldMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Int64FieldMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Int64FieldMinValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Int64FieldMinValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.MessageField.JsonOutput
|
||||
Required.Proto3.JsonInput.MessageField.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalBoolWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalBoolWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalBytesWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalBytesWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalDoubleWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalDoubleWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalFloatWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalFloatWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalInt32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalInt32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalInt64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalInt64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalStringWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalStringWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalUint32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalUint32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalUint64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalUint64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalWrapperTypesWithNonDefaultValue.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalWrapperTypesWithNonDefaultValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedBoolWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedBoolWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedBytesWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedBytesWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedDoubleWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedDoubleWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingMessagesGotInt
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotInt
|
||||
Required.Proto3.JsonInput.RepeatedFloatWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedFloatWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedStringWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedStringWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.StringFieldEscape.JsonOutput
|
||||
Required.Proto3.JsonInput.StringFieldEscape.ProtobufOutput
|
||||
Required.Proto3.JsonInput.StringFieldNotAString
|
||||
Required.Proto3.JsonInput.StringFieldSurrogatePair.JsonOutput
|
||||
Required.Proto3.JsonInput.StringFieldSurrogatePair.ProtobufOutput
|
||||
Required.Proto3.JsonInput.StringFieldUnicodeEscape.JsonOutput
|
||||
Required.Proto3.JsonInput.StringFieldUnicodeEscape.ProtobufOutput
|
||||
Required.Proto3.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.JsonOutput
|
||||
Required.Proto3.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Struct.JsonOutput
|
||||
Required.Proto3.JsonInput.Struct.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampMinValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampMinValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampRepeatedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampRepeatedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampWithNegativeOffset.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampWithNegativeOffset.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampWithPositiveOffset.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampWithPositiveOffset.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Uint32FieldMaxFloatValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Uint32FieldMaxFloatValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Uint64FieldMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.Uint64FieldMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptBool.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptBool.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptFloat.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptFloat.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptInteger.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptInteger.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptList.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptList.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptNull.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptNull.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptObject.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptObject.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptString.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptString.ProtobufOutput
|
||||
Required.Proto3.JsonInput.WrapperTypesWithNullValue.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.DoubleFieldNormalizeQuietNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.FloatFieldNormalizeQuietNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.FloatFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.FIXED32.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.FIXED64.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.UINT64.ProtobufOutput
|
||||
Required.TimestampProtoInputTooLarge.JsonOutput
|
||||
Required.TimestampProtoInputTooSmall.JsonOutput
|
||||
Recommended.Proto3.ProtobufInput.OneofZeroMessageSetTwice.JsonOutput
|
||||
|
@ -1,17 +1,21 @@
|
||||
Recommended.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Required.JsonInput.BytesFieldInvalidBase64Characters
|
||||
Required.JsonInput.DoubleFieldTooSmall
|
||||
Required.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.JsonInput.FloatFieldTooLarge
|
||||
Required.JsonInput.FloatFieldTooSmall
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingIntegersGotBool
|
||||
Required.JsonInput.TimestampJsonInputLowercaseT
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
Recommended.Proto3.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Required.Proto3.JsonInput.BytesFieldInvalidBase64Characters
|
||||
Required.Proto3.JsonInput.DoubleFieldTooSmall
|
||||
Required.Proto3.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.Proto3.JsonInput.FloatFieldTooLarge
|
||||
Required.Proto3.JsonInput.FloatFieldTooSmall
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingIntegersGotBool
|
||||
Required.Proto3.JsonInput.TimestampJsonInputLowercaseT
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.Proto2.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_0
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_1
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_2
|
||||
Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_3
|
||||
|
@ -7,32 +7,48 @@
|
||||
# TODO(haberman): insert links to corresponding bugs tracking the issue.
|
||||
# Should we use GitHub issues or the Google-internal bug tracker?
|
||||
|
||||
Recommended.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Required.JsonInput.BytesFieldInvalidBase64Characters
|
||||
Required.JsonInput.DoubleFieldTooSmall
|
||||
Required.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.JsonInput.FloatFieldTooLarge
|
||||
Required.JsonInput.FloatFieldTooSmall
|
||||
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingIntegersGotBool
|
||||
Required.JsonInput.TimestampJsonInputLowercaseT
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.ProtobufInput.PrematureEofInPackedField.DOUBLE
|
||||
Required.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.ProtobufInput.PrematureEofInPackedField.FIXED32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.FIXED64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.FLOAT
|
||||
Required.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SFIXED32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SFIXED64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
Recommended.Proto3.JsonInput.DoubleFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.DoubleFieldNegativeInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldInfinityNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNanNotQuoted
|
||||
Recommended.Proto3.JsonInput.FloatFieldNegativeInfinityNotQuoted
|
||||
Required.Proto3.JsonInput.BytesFieldInvalidBase64Characters
|
||||
Required.Proto3.JsonInput.DoubleFieldTooSmall
|
||||
Required.Proto3.JsonInput.EnumFieldUnknownValue.Validator
|
||||
Required.Proto3.JsonInput.FloatFieldTooLarge
|
||||
Required.Proto3.JsonInput.FloatFieldTooSmall
|
||||
Required.Proto3.JsonInput.RepeatedFieldWrongElementTypeExpectingIntegersGotBool
|
||||
Required.Proto3.JsonInput.TimestampJsonInputLowercaseT
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.DOUBLE
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.FIXED32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.FIXED64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.FLOAT
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SFIXED32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SFIXED64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.Proto3.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.BOOL
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.DOUBLE
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.ENUM
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.FIXED32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.FIXED64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.FLOAT
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.INT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.INT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SFIXED32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SFIXED64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT64
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT32
|
||||
Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT64
|
||||
|
@ -1,135 +1,135 @@
|
||||
Recommended.FieldMaskNumbersDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskPathsDontRoundTrip.JsonOutput
|
||||
Recommended.FieldMaskTooManyUnderscore.JsonOutput
|
||||
Recommended.JsonInput.DurationHas3FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHas6FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHas9FractionalDigits.Validator
|
||||
Recommended.JsonInput.DurationHasZeroFractionalDigit.Validator
|
||||
Recommended.JsonInput.Int64FieldBeString.Validator
|
||||
Recommended.JsonInput.MapFieldValueIsNull
|
||||
Recommended.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.JsonInput.StringEndsWithEscapeChar
|
||||
Recommended.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.JsonInput.TimestampHas3FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHas6FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHas9FractionalDigits.Validator
|
||||
Recommended.JsonInput.TimestampHasZeroFractionalDigit.Validator
|
||||
Recommended.JsonInput.TimestampZeroNormalized.Validator
|
||||
Recommended.JsonInput.Uint64FieldBeString.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHas3FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHas6FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHas9FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.DurationHasZeroFractionalDigit.Validator
|
||||
Recommended.Proto3.JsonInput.Int64FieldBeString.Validator
|
||||
Recommended.Proto3.JsonInput.MapFieldValueIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldMessageElementIsNull
|
||||
Recommended.Proto3.JsonInput.RepeatedFieldPrimitiveElementIsNull
|
||||
Recommended.Proto3.JsonInput.StringEndsWithEscapeChar
|
||||
Recommended.Proto3.JsonInput.StringFieldSurrogateInWrongOrder
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedHighSurrogate
|
||||
Recommended.Proto3.JsonInput.StringFieldUnpairedLowSurrogate
|
||||
Recommended.Proto3.JsonInput.TimestampHas3FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHas6FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHas9FractionalDigits.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampHasZeroFractionalDigit.Validator
|
||||
Recommended.Proto3.JsonInput.TimestampZeroNormalized.Validator
|
||||
Recommended.Proto3.JsonInput.Uint64FieldBeString.Validator
|
||||
Required.DurationProtoInputTooLarge.JsonOutput
|
||||
Required.DurationProtoInputTooSmall.JsonOutput
|
||||
Required.JsonInput.Any.JsonOutput
|
||||
Required.JsonInput.Any.ProtobufOutput
|
||||
Required.JsonInput.AnyNested.JsonOutput
|
||||
Required.JsonInput.AnyNested.ProtobufOutput
|
||||
Required.JsonInput.AnyUnorderedTypeTag.JsonOutput
|
||||
Required.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
|
||||
Required.JsonInput.AnyWithDuration.JsonOutput
|
||||
Required.JsonInput.AnyWithDuration.ProtobufOutput
|
||||
Required.JsonInput.AnyWithFieldMask.JsonOutput
|
||||
Required.JsonInput.AnyWithFieldMask.ProtobufOutput
|
||||
Required.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
|
||||
Required.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
|
||||
Required.JsonInput.AnyWithStruct.JsonOutput
|
||||
Required.JsonInput.AnyWithStruct.ProtobufOutput
|
||||
Required.JsonInput.AnyWithTimestamp.JsonOutput
|
||||
Required.JsonInput.AnyWithTimestamp.ProtobufOutput
|
||||
Required.JsonInput.AnyWithValueForInteger.JsonOutput
|
||||
Required.JsonInput.AnyWithValueForInteger.ProtobufOutput
|
||||
Required.JsonInput.AnyWithValueForJsonObject.JsonOutput
|
||||
Required.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMaxNegativeValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMaxNegativeValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldMinPositiveValue.JsonOutput
|
||||
Required.JsonInput.DoubleFieldMinPositiveValue.ProtobufOutput
|
||||
Required.JsonInput.DoubleFieldNan.JsonOutput
|
||||
Required.JsonInput.DurationMaxValue.JsonOutput
|
||||
Required.JsonInput.DurationMaxValue.ProtobufOutput
|
||||
Required.JsonInput.DurationMinValue.JsonOutput
|
||||
Required.JsonInput.DurationMinValue.ProtobufOutput
|
||||
Required.JsonInput.DurationRepeatedValue.JsonOutput
|
||||
Required.JsonInput.DurationRepeatedValue.ProtobufOutput
|
||||
Required.JsonInput.FieldMask.JsonOutput
|
||||
Required.JsonInput.FieldMask.ProtobufOutput
|
||||
Required.JsonInput.FloatFieldInfinity.JsonOutput
|
||||
Required.JsonInput.FloatFieldNan.JsonOutput
|
||||
Required.JsonInput.FloatFieldNegativeInfinity.JsonOutput
|
||||
Required.JsonInput.FloatFieldTooLarge
|
||||
Required.JsonInput.FloatFieldTooSmall
|
||||
Required.JsonInput.OneofFieldDuplicate
|
||||
Required.JsonInput.OptionalBoolWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalBoolWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalBytesWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalBytesWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalDoubleWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalDoubleWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalFloatWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalFloatWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalInt32Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalInt32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalInt64Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalInt64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalStringWrapper.JsonOutput
|
||||
Required.JsonInput.OptionalStringWrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalUint32Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalUint32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalUint64Wrapper.JsonOutput
|
||||
Required.JsonInput.OptionalUint64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.JsonOutput
|
||||
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.ProtobufOutput
|
||||
Required.JsonInput.RepeatedBoolWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedBoolWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedBytesWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedBytesWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedDoubleWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedDoubleWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedFloatWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedFloatWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedInt32Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedInt32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedInt64Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedInt64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedStringWrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedStringWrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedUint32Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedUint32Wrapper.ProtobufOutput
|
||||
Required.JsonInput.RepeatedUint64Wrapper.JsonOutput
|
||||
Required.JsonInput.RepeatedUint64Wrapper.ProtobufOutput
|
||||
Required.JsonInput.StringFieldSurrogatePair.JsonOutput
|
||||
Required.JsonInput.StringFieldSurrogatePair.ProtobufOutput
|
||||
Required.JsonInput.Struct.JsonOutput
|
||||
Required.JsonInput.Struct.ProtobufOutput
|
||||
Required.JsonInput.TimestampMaxValue.JsonOutput
|
||||
Required.JsonInput.TimestampMaxValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampMinValue.JsonOutput
|
||||
Required.JsonInput.TimestampMinValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampRepeatedValue.JsonOutput
|
||||
Required.JsonInput.TimestampRepeatedValue.ProtobufOutput
|
||||
Required.JsonInput.TimestampWithNegativeOffset.JsonOutput
|
||||
Required.JsonInput.TimestampWithNegativeOffset.ProtobufOutput
|
||||
Required.JsonInput.TimestampWithPositiveOffset.JsonOutput
|
||||
Required.JsonInput.TimestampWithPositiveOffset.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptBool.JsonOutput
|
||||
Required.JsonInput.ValueAcceptBool.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptFloat.JsonOutput
|
||||
Required.JsonInput.ValueAcceptFloat.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptInteger.JsonOutput
|
||||
Required.JsonInput.ValueAcceptInteger.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptList.JsonOutput
|
||||
Required.JsonInput.ValueAcceptList.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptNull.JsonOutput
|
||||
Required.JsonInput.ValueAcceptNull.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptObject.JsonOutput
|
||||
Required.JsonInput.ValueAcceptObject.ProtobufOutput
|
||||
Required.JsonInput.ValueAcceptString.JsonOutput
|
||||
Required.JsonInput.ValueAcceptString.ProtobufOutput
|
||||
Required.ProtobufInput.DoubleFieldNormalizeQuietNan.JsonOutput
|
||||
Required.ProtobufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.ProtobufInput.FloatFieldNormalizeQuietNan.JsonOutput
|
||||
Required.ProtobufInput.FloatFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.ProtobufInput.ValidDataRepeated.FLOAT.JsonOutput
|
||||
Required.Proto3.JsonInput.Any.JsonOutput
|
||||
Required.Proto3.JsonInput.Any.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyNested.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyNested.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyUnorderedTypeTag.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithDuration.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithDuration.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithFieldMask.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithFieldMask.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithStruct.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithStruct.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithTimestamp.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithTimestamp.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForInteger.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForInteger.ProtobufOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForJsonObject.JsonOutput
|
||||
Required.Proto3.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxNegativeValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMaxNegativeValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinPositiveValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldMinPositiveValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DoubleFieldNan.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DurationMinValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationMinValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.DurationRepeatedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.DurationRepeatedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FieldMask.JsonOutput
|
||||
Required.Proto3.JsonInput.FieldMask.ProtobufOutput
|
||||
Required.Proto3.JsonInput.FloatFieldInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNan.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldNegativeInfinity.JsonOutput
|
||||
Required.Proto3.JsonInput.FloatFieldTooLarge
|
||||
Required.Proto3.JsonInput.FloatFieldTooSmall
|
||||
Required.Proto3.JsonInput.OneofFieldDuplicate
|
||||
Required.Proto3.JsonInput.OptionalBoolWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalBoolWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalBytesWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalBytesWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalDoubleWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalDoubleWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalFloatWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalFloatWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalInt32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalInt32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalInt64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalInt64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalStringWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalStringWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalUint32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalUint32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalUint64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalUint64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.OptionalWrapperTypesWithNonDefaultValue.JsonOutput
|
||||
Required.Proto3.JsonInput.OptionalWrapperTypesWithNonDefaultValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedBoolWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedBoolWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedBytesWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedBytesWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedDoubleWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedDoubleWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedFloatWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedFloatWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedInt64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedStringWrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedStringWrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint32Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint32Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint64Wrapper.JsonOutput
|
||||
Required.Proto3.JsonInput.RepeatedUint64Wrapper.ProtobufOutput
|
||||
Required.Proto3.JsonInput.StringFieldSurrogatePair.JsonOutput
|
||||
Required.Proto3.JsonInput.StringFieldSurrogatePair.ProtobufOutput
|
||||
Required.Proto3.JsonInput.Struct.JsonOutput
|
||||
Required.Proto3.JsonInput.Struct.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampMaxValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampMaxValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampMinValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampMinValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampRepeatedValue.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampRepeatedValue.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampWithNegativeOffset.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampWithNegativeOffset.ProtobufOutput
|
||||
Required.Proto3.JsonInput.TimestampWithPositiveOffset.JsonOutput
|
||||
Required.Proto3.JsonInput.TimestampWithPositiveOffset.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptBool.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptBool.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptFloat.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptFloat.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptInteger.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptInteger.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptList.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptList.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptNull.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptNull.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptObject.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptObject.ProtobufOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptString.JsonOutput
|
||||
Required.Proto3.JsonInput.ValueAcceptString.ProtobufOutput
|
||||
Required.Proto3.ProtobufInput.DoubleFieldNormalizeQuietNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.FloatFieldNormalizeQuietNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.FloatFieldNormalizeSignalingNan.JsonOutput
|
||||
Required.Proto3.ProtobufInput.ValidDataRepeated.FLOAT.JsonOutput
|
||||
Required.TimestampProtoInputTooLarge.JsonOutput
|
||||
Required.TimestampProtoInputTooSmall.JsonOutput
|
||||
|
@ -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(ProtobufTestMessages.Proto3.TestAllTypes.Descriptor);
|
||||
var typeRegistry = TypeRegistry.FromMessages(ProtobufTestMessages.Proto3.TestAllTypesProto3.Descriptor);
|
||||
|
||||
int count = 0;
|
||||
while (RunTest(input, output, typeRegistry))
|
||||
@ -81,20 +81,20 @@ namespace Google.Protobuf.Conformance
|
||||
|
||||
private static ConformanceResponse PerformRequest(ConformanceRequest request, TypeRegistry typeRegistry)
|
||||
{
|
||||
ProtobufTestMessages.Proto3.TestAllTypes message;
|
||||
ProtobufTestMessages.Proto3.TestAllTypesProto3 message;
|
||||
try
|
||||
{
|
||||
switch (request.PayloadCase)
|
||||
{
|
||||
case ConformanceRequest.PayloadOneofCase.JsonPayload:
|
||||
var parser = new JsonParser(new JsonParser.Settings(20, typeRegistry));
|
||||
message = parser.Parse<ProtobufTestMessages.Proto3.TestAllTypes>(request.JsonPayload);
|
||||
message = parser.Parse<ProtobufTestMessages.Proto3.TestAllTypesProto3>(request.JsonPayload);
|
||||
break;
|
||||
case ConformanceRequest.PayloadOneofCase.ProtobufPayload:
|
||||
{
|
||||
if (request.MessageType.Equals("protobuf_test_messages.proto3.TestAllTypes"))
|
||||
if (request.MessageType.Equals("protobuf_test_messages.proto3.TestAllTypesProto3"))
|
||||
{
|
||||
message = ProtobufTestMessages.Proto3.TestAllTypes.Parser.ParseFrom(request.ProtobufPayload);
|
||||
message = ProtobufTestMessages.Proto3.TestAllTypesProto3.Parser.ParseFrom(request.ProtobufPayload);
|
||||
}
|
||||
else if (request.MessageType.Equals("protobuf_test_messages.proto2.TestAllTypesProto2"))
|
||||
{
|
||||
|
@ -59,10 +59,10 @@ option cc_enable_arenas = true;
|
||||
// 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 TestAllTypesProto3 {
|
||||
message NestedMessage {
|
||||
int32 a = 1;
|
||||
TestAllTypes corecursive = 2;
|
||||
TestAllTypesProto3 corecursive = 2;
|
||||
}
|
||||
|
||||
enum NestedEnum {
|
||||
@ -98,7 +98,7 @@ message TestAllTypes {
|
||||
string optional_string_piece = 24 [ctype=STRING_PIECE];
|
||||
string optional_cord = 25 [ctype=CORD];
|
||||
|
||||
TestAllTypes recursive_message = 27;
|
||||
TestAllTypesProto3 recursive_message = 27;
|
||||
|
||||
// Repeated
|
||||
repeated int32 repeated_int32 = 31;
|
||||
|
Loading…
Reference in New Issue
Block a user