Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
a713b730
Commit
a713b730
authored
Jul 24, 2017
by
Yilun Chong
Committed by
GitHub
Jul 24, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3281 from BSBandme/ConformanceTestYilunChong
Proto2 test message support to conformance test
parents
f15185d3
bceb830c
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
1524 additions
and
1073 deletions
+1524
-1073
.gitignore
.gitignore
+1
-0
ConformanceJava.java
conformance/ConformanceJava.java
+126
-124
Makefile.am
conformance/Makefile.am
+17
-6
conformance.proto
conformance/conformance.proto
+3
-0
conformance_cpp.cc
conformance/conformance_cpp.cc
+21
-10
conformance_nodejs.js
conformance/conformance_nodejs.js
+21
-7
conformance_objc.m
conformance/conformance_objc.m
+15
-7
conformance_php.php
conformance/conformance_php.php
+13
-6
conformance_python.py
conformance/conformance_python.py
+16
-5
conformance_ruby.rb
conformance/conformance_ruby.rb
+14
-7
conformance_test.cc
conformance/conformance_test.cc
+166
-104
conformance_test.h
conformance/conformance_test.h
+16
-6
failure_list_cpp.txt
conformance/failure_list_cpp.txt
+43
-32
failure_list_csharp.txt
conformance/failure_list_csharp.txt
+5
-4
failure_list_java.txt
conformance/failure_list_java.txt
+39
-36
failure_list_js.txt
conformance/failure_list_js.txt
+19
-15
failure_list_php.txt
conformance/failure_list_php.txt
+111
-111
failure_list_php_c.txt
conformance/failure_list_php_c.txt
+190
-190
failure_list_python.txt
conformance/failure_list_python.txt
+21
-17
failure_list_python_cpp.txt
conformance/failure_list_python_cpp.txt
+45
-29
failure_list_ruby.txt
conformance/failure_list_ruby.txt
+128
-128
Conformance.cs
csharp/src/Google.Protobuf.Conformance/Conformance.cs
+41
-10
Program.cs
csharp/src/Google.Protobuf.Conformance/Program.cs
+18
-5
TestMessagesProto3.cs
...src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs
+215
-211
setup.py
python/setup.py
+1
-0
test_messages_proto2.proto
src/google/protobuf/test_messages_proto2.proto
+216
-0
test_messages_proto3.proto
src/google/protobuf/test_messages_proto3.proto
+3
-3
No files found.
.gitignore
View file @
a713b730
...
...
@@ -134,6 +134,7 @@ conformance/Google/
conformance/Protobuf_test_messages/
conformance/conformance-php
conformance/conformance-php-c
conformance/*.class
# php test output
composer.lock
...
...
conformance/ConformanceJava.java
View file @
a713b730
import
com.google.protobuf.ByteString
;
import
com.google.protobuf.AbstractMessage
;
import
com.google.protobuf.Parser
;
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.TestAllTypesProto3
;
import
com.google.protobuf_test_messages.proto2.TestMessagesProto2
;
import
com.google.protobuf_test_messages.proto2.TestMessagesProto2.TestAllTypesProto2
;
import
com.google.protobuf.ExtensionRegistry
;
import
com.google.protobuf.util.JsonFormat
;
import
com.google.protobuf.util.JsonFormat.TypeRegistry
;
import
java.io.IOException
;
import
java.nio.ByteBuffer
;
import
java.util.ArrayList
;
class
ConformanceJava
{
private
int
testCount
=
0
;
...
...
@@ -50,123 +56,100 @@ class ConformanceJava {
buf
[
3
]
=
(
byte
)(
val
>>
24
);
writeToStdout
(
buf
);
}
private
enum
BinaryDecoderType
{
BTYE_STRING_DECODER
,
BYTE_ARRAY_DECODER
,
ARRAY_BYTE_BUFFER_DECODER
,
READONLY_ARRAY_BYTE_BUFFER_DECODER
,
DIRECT_BYTE_BUFFER_DECODER
,
READONLY_DIRECT_BYTE_BUFFER_DECODER
,
INPUT_STREAM_DECODER
;
}
private
enum
BinaryDecoder
{
BYTE_STRING_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
bytes
);
}
},
BYTE_ARRAY_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
bytes
.
toByteArray
());
}
},
ARRAY_BYTE_BUFFER_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
ByteBuffer
buffer
=
ByteBuffer
.
allocate
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
));
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"ByteString based ByteBuffer should not throw IOException."
,
e
);
}
}
},
READONLY_ARRAY_BYTE_BUFFER_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
try
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
CodedInputStream
.
newInstance
(
bytes
.
asReadOnlyByteBuffer
()));
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"ByteString based ByteBuffer should not throw IOException."
,
e
);
private
static
class
BinaryDecoder
<
MessageType
extends
AbstractMessage
>
{
public
MessageType
decode
(
ByteString
bytes
,
BinaryDecoderType
type
,
Parser
<
MessageType
>
parser
,
ExtensionRegistry
extensions
)
throws
InvalidProtocolBufferException
{
switch
(
type
)
{
case
BTYE_STRING_DECODER:
return
parser
.
parseFrom
(
bytes
,
extensions
);
case
BYTE_ARRAY_DECODER:
return
parser
.
parseFrom
(
bytes
.
toByteArray
(),
extensions
);
case
ARRAY_BYTE_BUFFER_DECODER:
{
ByteBuffer
buffer
=
ByteBuffer
.
allocate
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
parser
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
}
}
},
DIRECT_BYTE_BUFFER_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
ByteBuffer
buffer
=
ByteBuffer
.
allocateDirect
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
));
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"ByteString based ByteBuffer should not throw IOException."
,
e
);
case
READONLY_ARRAY_BYTE_BUFFER_DECODER:
{
try
{
return
parser
.
parseFrom
(
CodedInputStream
.
newInstance
(
bytes
.
asReadOnlyByteBuffer
()),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
}
case
DIRECT_BYTE_BUFFER_DECODER:
{
ByteBuffer
buffer
=
ByteBuffer
.
allocateDirect
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
parser
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
}
}
},
READONLY_DIRECT_BYTE_BUFFER_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
ByteBuffer
buffer
=
ByteBuffer
.
allocateDirect
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
.
asReadOnlyBuffer
()));
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"ByteString based ByteBuffer should not throw IOException."
,
e
);
case
READONLY_DIRECT_BYTE_BUFFER_DECODER:
{
ByteBuffer
buffer
=
ByteBuffer
.
allocateDirect
(
bytes
.
size
());
bytes
.
copyTo
(
buffer
);
buffer
.
flip
();
try
{
return
parser
.
parseFrom
(
CodedInputStream
.
newInstance
(
buffer
.
asReadOnlyBuffer
()),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
}
}
},
INPUT_STREAM_DECODER
()
{
@Override
public
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
{
try
{
return
TestMessagesProto3
.
TestAllTypes
.
parseFrom
(
bytes
.
newInput
());
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"ByteString based InputStream should not throw IOException."
,
e
);
case
INPUT_STREAM_DECODER:
{
try
{
return
parser
.
parseFrom
(
bytes
.
newInput
(),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
throw
e
;
}
}
default
:
return
null
;
}
};
public
abstract
TestMessagesProto3
.
TestAllTypes
parse
(
ByteString
bytes
)
throws
InvalidProtocolBufferException
;
}
}
private
TestMessagesProto3
.
TestAllTypes
parseBinary
(
ByteString
bytes
)
private
<
MessageType
extends
AbstractMessage
>
MessageType
parseBinary
(
ByteString
bytes
,
Parser
<
MessageType
>
parser
,
ExtensionRegistry
extensions
)
throws
InvalidProtocolBufferException
{
TestMessagesProto3
.
TestAllTypes
[]
messages
=
new
TestMessagesProto3
.
TestAllTypes
[
BinaryDecoder
.
values
().
length
];
InvalidProtocolBufferException
[]
exceptions
=
new
InvalidProtocolBufferException
[
BinaryDecoder
.
values
().
length
];
ArrayList
<
MessageType
>
messages
=
new
ArrayList
<
MessageType
>
();
ArrayList
<
InvalidProtocolBufferException
>
exceptions
=
new
ArrayList
<
InvalidProtocolBufferException
>();
for
(
int
i
=
0
;
i
<
BinaryDecoderType
.
values
().
length
;
i
++)
{
messages
.
add
(
null
);
exceptions
.
add
(
null
);
}
BinaryDecoder
<
MessageType
>
decoder
=
new
BinaryDecoder
<
MessageType
>
();
boolean
hasMessage
=
false
;
boolean
hasException
=
false
;
for
(
int
i
=
0
;
i
<
BinaryDecoder
.
values
().
length
;
++
i
)
{
for
(
int
i
=
0
;
i
<
BinaryDecoder
Type
.
values
().
length
;
++
i
)
{
try
{
messages
[
i
]
=
BinaryDecoder
.
values
()[
i
].
parse
(
bytes
);
//= BinaryDecoderType.values()[i].parseProto3(bytes);
messages
.
set
(
i
,
decoder
.
decode
(
bytes
,
BinaryDecoderType
.
values
()[
i
],
parser
,
extensions
));
hasMessage
=
true
;
}
catch
(
InvalidProtocolBufferException
e
)
{
exceptions
[
i
]
=
e
;
exceptions
.
set
(
i
,
e
)
;
hasException
=
true
;
}
}
...
...
@@ -174,9 +157,9 @@ class ConformanceJava {
if
(
hasMessage
&&
hasException
)
{
StringBuilder
sb
=
new
StringBuilder
(
"Binary decoders disagreed on whether the payload was valid.\n"
);
for
(
int
i
=
0
;
i
<
BinaryDecoder
.
values
().
length
;
++
i
)
{
sb
.
append
(
BinaryDecoder
.
values
()[
i
].
name
());
if
(
messages
[
i
]
!=
null
)
{
for
(
int
i
=
0
;
i
<
BinaryDecoder
Type
.
values
().
length
;
++
i
)
{
sb
.
append
(
BinaryDecoder
Type
.
values
()[
i
].
name
());
if
(
messages
.
get
(
i
)
!=
null
)
{
sb
.
append
(
" accepted the payload.\n"
);
}
else
{
sb
.
append
(
" rejected the payload.\n"
);
...
...
@@ -188,14 +171,14 @@ class ConformanceJava {
if
(
hasException
)
{
// We do not check if exceptions are equal. Different implementations may return different
// exception messages. Throw an arbitrary one out instead.
throw
exceptions
[
0
]
;
throw
exceptions
.
get
(
0
)
;
}
// Fast path comparing all the messages with the first message, assuming equality being
// symmetric and transitive.
boolean
allEqual
=
true
;
for
(
int
i
=
1
;
i
<
messages
.
length
;
++
i
)
{
if
(!
messages
[
0
].
equals
(
messages
[
i
]
))
{
for
(
int
i
=
1
;
i
<
messages
.
size
()
;
++
i
)
{
if
(!
messages
.
get
(
0
).
equals
(
messages
.
get
(
i
)
))
{
allEqual
=
false
;
break
;
}
...
...
@@ -204,12 +187,12 @@ class ConformanceJava {
// Slow path: compare and find out all unequal pairs.
if
(!
allEqual
)
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
messages
.
length
-
1
;
++
i
)
{
for
(
int
j
=
i
+
1
;
j
<
messages
.
length
;
++
j
)
{
if
(!
messages
[
i
].
equals
(
messages
[
j
]
))
{
sb
.
append
(
BinaryDecoder
.
values
()[
i
].
name
())
for
(
int
i
=
0
;
i
<
messages
.
size
()
-
1
;
++
i
)
{
for
(
int
j
=
i
+
1
;
j
<
messages
.
size
()
;
++
j
)
{
if
(!
messages
.
get
(
i
).
equals
(
messages
.
get
(
j
)
))
{
sb
.
append
(
BinaryDecoder
Type
.
values
()[
i
].
name
())
.
append
(
" and "
)
.
append
(
BinaryDecoder
.
values
()[
j
].
name
())
.
append
(
BinaryDecoder
Type
.
values
()[
j
].
name
())
.
append
(
" parsed the payload differently.\n"
);
}
}
...
...
@@ -217,24 +200,41 @@ class ConformanceJava {
throw
new
RuntimeException
(
sb
.
toString
());
}
return
messages
[
0
]
;
return
messages
.
get
(
0
)
;
}
private
Conformance
.
ConformanceResponse
doTest
(
Conformance
.
ConformanceRequest
request
)
{
TestMessagesProto3
.
TestAllTypes
testMessage
;
com
.
google
.
protobuf
.
AbstractMessage
testMessage
;
boolean
isProto3
=
request
.
getMessageType
().
equals
(
"protobuf_test_messages.proto3.TestAllTypesProto3"
);
boolean
isProto2
=
request
.
getMessageType
().
equals
(
"protobuf_test_messages.proto2.TestAllTypesProto2"
);
switch
(
request
.
getPayloadCase
())
{
case
PROTOBUF_PAYLOAD:
{
try
{
testMessage
=
parseBinary
(
request
.
getProtobufPayload
());
}
catch
(
InvalidProtocolBufferException
e
)
{
return
Conformance
.
ConformanceResponse
.
newBuilder
().
setParseError
(
e
.
getMessage
()).
build
();
if
(
isProto3
)
{
try
{
ExtensionRegistry
extensions
=
ExtensionRegistry
.
newInstance
();
TestMessagesProto3
.
registerAllExtensions
(
extensions
);
testMessage
=
parseBinary
(
request
.
getProtobufPayload
(),
TestAllTypesProto3
.
parser
(),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
return
Conformance
.
ConformanceResponse
.
newBuilder
().
setParseError
(
e
.
getMessage
()).
build
();
}
}
else
if
(
isProto2
)
{
try
{
ExtensionRegistry
extensions
=
ExtensionRegistry
.
newInstance
();
TestMessagesProto2
.
registerAllExtensions
(
extensions
);
testMessage
=
parseBinary
(
request
.
getProtobufPayload
(),
TestAllTypesProto2
.
parser
(),
extensions
);
}
catch
(
InvalidProtocolBufferException
e
)
{
return
Conformance
.
ConformanceResponse
.
newBuilder
().
setParseError
(
e
.
getMessage
()).
build
();
}
}
else
{
throw
new
RuntimeException
(
"Protobuf request doesn't have specific payload type."
);
}
break
;
}
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
();
...
...
@@ -256,8 +256,10 @@ class ConformanceJava {
case
UNSPECIFIED:
throw
new
RuntimeException
(
"Unspecified output format."
);
case
PROTOBUF:
return
Conformance
.
ConformanceResponse
.
newBuilder
().
setProtobufPayload
(
testMessage
.
toByteString
()).
build
();
case
PROTOBUF:
{
ByteString
MessageString
=
testMessage
.
toByteString
();
return
Conformance
.
ConformanceResponse
.
newBuilder
().
setProtobufPayload
(
MessageString
).
build
();
}
case
JSON:
try
{
...
...
@@ -300,7 +302,7 @@ class ConformanceJava {
public
void
run
()
throws
Exception
{
typeRegistry
=
TypeRegistry
.
newBuilder
().
add
(
TestMessagesProto3
.
TestAllTypes
.
getDescriptor
()).
build
();
TestMessagesProto3
.
TestAllTypes
Proto3
.
getDescriptor
()).
build
();
while
(
doTestIo
())
{
this
.
testCount
++;
}
...
...
conformance/Makefile.am
View file @
a713b730
...
...
@@ -2,7 +2,12 @@
conformance_protoc_inputs
=
\
conformance.proto
\
$(top_srcdir)
/src/google/protobuf/test_messages_proto3.proto
$(top_srcdir)
/src/google/protobuf/test_messages_proto3.proto
# proto2 input files, should be separated with proto3, as we
# can't generate proto2 files for ruby, php and objc
conformance_proto2_protoc_inputs
=
\
$(top_srcdir)
/src/google/protobuf/test_messages_proto2.proto
well_known_type_protoc_inputs
=
\
$(top_srcdir)
/src/google/protobuf/any.proto
\
...
...
@@ -64,6 +69,7 @@ other_language_protoc_outputs = \
com/google/protobuf/ValueOrBuilder.java
\
com/google/protobuf/WrappersProto.java
\
com/google/protobuf_test_messages/proto3/TestMessagesProto3.java
\
com/google/protobuf_test_messages/proto2/TestMessagesProto2.java
\
google/protobuf/any.pb.cc
\
google/protobuf/any.pb.h
\
google/protobuf/any.rb
\
...
...
@@ -84,8 +90,11 @@ other_language_protoc_outputs = \
google/protobuf/TestMessagesProto3.pbobjc.m
\
google/protobuf/test_messages_proto3.pb.cc
\
google/protobuf/test_messages_proto3.pb.h
\
google/protobuf/test_messages_proto2.pb.cc
\
google/protobuf/test_messages_proto2.pb.h
\
google/protobuf/test_messages_proto3_pb.rb
\
google/protobuf/test_messages_proto3_pb2.py
\
google/protobuf/test_messages_proto2_pb2.py
\
google/protobuf/timestamp.pb.cc
\
google/protobuf/timestamp.pb.h
\
google/protobuf/timestamp.rb
\
...
...
@@ -198,7 +207,7 @@ conformance_test_runner_SOURCES = conformance_test.h conformance_test.cc \
conformance_test_runner.cc
\
third_party/jsoncpp/json.h
\
third_party/jsoncpp/jsoncpp.cpp
nodist_conformance_test_runner_SOURCES
=
conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
nodist_conformance_test_runner_SOURCES
=
conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
google/protobuf/test_messages_proto2.pb.cc
conformance_test_runner_CPPFLAGS
=
-I
$(top_srcdir)
/src
-I
$(srcdir)
conformance_test_runner_CXXFLAGS
=
-std
=
c++11
# Explicit deps beacuse BUILT_SOURCES are only done before a "make all/check"
...
...
@@ -208,7 +217,7 @@ conformance_test_runner-conformance_test_runner.$(OBJEXT): conformance.pb.h
conformance_cpp_LDADD
=
$(top_srcdir)
/src/libprotobuf.la
conformance_cpp_SOURCES
=
conformance_cpp.cc
nodist_conformance_cpp_SOURCES
=
conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
nodist_conformance_cpp_SOURCES
=
conformance.pb.cc google/protobuf/test_messages_proto3.pb.cc
google/protobuf/test_messages_proto2.pb.cc
conformance_cpp_CPPFLAGS
=
-I
$(top_srcdir)
/src
# Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check"
# so a direct "make test_cpp" could fail if parallel enough.
...
...
@@ -242,8 +251,9 @@ google-protobuf:
if
USE_EXTERNAL_PROTOC
# Some implementations include pre-generated versions of well-known types.
protoc_middleman
:
$(conformance_protoc_inputs) $(well_known_type_protoc_inputs) google-protobuf
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
=
.
--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
...
...
@@ -253,8 +263,9 @@ else
# We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
# relative to srcdir, which may not be the same as the current directory when
# building out-of-tree.
protoc_middleman
:
$(top_srcdir)/src/protoc$(EXEEXT) $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) google-protobuf
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
--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)
)
...
...
@@ -274,7 +285,7 @@ MAINTAINERCLEANFILES = \
Makefile.in
javac_middleman
:
ConformanceJava.java protoc_middleman $(other_language_protoc_outputs)
jar
=
`
ls
../java/util/target/
*
jar-with-dependencies.jar
`
&&
javac
-classpath
../java/target/classes:
$$
jar ConformanceJava.java com/google/protobuf/conformance/Conformance.java com/google/protobuf_test_messages/proto3/TestMessagesProto3.java
jar
=
`
ls
../java/util/target/
*
jar-with-dependencies.jar
`
&&
javac
-classpath
../java/target/classes:
$$
jar ConformanceJava.java com/google/protobuf/conformance/Conformance.java com/google/protobuf_test_messages/proto3/TestMessagesProto3.java
com/google/protobuf_test_messages/proto2/TestMessagesProto2.java
@
touch
javac_middleman
conformance-java
:
javac_middleman
...
...
conformance/conformance.proto
View file @
a713b730
...
...
@@ -77,6 +77,9 @@ message ConformanceRequest {
// Which format should the testee serialize its message to?
WireFormat
requested_output_format
=
3
;
// should be set to either "proto2" or "proto3"
string
message_type
=
4
;
}
// Represents a single test case's output.
...
...
conformance/conformance_cpp.cc
View file @
a713b730
...
...
@@ -34,6 +34,8 @@
#include "conformance.pb.h"
#include <google/protobuf/test_messages_proto3.pb.h>
#include <google/protobuf/test_messages_proto2.pb.h>
#include <google/protobuf/message.h>
#include <google/protobuf/util/json_util.h>
#include <google/protobuf/util/type_resolver_util.h>
...
...
@@ -41,13 +43,15 @@ using conformance::ConformanceRequest;
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
::
proto3
::
TestAllTypes
Proto3
;
using
std
::
string
;
static
const
char
kTypeUrlPrefix
[]
=
"type.googleapis.com"
;
...
...
@@ -87,17 +91,24 @@ void CheckedWrite(int fd, const void *buf, size_t len) {
}
void
DoTest
(
const
ConformanceRequest
&
request
,
ConformanceResponse
*
response
)
{
TestAllTypes
test_message
;
Message
*
test_message
;
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
:
if
(
!
test_message
.
ParseFromString
(
request
.
protobuf_payload
()))
{
case
ConformanceRequest
:
:
kProtobufPayload
:
{
if
(
!
test_message
->
ParseFromString
(
request
.
protobuf_payload
()))
{
// Getting parse details would involve something like:
// http://stackoverflow.com/questions/22121922/how-can-i-get-more-details-about-errors-generated-during-protobuf-parsing-c
response
->
set_parse_error
(
"Parse error (no more details available)."
);
return
;
}
break
;
}
case
ConformanceRequest
:
:
kJsonPayload
:
{
string
proto_binary
;
...
...
@@ -109,7 +120,7 @@ void DoTest(const ConformanceRequest& request, ConformanceResponse* response) {
return
;
}
if
(
!
test_message
.
ParseFromString
(
proto_binary
))
{
if
(
!
test_message
->
ParseFromString
(
proto_binary
))
{
response
->
set_runtime_error
(
"Parsing JSON generates invalid proto output."
);
return
;
...
...
@@ -127,14 +138,14 @@ void DoTest(const ConformanceRequest& request, ConformanceResponse* response) {
GOOGLE_LOG
(
FATAL
)
<<
"Unspecified output format"
;
break
;
case
conformance
:
:
PROTOBUF
:
GOOGLE_CHECK
(
test_message
.
SerializeToString
(
response
->
mutable_protobuf_payload
()));
case
conformance
:
:
PROTOBUF
:
{
GOOGLE_CHECK
(
test_message
->
SerializeToString
(
response
->
mutable_protobuf_payload
()));
break
;
}
case
conformance
:
:
JSON
:
{
string
proto_binary
;
GOOGLE_CHECK
(
test_message
.
SerializeToString
(
&
proto_binary
));
GOOGLE_CHECK
(
test_message
->
SerializeToString
(
&
proto_binary
));
Status
status
=
BinaryToJsonString
(
type_resolver
,
*
type_url
,
proto_binary
,
response
->
mutable_json_payload
());
if
(
!
status
.
ok
())
{
...
...
@@ -197,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
(
TestAllTypes
Proto3
::
descriptor
()));
while
(
1
)
{
if
(
!
DoTestIo
())
{
fprintf
(
stderr
,
"conformance-cpp: received EOF from test runner "
...
...
conformance/conformance_nodejs.js
View file @
a713b730
...
...
@@ -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
;
...
...
@@ -49,14 +50,27 @@ function doTest(request) {
}
switch
(
request
.
getPayloadCase
())
{
case
conformance
.
ConformanceRequest
.
PayloadCase
.
PROTOBUF_PAYLOAD
:
try
{
testMessage
=
test_messages_proto3
.
TestAllTypes
.
deserializeBinary
(
request
.
getProtobufPayload
());
}
catch
(
err
)
{
response
.
setParseError
(
err
.
toString
());
return
response
;
case
conformance
.
ConformanceRequest
.
PayloadCase
.
PROTOBUF_PAYLOAD
:
{
if
(
request
.
getMessageType
()
==
"protobuf_test_messages.proto3.TestAllTypesProto3"
)
{
try
{
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"
){
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"
;
}
}
case
conformance
.
ConformanceRequest
.
PayloadCase
.
JSON_PAYLOAD
:
response
.
setSkipped
(
"JSON not supported."
);
...
...
conformance/conformance_objc.m
View file @
a713b730
...
...
@@ -63,7 +63,7 @@ static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes
static
ConformanceResponse
*
DoTest
(
ConformanceRequest
*
request
)
{
ConformanceResponse
*
response
=
[
ConformanceResponse
message
];
TestAllTypes
*
testMessage
=
nil
;
TestAllTypes
Proto3
*
testMessage
=
nil
;
switch
(
request
.
payloadOneOfCase
)
{
case
ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase
:
...
...
@@ -71,12 +71,20 @@ static ConformanceResponse *DoTest(ConformanceRequest *request) {
break
;
case
ConformanceRequest_Payload_OneOfCase_ProtobufPayload
:
{
NSError
*
error
=
nil
;
testMessage
=
[
TestAllTypes
parseFromData
:
request
.
protobufPayload
error
:
&
error
];
if
(
!
testMessage
)
{
response
.
parseError
=
[
NSString
stringWithFormat
:
@"Parse error: %@"
,
error
];
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
;
}
...
...
conformance/conformance_php.php
View file @
a713b730
...
...
@@ -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/TestAllTypes
Proto3
.php"
);
require_once
(
"Protobuf_test_messages/Proto3/TestAllTypes
Proto3
_NestedMessage.php"
);
require_once
(
"Protobuf_test_messages/Proto3/TestAllTypes
Proto3
_NestedEnum.php"
);
require_once
(
"GPBMetadata/Conformance.php"
);
require_once
(
"GPBMetadata/Google/Protobuf/Any.php"
);
...
...
@@ -42,14 +42,21 @@ $test_count = 0;
function
doTest
(
$request
)
{
$test_message
=
new
\Protobuf_test_messages\Proto3\TestAllTypes
();
$test_message
=
new
\Protobuf_test_messages\Proto3\TestAllTypes
Proto3
();
$response
=
new
\Conformance\ConformanceResponse
();
if
(
$request
->
getPayload
()
==
"protobuf_payload"
)
{
try
{
if
(
$request
->
getMessageType
()
==
"protobuf_test_messages.proto3.TestAllTypesProto3"
)
{
try
{
$test_message
->
mergeFromString
(
$request
->
getProtobufPayload
());
}
catch
(
Exception
$e
)
{
}
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
{
...
...
conformance/conformance_python.py
View file @
a713b730
...
...
@@ -38,9 +38,12 @@ 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
from
google.protobuf
import
test_messages_proto2_pb2
import
conformance_pb2
sys
.
stdout
=
os
.
fdopen
(
sys
.
stdout
.
fileno
(),
'wb'
,
0
)
...
...
@@ -53,9 +56,17 @@ class ProtocolError(Exception):
pass
def
do_test
(
request
):
test_message
=
test_messages_proto3_pb2
.
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"
)
if
(
not
isProto3
)
and
(
not
isJson
)
and
(
not
isProto2
):
raise
ProtocolError
(
"Protobuf request doesn't have specific payload type"
)
test_message
=
test_messages_proto2_pb2
.
TestAllTypesProto2
()
if
isProto2
else
\
test_messages_proto3_pb2
.
TestAllTypesProto3
()
response
=
conformance_pb2
.
ConformanceResponse
()
test_message
=
test_messages_proto3_pb2
.
TestAllTypes
()
try
:
if
request
.
WhichOneof
(
'payload'
)
==
'protobuf_payload'
:
...
...
@@ -63,8 +74,8 @@ def do_test(request):
test_message
.
ParseFromString
(
request
.
protobuf_payload
)
except
message
.
DecodeError
as
e
:
response
.
parse_error
=
str
(
e
)
return
response
return
response
elif
request
.
WhichOneof
(
'payload'
)
==
'json_payload'
:
try
:
json_format
.
Parse
(
request
.
json_payload
,
test_message
)
...
...
@@ -82,7 +93,7 @@ def do_test(request):
response
.
protobuf_payload
=
test_message
.
SerializeToString
()
elif
request
.
requested_output_format
==
conformance_pb2
.
JSON
:
try
:
try
:
response
.
json_payload
=
json_format
.
MessageToJson
(
test_message
)
except
Exception
as
e
:
response
.
serialize_error
=
str
(
e
)
...
...
conformance/conformance_ruby.rb
View file @
a713b730
...
...
@@ -37,23 +37,30 @@ $test_count = 0
$verbose
=
false
def
do_test
(
request
)
test_message
=
ProtobufTestMessages
::
Proto3
::
TestAllTypes
.
new
test_message
=
ProtobufTestMessages
::
Proto3
::
TestAllTypes
Proto3
.
new
response
=
Conformance
::
ConformanceResponse
.
new
begin
case
request
.
payload
when
:protobuf_payload
begin
test_message
=
ProtobufTestMessages
::
Proto3
::
TestAllTypes
.
decode
(
request
.
protobuf_payload
)
rescue
Google
::
Protobuf
::
ParseError
=>
err
response
.
parse_error
=
err
.
message
.
encode
(
'utf-8'
)
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
::
TestAllTypes
.
decode_json
(
test_message
=
ProtobufTestMessages
::
Proto3
::
TestAllTypes
Proto3
.
decode_json
(
request
.
json_payload
)
rescue
Google
::
Protobuf
::
ParseError
=>
err
response
.
parse_error
=
err
.
message
.
encode
(
'utf-8'
)
...
...
conformance/conformance_test.cc
View file @
a713b730
...
...
@@ -35,6 +35,7 @@
#include "conformance.pb.h"
#include "conformance_test.h"
#include <google/protobuf/test_messages_proto3.pb.h>
#include <google/protobuf/test_messages_proto2.pb.h>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/stringprintf.h>
...
...
@@ -59,7 +60,8 @@ 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
;
namespace
{
...
...
@@ -163,8 +165,10 @@ string submsg(uint32_t fn, const string& buf) {
#define UNKNOWN_FIELD 666
const
FieldDescriptor
*
GetFieldForType
(
FieldDescriptor
::
Type
type
,
bool
repeated
)
{
const
Descriptor
*
d
=
TestAllTypes
().
GetDescriptor
();
bool
repeated
,
bool
isProto3
)
{
const
Descriptor
*
d
=
isProto3
?
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
)
{
...
...
@@ -271,10 +275,19 @@ void ConformanceTestSuite::RunTest(const string& test_name,
void
ConformanceTestSuite
::
RunValidInputTest
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
string
&
input
,
WireFormat
input_format
,
const
string
&
equivalent_text_format
,
WireFormat
requested_output
)
{
TestAllTypes
reference_message
;
WireFormat
requested_output
,
bool
isProto3
)
{
auto
newTestMessage
=
[
&
isProto3
]()
{
Message
*
newMessage
;
if
(
isProto3
)
{
newMessage
=
new
TestAllTypesProto3
;
}
else
{
newMessage
=
new
TestAllTypesProto2
;
}
return
newMessage
;
};
Message
*
reference_message
=
newTestMessage
();
GOOGLE_CHECK
(
TextFormat
::
ParseFromString
(
equivalent_text_format
,
&
reference_message
))
TextFormat
::
ParseFromString
(
equivalent_text_format
,
reference_message
))
<<
"Failed to parse data for test case: "
<<
test_name
<<
", data: "
<<
equivalent_text_format
;
...
...
@@ -282,13 +295,21 @@ void ConformanceTestSuite::RunValidInputTest(
ConformanceResponse
response
;
switch
(
input_format
)
{
case
conformance
:
:
PROTOBUF
:
case
conformance
:
:
PROTOBUF
:
{
request
.
set_protobuf_payload
(
input
);
if
(
isProto3
)
{
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"
;
...
...
@@ -298,7 +319,7 @@ void ConformanceTestSuite::RunValidInputTest(
RunTest
(
test_name
,
request
,
&
response
);
TestAllTypes
test_message
;
Message
*
test_message
=
newTestMessage
()
;
switch
(
response
.
result_case
())
{
case
ConformanceResponse
:
:
RESULT_NOT_SET
:
...
...
@@ -334,10 +355,10 @@ void ConformanceTestSuite::RunValidInputTest(
return
;
}
if
(
!
test_message
.
ParseFromString
(
binary_protobuf
))
{
if
(
!
test_message
->
ParseFromString
(
binary_protobuf
))
{
ReportFailure
(
test_name
,
level
,
request
,
response
,
"INTERNAL ERROR: internal JSON->protobuf transcode "
"yielded unparseable proto."
);
"INTERNAL ERROR: internal JSON->protobuf transcode "
"yielded unparseable proto."
);
return
;
}
...
...
@@ -352,9 +373,9 @@ void ConformanceTestSuite::RunValidInputTest(
return
;
}
if
(
!
test_message
.
ParseFromString
(
response
.
protobuf_payload
()))
{
if
(
!
test_message
->
ParseFromString
(
response
.
protobuf_payload
()))
{
ReportFailure
(
test_name
,
level
,
request
,
response
,
"Protobuf output we received from test was unparseable."
);
"Protobuf output we received from test was unparseable."
);
return
;
}
...
...
@@ -373,7 +394,9 @@ void ConformanceTestSuite::RunValidInputTest(
string
differences
;
differencer
.
ReportDifferencesToString
(
&
differences
);
if
(
differencer
.
Compare
(
reference_message
,
test_message
))
{
bool
check
;
check
=
differencer
.
Compare
(
*
reference_message
,
*
test_message
);
if
(
check
)
{
ReportSuccess
(
test_name
);
}
else
{
ReportFailure
(
test_name
,
level
,
request
,
response
,
...
...
@@ -381,14 +404,19 @@ void ConformanceTestSuite::RunValidInputTest(
differences
.
c_str
());
}
}
// Expect that this precise protobuf will cause a parse error.
void
ConformanceTestSuite
::
ExpectParseFailureForProto
(
const
string
&
proto
,
const
string
&
test_name
,
ConformanceLevel
level
)
{
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.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
...
...
@@ -406,6 +434,13 @@ 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.
...
...
@@ -420,41 +455,48 @@ 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
);
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
);
equivalent_text_format
,
conformance
::
JSON
,
true
);
}
void
ConformanceTestSuite
::
RunValidJsonTestWithProtobufInput
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
TestAllTypes
&
input
,
const
string
&
test_name
,
ConformanceLevel
level
,
const
TestAllTypes
Proto3
&
input
,
const
string
&
equivalent_text_format
)
{
RunValidInputTest
(
ConformanceLevelToString
(
level
)
+
".ProtobufInput."
+
test_name
+
ConformanceLevelToString
(
level
)
+
".Proto
3"
+
".Proto
bufInput."
+
test_name
+
".JsonOutput"
,
level
,
input
.
SerializeAsString
(),
conformance
::
PROTOBUF
,
equivalent_text_format
,
conformance
::
JSON
);
equivalent_text_format
,
conformance
::
JSON
,
true
);
}
void
ConformanceTestSuite
::
RunValidProtobufTest
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
string
&
input_protobuf
,
const
string
&
equivalent_text_format
)
{
const
string
&
input_protobuf
,
const
string
&
equivalent_text_format
,
bool
isProto3
)
{
string
rname
=
".Proto3"
;
if
(
!
isProto3
)
{
rname
=
".Proto2"
;
}
RunValidInputTest
(
ConformanceLevelToString
(
level
)
+
".ProtobufInput."
+
test_name
+
ConformanceLevelToString
(
level
)
+
rname
+
".ProtobufInput."
+
test_name
+
".ProtobufOutput"
,
level
,
input_protobuf
,
conformance
::
PROTOBUF
,
equivalent_text_format
,
conformance
::
PROTOBUF
);
RunValidInputTest
(
ConformanceLevelToString
(
level
)
+
".ProtobufInput."
+
test_name
+
".JsonOutput"
,
level
,
input_protobuf
,
conformance
::
PROTOBUF
,
equivalent_text_format
,
conformance
::
JSON
);
equivalent_text_format
,
conformance
::
PROTOBUF
,
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
&
equivalent_text_format
)
{
RunValidProtobufTest
(
test_name
,
level
,
input
.
SerializeAsString
(),
equivalent_text_format
);
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
);
}
// According to proto3 JSON specification, JSON serializers follow more strict
...
...
@@ -469,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
);
...
...
@@ -507,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.
...
...
@@ -527,7 +571,7 @@ void ConformanceTestSuite::ExpectParseFailureForJson(
void
ConformanceTestSuite
::
ExpectSerializeFailureForJson
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
string
&
text_format
)
{
TestAllTypes
payload_message
;
TestAllTypes
Proto3
payload_message
;
GOOGLE_CHECK
(
TextFormat
::
ParseFromString
(
text_format
,
&
payload_message
))
<<
"Failed to parse: "
<<
text_format
;
...
...
@@ -535,6 +579,7 @@ void ConformanceTestSuite::ExpectSerializeFailureForJson(
ConformanceRequest
request
;
ConformanceResponse
response
;
request
.
set_protobuf_payload
(
payload_message
.
SerializeAsString
());
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
);
...
...
@@ -550,6 +595,7 @@ void ConformanceTestSuite::ExpectSerializeFailureForJson(
}
}
//TODO: proto2?
void
ConformanceTestSuite
::
TestPrematureEOFForType
(
FieldDescriptor
::
Type
type
)
{
// Incomplete values for each wire type.
static
const
string
incompletes
[
6
]
=
{
...
...
@@ -561,8 +607,8 @@ void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
string
(
"abc"
)
// 32BIT
};
const
FieldDescriptor
*
field
=
GetFieldForType
(
type
,
false
);
const
FieldDescriptor
*
rep_field
=
GetFieldForType
(
type
,
true
);
const
FieldDescriptor
*
field
=
GetFieldForType
(
type
,
false
,
true
);
const
FieldDescriptor
*
rep_field
=
GetFieldForType
(
type
,
true
,
true
);
WireFormatLite
::
WireType
wire_type
=
WireFormatLite
::
WireTypeForFieldType
(
static_cast
<
WireFormatLite
::
FieldType
>
(
type
));
const
string
&
incomplete
=
incompletes
[
wire_type
];
...
...
@@ -640,33 +686,36 @@ void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
void
ConformanceTestSuite
::
TestValidDataForType
(
FieldDescriptor
::
Type
type
,
std
::
vector
<
std
::
pair
<
std
::
string
,
std
::
string
>>
values
)
{
const
string
type_name
=
UpperCase
(
string
(
"."
)
+
FieldDescriptor
::
TypeName
(
type
));
WireFormatLite
::
WireType
wire_type
=
WireFormatLite
::
WireTypeForFieldType
(
static_cast
<
WireFormatLite
::
FieldType
>
(
type
));
const
FieldDescriptor
*
field
=
GetFieldForType
(
type
,
false
);
const
FieldDescriptor
*
rep_field
=
GetFieldForType
(
type
,
true
);
RunValidProtobufTest
(
"ValidDataScalar"
+
type_name
,
REQUIRED
,
cat
(
tag
(
field
->
number
(),
wire_type
),
values
[
0
].
first
),
field
->
name
()
+
": "
+
values
[
0
].
second
);
string
proto
;
string
text
=
field
->
name
()
+
": "
+
values
.
back
().
second
;
for
(
size_t
i
=
0
;
i
<
values
.
size
();
i
++
)
{
proto
+=
cat
(
tag
(
field
->
number
(),
wire_type
),
values
[
i
].
first
);
}
RunValidProtobufTest
(
"RepeatedScalarSelectsLast"
+
type_name
,
REQUIRED
,
proto
,
text
);
for
(
int
isProto3
=
0
;
isProto3
<
2
;
isProto3
++
)
{
const
string
type_name
=
UpperCase
(
string
(
"."
)
+
FieldDescriptor
::
TypeName
(
type
));
WireFormatLite
::
WireType
wire_type
=
WireFormatLite
::
WireTypeForFieldType
(
static_cast
<
WireFormatLite
::
FieldType
>
(
type
));
const
FieldDescriptor
*
field
=
GetFieldForType
(
type
,
false
,
isProto3
);
const
FieldDescriptor
*
rep_field
=
GetFieldForType
(
type
,
true
,
isProto3
);
RunValidProtobufTest
(
"ValidDataScalar"
+
type_name
,
REQUIRED
,
cat
(
tag
(
field
->
number
(),
wire_type
),
values
[
0
].
first
),
field
->
name
()
+
": "
+
values
[
0
].
second
,
isProto3
);
string
proto
;
string
text
=
field
->
name
()
+
": "
+
values
.
back
().
second
;
for
(
size_t
i
=
0
;
i
<
values
.
size
();
i
++
)
{
proto
+=
cat
(
tag
(
field
->
number
(),
wire_type
),
values
[
i
].
first
);
}
RunValidProtobufTest
(
"RepeatedScalarSelectsLast"
+
type_name
,
REQUIRED
,
proto
,
text
,
isProto3
);
proto
.
clear
();
text
.
clear
();
proto
.
clear
();
text
.
clear
();
for
(
size_t
i
=
0
;
i
<
values
.
size
();
i
++
)
{
proto
+=
cat
(
tag
(
rep_field
->
number
(),
wire_type
),
values
[
i
].
first
);
text
+=
rep_field
->
name
()
+
": "
+
values
[
i
].
second
+
" "
;
for
(
size_t
i
=
0
;
i
<
values
.
size
();
i
++
)
{
proto
+=
cat
(
tag
(
rep_field
->
number
(),
wire_type
),
values
[
i
].
first
);
text
+=
rep_field
->
name
()
+
": "
+
values
[
i
].
second
+
" "
;
}
RunValidProtobufTest
(
"ValidDataRepeated"
+
type_name
,
REQUIRED
,
proto
,
text
,
isProto3
);
}
RunValidProtobufTest
(
"ValidDataRepeated"
+
type_name
,
REQUIRED
,
proto
,
text
);
}
void
ConformanceTestSuite
::
SetFailureList
(
const
string
&
filename
,
...
...
@@ -708,6 +757,7 @@ bool ConformanceTestSuite::CheckSetEmpty(const std::set<string>& set_to_check,
}
}
// TODO: proto2?
void
ConformanceTestSuite
::
TestIllegalTags
()
{
// field num 0 is illegal
string
nullfield
[]
=
{
...
...
@@ -722,6 +772,44 @@ void ConformanceTestSuite::TestIllegalTags() {
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.0
f
);
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
)
{
...
...
@@ -734,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
(
TestAllTypes
Proto3
::
descriptor
());
output_
=
"
\n
CONFORMANCE TEST BEGIN ====================================
\n\n
"
;
...
...
@@ -1330,7 +1418,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
"optional_float: -inf"
);
// Non-cannonical Nan will be correctly normalized.
{
TestAllTypes
message
;
TestAllTypes
Proto3
message
;
// IEEE floating-point standard 32-bit quiet NaN:
// 0111 1111 1xxx xxxx xxxx xxxx xxxx xxxx
message
.
set_optional_float
(
...
...
@@ -1402,7 +1490,7 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
"optional_double: -inf"
);
// Non-cannonical Nan will be correctly normalized.
{
TestAllTypes
message
;
TestAllTypes
Proto3
message
;
message
.
set_optional_double
(
WireFormatLite
::
DecodeDouble
(
0x7FFA123456789ABCLL
));
RunValidJsonTestWithProtobufInput
(
...
...
@@ -1532,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"
);
message
.
mutable_oneof_nested_message
()
->
set_a
(
0
);
RunValidProtobufTestWithMessage
(
"OneofZeroMessage"
,
RECOMMENDED
,
message
,
"oneof_nested_message: {}"
);
message
.
set_oneof_string
(
""
);
RunValidProtobufTestWithMessage
(
"OneofZeroString"
,
RECOMMENDED
,
message
,
"oneof_string:
\"\"
"
);
message
.
set_oneof_bytes
(
""
);
RunValidProtobufTestWithMessage
(
"OneofZeroBytes"
,
RECOMMENDED
,
message
,
"oneof_bytes:
\"\"
"
);
message
.
set_oneof_bool
(
false
);
RunValidProtobufTestWithMessage
(
"OneofZeroBool"
,
RECOMMENDED
,
message
,
"oneof_bool: false"
);
message
.
set_oneof_uint64
(
0
);
RunValidProtobufTestWithMessage
(
"OneofZeroUint64"
,
RECOMMENDED
,
message
,
"oneof_uint64: 0"
);
message
.
set_oneof_float
(
0.0
f
);
RunValidProtobufTestWithMessage
(
"OneofZeroFloat"
,
RECOMMENDED
,
message
,
"oneof_float: 0"
);
message
.
set_oneof_double
(
0.0
);
RunValidProtobufTestWithMessage
(
"OneofZeroDouble"
,
RECOMMENDED
,
message
,
"oneof_double: 0"
);
message
.
set_oneof_enum
(
TestAllTypes
::
FOO
);
RunValidProtobufTestWithMessage
(
"OneofZeroEnum"
,
RECOMMENDED
,
message
,
"oneof_enum: FOO"
);
}
TestAllTypesProto3
messageProto3
;
TestAllTypesProto2
messageProto2
;
TestOneofMessage
(
messageProto3
,
true
);
TestOneofMessage
(
messageProto2
,
false
);
RunValidJsonTest
(
"OneofZeroUint32"
,
RECOMMENDED
,
R"({"oneofUint32": 0})"
,
"oneof_uint32: 0"
);
...
...
@@ -2203,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.TestAllTypes
Proto3
",
"optionalInt32": 12345
}
})"
,
R"(
optional_any: {
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes
Proto3
] {
optional_int32: 12345
}
}
...
...
@@ -2220,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.TestAllTypes
Proto3
",
"optionalInt32": 12345
}
}
...
...
@@ -2228,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.TestAllTypes
Proto3
] {
optional_int32: 12345
}
}
...
...
@@ -2240,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.TestAllTypes
Proto3
"
}
})"
,
R"(
optional_any: {
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes] {
[type.googleapis.com/protobuf_test_messages.proto3.TestAllTypes
Proto3
] {
optional_int32: 12345
}
}
...
...
conformance/conformance_test.h
View file @
a713b730
...
...
@@ -53,7 +53,7 @@ class ConformanceResponse;
namespace
protobuf_test_messages
{
namespace
proto3
{
class
TestAllTypes
;
class
TestAllTypes
Proto3
;
}
// namespace proto3
}
// namespace protobuf_test_messages
...
...
@@ -165,7 +165,8 @@ class ConformanceTestSuite {
const
string
&
input
,
conformance
::
WireFormat
input_format
,
const
string
&
equivalent_text_format
,
conformance
::
WireFormat
requested_output
);
conformance
::
WireFormat
requested_output
,
bool
isProto3
);
void
RunValidJsonTest
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
string
&
input_json
,
...
...
@@ -173,15 +174,17 @@ class ConformanceTestSuite {
void
RunValidJsonTestWithProtobufInput
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
protobuf_test_messages
::
proto3
::
TestAllTypes
&
input
,
const
protobuf_test_messages
::
proto3
::
TestAllTypes
Proto3
&
input
,
const
string
&
equivalent_text_format
);
void
RunValidProtobufTest
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
string
&
input_protobuf
,
const
string
&
equivalent_text_format
);
const
string
&
equivalent_text_format
,
bool
isProto3
);
void
RunValidProtobufTestWithMessage
(
const
string
&
test_name
,
ConformanceLevel
level
,
const
protobuf_test_messages
::
proto3
::
TestAllTypes
&
input
,
const
string
&
equivalent_text_format
);
const
Message
*
input
,
const
string
&
equivalent_text_format
,
bool
isProto3
);
typedef
std
::
function
<
bool
(
const
Json
::
Value
&
)
>
Validator
;
void
RunValidJsonTestWithValidator
(
const
string
&
test_name
,
...
...
@@ -194,6 +197,10 @@ 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
);
...
...
@@ -202,6 +209,9 @@ class ConformanceTestSuite {
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
);
...
...
conformance/failure_list_cpp.txt
View file @
a713b730
...
...
@@ -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
conformance/failure_list_csharp.txt
View file @
a713b730
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
conformance/failure_list_java.txt
View file @
a713b730
...
...
@@ -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
\ No newline at end of file
conformance/failure_list_js.txt
View file @
a713b730
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
conformance/failure_list_php.txt
View file @
a713b730
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.TimestampHas3FractionalDigits.Validator
Recommended.JsonInput.TimestampHas6FractionalDigits.Validator
Recommended.JsonInput.TimestampHas9FractionalDigits.Validator
Recommended.JsonInput.TimestampHasZeroFractionalDigit.Validator
Recommended.JsonInput.TimestampZeroNormalized.Validator
Recommended.
Proto3.
JsonInput.DurationHas3FractionalDigits.Validator
Recommended.
Proto3.
JsonInput.DurationHas6FractionalDigits.Validator
Recommended.
Proto3.
JsonInput.DurationHas9FractionalDigits.Validator
Recommended.
Proto3.
JsonInput.DurationHasZeroFractionalDigit.Validator
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
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.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.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.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.
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.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.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.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.TimestampProtoInputTooLarge.JsonOutput
Required.TimestampProtoInputTooSmall.JsonOutput
Required.JsonInput.FloatFieldTooLarge
Required.JsonInput.FloatFieldTooSmall
Required.JsonInput.DoubleFieldTooSmall
Required.JsonInput.Int32FieldNotInteger
Required.JsonInput.Int64FieldNotInteger
Required.JsonInput.Uint32FieldNotInteger
Required.JsonInput.Uint64FieldNotInteger
Required.JsonInput.Int32FieldLeadingSpace
Required.JsonInput.OneofFieldDuplicate
Required.ProtobufInput.ValidDataRepeated.FLOAT.JsonOutput
Required.
Proto3.
JsonInput.FloatFieldTooLarge
Required.
Proto3.
JsonInput.FloatFieldTooSmall
Required.
Proto3.
JsonInput.DoubleFieldTooSmall
Required.
Proto3.
JsonInput.Int32FieldNotInteger
Required.
Proto3.
JsonInput.Int64FieldNotInteger
Required.
Proto3.
JsonInput.Uint32FieldNotInteger
Required.
Proto3.
JsonInput.Uint64FieldNotInteger
Required.
Proto3.
JsonInput.Int32FieldLeadingSpace
Required.
Proto3.
JsonInput.OneofFieldDuplicate
Required.Proto
3.Proto
bufInput.ValidDataRepeated.FLOAT.JsonOutput
conformance/failure_list_php_c.txt
View file @
a713b730
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.OneofZeroBytes.JsonOutput
Recommended.JsonInput.OneofZeroBytes.ProtobufOutput
Recommended.JsonInput.OneofZeroString.JsonOutput
Recommended.JsonInput.OneofZeroString.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.OneofZeroBytes.JsonOutput
Recommended.ProtobufInput.OneofZeroBytes.ProtobufOutput
Recommended.ProtobufInput.OneofZeroString.JsonOutput
Recommended.ProtobufInput.OneofZeroString.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.OneofZeroBytes.JsonOutput
Recommended.
Proto3.
JsonInput.OneofZeroBytes.ProtobufOutput
Recommended.
Proto3.
JsonInput.OneofZeroString.JsonOutput
Recommended.
Proto3.
JsonInput.OneofZeroString.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.Proto
3.Proto
bufInput.OneofZeroBytes.JsonOutput
Recommended.Proto
3.Proto
bufInput.OneofZeroBytes.ProtobufOutput
Recommended.Proto
3.Proto
bufInput.OneofZeroString.JsonOutput
Recommended.Proto
3.Proto
bufInput.OneofZeroString.ProtobufOutput
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.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.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.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.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.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.Proto
3.Proto
bufInput.DoubleFieldNormalizeQuietNan.JsonOutput
Required.Proto
3.Proto
bufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
Required.Proto
3.Proto
bufInput.FloatFieldNormalizeQuietNan.JsonOutput
Required.Proto
3.Proto
bufInput.FloatFieldNormalizeSignalingNan.JsonOutput
Required.Proto
3.Proto
bufInput.ValidDataRepeated.FLOAT.JsonOutput
Required.TimestampProtoInputTooLarge.JsonOutput
Required.TimestampProtoInputTooSmall.JsonOutput
conformance/failure_list_python.txt
View file @
a713b730
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
conformance/failure_list_python_cpp.txt
View file @
a713b730
...
...
@@ -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
conformance/failure_list_ruby.txt
View file @
a713b730
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.Proto
3.Proto
bufInput.DoubleFieldNormalizeQuietNan.JsonOutput
Required.Proto
3.Proto
bufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
Required.Proto
3.Proto
bufInput.FloatFieldNormalizeQuietNan.JsonOutput
Required.Proto
3.Proto
bufInput.FloatFieldNormalizeSignalingNan.JsonOutput
Required.Proto
3.Proto
bufInput.ValidDataRepeated.FLOAT.JsonOutput
Required.TimestampProtoInputTooLarge.JsonOutput
Required.TimestampProtoInputTooSmall.JsonOutput
csharp/src/Google.Protobuf.Conformance/Conformance.cs
View file @
a713b730
...
...
@@ -22,21 +22,21 @@ namespace Conformance {
static
ConformanceReflection
()
{
byte
[]
descriptorData
=
global
::
System
.
Convert
.
FromBase64String
(
string
.
Concat
(
"ChFjb25mb3JtYW5jZS5wcm90bxILY29uZm9ybWFuY2Ui
jQ
EKEkNvbmZvcm1h"
,
"ChFjb25mb3JtYW5jZS5wcm90bxILY29uZm9ybWFuY2Ui
ow
EKEkNvbmZvcm1h"
,
"bmNlUmVxdWVzdBIaChBwcm90b2J1Zl9wYXlsb2FkGAEgASgMSAASFgoManNv"
,
"bl9wYXlsb2FkGAIgASgJSAASOAoXcmVxdWVzdGVkX291dHB1dF9mb3JtYXQY"
,
"AyABKA4yFy5jb25mb3JtYW5jZS5XaXJlRm9ybWF0
QgkKB3BheWxvYWQisQEK
"
,
"
E0NvbmZvcm1hbmNlUmVzcG9uc2USFQoLcGFyc2VfZXJyb3IYASABKAlIABIZ
"
,
"C
g9zZXJpYWxpemVfZXJyb3IYBiABKAlIABIXCg1ydW50aW1lX2Vycm9yGAIg
"
,
"
ASgJSAASGgoQcHJvdG9idWZfcGF5bG9hZBgDIAEoDEgAEhYKDGpzb25fcGF5
"
,
"
bG9hZBgEIAEoCUgAEhEKB3NraXBwZWQYBSABKAlIAEIICgZyZXN1bHQqNQoK
"
,
"
V2lyZUZvcm1hdBIPCgtVTlNQRUNJRklFRBAAEgwKCFBST1RPQlVGEAESCAoE
"
,
"
SlNPThACQiEKH2NvbS5nb29nbGUucHJvdG9idWYuY29uZm9ybWFuY2ViB
nBy"
,
"b3Rv
Mw=
="
));
"AyABKA4yFy5jb25mb3JtYW5jZS5XaXJlRm9ybWF0
EhQKDG1lc3NhZ2VfdHlw
"
,
"
ZRgEIAEoCUIJCgdwYXlsb2FkIrEBChNDb25mb3JtYW5jZVJlc3BvbnNlEhUK
"
,
"C
3BhcnNlX2Vycm9yGAEgASgJSAASGQoPc2VyaWFsaXplX2Vycm9yGAYgASgJ
"
,
"
SAASFwoNcnVudGltZV9lcnJvchgCIAEoCUgAEhoKEHByb3RvYnVmX3BheWxv
"
,
"
YWQYAyABKAxIABIWCgxqc29uX3BheWxvYWQYBCABKAlIABIRCgdza2lwcGVk
"
,
"
GAUgASgJSABCCAoGcmVzdWx0KjUKCldpcmVGb3JtYXQSDwoLVU5TUEVDSUZJ
"
,
"
RUQQABIMCghQUk9UT0JVRhABEggKBEpTT04QAkIhCh9jb20uZ29vZ2xlL
nBy"
,
"b3Rv
YnVmLmNvbmZvcm1hbmNlYgZwcm90bzM
="
));
descriptor
=
pbr
::
FileDescriptor
.
FromGeneratedCode
(
descriptorData
,
new
pbr
::
FileDescriptor
[]
{
},
new
pbr
::
GeneratedClrTypeInfo
(
new
[]
{
typeof
(
global
::
Conformance
.
WireFormat
),
},
new
pbr
::
GeneratedClrTypeInfo
[]
{
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
Conformance
.
ConformanceRequest
),
global
::
Conformance
.
ConformanceRequest
.
Parser
,
new
[]{
"ProtobufPayload"
,
"JsonPayload"
,
"RequestedOutputFormat"
},
new
[]{
"Payload"
},
null
,
null
),
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
Conformance
.
ConformanceRequest
),
global
::
Conformance
.
ConformanceRequest
.
Parser
,
new
[]{
"ProtobufPayload"
,
"JsonPayload"
,
"RequestedOutputFormat"
,
"MessageType"
},
new
[]{
"Payload"
},
null
,
null
),
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
Conformance
.
ConformanceResponse
),
global
::
Conformance
.
ConformanceResponse
.
Parser
,
new
[]{
"ParseError"
,
"SerializeError"
,
"RuntimeError"
,
"ProtobufPayload"
,
"JsonPayload"
,
"Skipped"
},
new
[]{
"Result"
},
null
,
null
)
}));
}
...
...
@@ -85,6 +85,7 @@ namespace Conformance {
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
ConformanceRequest
(
ConformanceRequest
other
)
:
this
()
{
requestedOutputFormat_
=
other
.
requestedOutputFormat_
;
messageType_
=
other
.
messageType_
;
switch
(
other
.
PayloadCase
)
{
case
PayloadOneofCase
.
ProtobufPayload
:
ProtobufPayload
=
other
.
ProtobufPayload
;
...
...
@@ -137,6 +138,20 @@ namespace Conformance {
}
}
/// <summary>Field number for the "message_type" field.</summary>
public
const
int
MessageTypeFieldNumber
=
4
;
private
string
messageType_
=
""
;
/// <summary>
/// should be set to either "proto2" or "proto3"
/// </summary>
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
string
MessageType
{
get
{
return
messageType_
;
}
set
{
messageType_
=
pb
::
ProtoPreconditions
.
CheckNotNull
(
value
,
"value"
);
}
}
private
object
payload_
;
/// <summary>Enum of possible cases for the "payload" oneof.</summary>
public
enum
PayloadOneofCase
{
...
...
@@ -172,6 +187,7 @@ namespace Conformance {
if
(
ProtobufPayload
!=
other
.
ProtobufPayload
)
return
false
;
if
(
JsonPayload
!=
other
.
JsonPayload
)
return
false
;
if
(
RequestedOutputFormat
!=
other
.
RequestedOutputFormat
)
return
false
;
if
(
MessageType
!=
other
.
MessageType
)
return
false
;
if
(
PayloadCase
!=
other
.
PayloadCase
)
return
false
;
return
true
;
}
...
...
@@ -182,6 +198,7 @@ namespace Conformance {
if
(
payloadCase_
==
PayloadOneofCase
.
ProtobufPayload
)
hash
^=
ProtobufPayload
.
GetHashCode
();
if
(
payloadCase_
==
PayloadOneofCase
.
JsonPayload
)
hash
^=
JsonPayload
.
GetHashCode
();
if
(
RequestedOutputFormat
!=
0
)
hash
^=
RequestedOutputFormat
.
GetHashCode
();
if
(
MessageType
.
Length
!=
0
)
hash
^=
MessageType
.
GetHashCode
();
hash
^=
(
int
)
payloadCase_
;
return
hash
;
}
...
...
@@ -205,6 +222,10 @@ namespace Conformance {
output
.
WriteRawTag
(
24
);
output
.
WriteEnum
((
int
)
RequestedOutputFormat
);
}
if
(
MessageType
.
Length
!=
0
)
{
output
.
WriteRawTag
(
34
);
output
.
WriteString
(
MessageType
);
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
...
...
@@ -219,6 +240,9 @@ namespace Conformance {
if
(
RequestedOutputFormat
!=
0
)
{
size
+=
1
+
pb
::
CodedOutputStream
.
ComputeEnumSize
((
int
)
RequestedOutputFormat
);
}
if
(
MessageType
.
Length
!=
0
)
{
size
+=
1
+
pb
::
CodedOutputStream
.
ComputeStringSize
(
MessageType
);
}
return
size
;
}
...
...
@@ -230,6 +254,9 @@ namespace Conformance {
if
(
other
.
RequestedOutputFormat
!=
0
)
{
RequestedOutputFormat
=
other
.
RequestedOutputFormat
;
}
if
(
other
.
MessageType
.
Length
!=
0
)
{
MessageType
=
other
.
MessageType
;
}
switch
(
other
.
PayloadCase
)
{
case
PayloadOneofCase
.
ProtobufPayload
:
ProtobufPayload
=
other
.
ProtobufPayload
;
...
...
@@ -261,6 +288,10 @@ namespace Conformance {
requestedOutputFormat_
=
(
global
::
Conformance
.
WireFormat
)
input
.
ReadEnum
();
break
;
}
case
34
:
{
MessageType
=
input
.
ReadString
();
break
;
}
}
}
}
...
...
csharp/src/Google.Protobuf.Conformance/Program.cs
View file @
a713b730
...
...
@@ -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
.
TestAllTypes
Proto3
.
Descriptor
);
int
count
=
0
;
while
(
RunTest
(
input
,
output
,
typeRegistry
))
...
...
@@ -81,18 +81,31 @@ namespace Google.Protobuf.Conformance
private
static
ConformanceResponse
PerformRequest
(
ConformanceRequest
request
,
TypeRegistry
typeRegistry
)
{
ProtobufTestMessages
.
Proto3
.
TestAllTypes
message
;
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
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
.
TestAllTypes
Proto3
>(
request
.
JsonPayload
);
break
;
case
ConformanceRequest
.
PayloadOneofCase
.
ProtobufPayload
:
message
=
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Parser
.
ParseFrom
(
request
.
ProtobufPayload
);
case
ConformanceRequest
.
PayloadOneofCase
.
ProtobufPayload
:
{
if
(
request
.
MessageType
.
Equals
(
"protobuf_test_messages.proto3.TestAllTypesProto3"
))
{
message
=
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Parser
.
ParseFrom
(
request
.
ProtobufPayload
);
}
else
if
(
request
.
MessageType
.
Equals
(
"protobuf_test_messages.proto2.TestAllTypesProto2"
))
{
return
new
ConformanceResponse
{
Skipped
=
"CSharp doesn't support proto2"
};
}
else
{
throw
new
Exception
(
" Protobuf request doesn't have specific payload type"
);
}
break
;
}
default
:
throw
new
Exception
(
"Unsupported request payload: "
+
request
.
PayloadCase
);
}
...
...
csharp/src/Google.Protobuf.Test/TestProtos/TestMessagesProto3.cs
View file @
a713b730
...
...
@@ -27,168 +27,172 @@ namespace ProtobufTestMessages.Proto3 {
"dWYvYW55LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8a"
,
"IGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhxnb29nbGUvcHJv"
,
"dG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1w"
,
"LnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8i+DkKDFRl"
,
"c3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25h"
,
"bF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0"
,
"aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIX"
,
"Cg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgH"
,
"IAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3Nm"
,
"aXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9w"
,
"dGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIV"
,
"Cg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEo"
,
"CRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJaChdvcHRpb25hbF9uZXN0ZWRf"
,
"bWVzc2FnZRgSIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8z"
,
"LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEk8KGG9wdGlvbmFsX2ZvcmVp"
,
"Z25fbWVzc2FnZRgTIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJv"
,
"dG8zLkZvcmVpZ25NZXNzYWdlElQKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUg"
,
"ASgOMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5"
,
"cGVzLk5lc3RlZEVudW0SSQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgO"
,
"MioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW0S"
,
"IQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25h"
,
"bF9jb3JkGBkgASgJQgIIARJGChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIr"
,
"LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcxIW"
,
"Cg5yZXBlYXRlZF9pbnQzMhgfIAMoBRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMo"
,
"AxIXCg9yZXBlYXRlZF91aW50MzIYISADKA0SFwoPcmVwZWF0ZWRfdWludDY0"
,
"GCIgAygEEhcKD3JlcGVhdGVkX3NpbnQzMhgjIAMoERIXCg9yZXBlYXRlZF9z"
,
"aW50NjQYJCADKBISGAoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoBxIYChByZXBl"
,
"YXRlZF9maXhlZDY0GCYgAygGEhkKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygP"
,
"EhkKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0"
,
"GCkgAygCEhcKD3JlcGVhdGVkX2RvdWJsZRgqIAMoARIVCg1yZXBlYXRlZF9i"
,
"b29sGCsgAygIEhcKD3JlcGVhdGVkX3N0cmluZxgsIAMoCRIWCg5yZXBlYXRl"
,
"ZF9ieXRlcxgtIAMoDBJaChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMo"
,
"CzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBl"
,
"cy5OZXN0ZWRNZXNzYWdlEk8KGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgx"
,
"IAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25N"
,
"ZXNzYWdlElQKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjYucHJvdG9i"
,
"dWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk5lc3RlZEVu"
,
"dW0SSQoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMioucHJvdG9idWZf"
,
"dGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRf"
,
"c3RyaW5nX3BpZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJ"
,
"QgIIARJXCg9tYXBfaW50MzJfaW50MzIYOCADKAsyPi5wcm90b2J1Zl90ZXN0"
,
"X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwSW50MzJJbnQzMkVu"
,
"dHJ5ElcKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzI+LnByb3RvYnVmX3Rlc3Rf"
,
"bWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcy5NYXBJbnQ2NEludDY0RW50"
,
"cnkSWwoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyQC5wcm90b2J1Zl90ZXN0"
,
"X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwVWludDMyVWludDMy"
,
"RW50cnkSWwoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyQC5wcm90b2J1Zl90"
,
"ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwVWludDY0VWlu"
,
"dDY0RW50cnkSWwoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyQC5wcm90b2J1"
,
"Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwU2ludDMy"
,
"U2ludDMyRW50cnkSWwoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyQC5wcm90"
,
"b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwU2lu"
,
"dDY0U2ludDY0RW50cnkSXwoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJC"
,
"LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcy5N"
,
"YXBGaXhlZDMyRml4ZWQzMkVudHJ5El8KE21hcF9maXhlZDY0X2ZpeGVkNjQY"
,
"PyADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxs"
,
"VHlwZXMuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJjChVtYXBfc2ZpeGVkMzJf"
,
"c2ZpeGVkMzIYQCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3Rv"
,
"My5UZXN0QWxsVHlwZXMuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmMKFW1h"
,
"cF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVz"
,
"c2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcy5NYXBTZml4ZWQ2NFNmaXhlZDY0"
,
"RW50cnkSVwoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMj4ucHJvdG9idWZfdGVz"
,
"dF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk1hcEludDMyRmxvYXRF"
,
"bnRyeRJZChBtYXBfaW50MzJfZG91YmxlGEMgAygLMj8ucHJvdG9idWZfdGVz"
,
"dF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk1hcEludDMyRG91Ymxl"
,
"RW50cnkSUwoNbWFwX2Jvb2xfYm9vbBhEIAMoCzI8LnByb3RvYnVmX3Rlc3Rf"
,
"bWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcy5NYXBCb29sQm9vbEVudHJ5"
,
"ElsKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkAucHJvdG9idWZfdGVzdF9t"
,
"ZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk1hcFN0cmluZ1N0cmluZ0Vu"
,
"dHJ5ElkKEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyPy5wcm90b2J1Zl90ZXN0"
,
"X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwU3RyaW5nQnl0ZXNF"
,
"bnRyeRJqChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMkcucHJv"
,
"dG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk1hcFN0"
,
"cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRJsChptYXBfc3RyaW5nX2ZvcmVpZ25f"
,
"bWVzc2FnZRhIIAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8z"
,
"LlRlc3RBbGxUeXBlcy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EmQK"
,
"Fm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsyRC5wcm90b2J1Zl90ZXN0"
,
"X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTWFwU3RyaW5nTmVzdGVk"
,
"RW51bUVudHJ5EmYKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMkUu"
,
"cHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzLk1h"
,
"cFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25lb2ZfdWludDMyGG8gASgN"
,
"SAASWQoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyOS5wcm90b2J1Zl90"
,
"ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2Fn"
,
"ZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEoCUgAEhUKC29uZW9mX2J5dGVzGHIg"
,
"ASgMSAASFAoKb25lb2ZfYm9vbBhzIAEoCEgAEhYKDG9uZW9mX3VpbnQ2NBh0"
,
"IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUgASgCSAASFgoMb25lb2ZfZG91Ymxl"
,
"GHYgASgBSAASTAoKb25lb2ZfZW51bRh3IAEoDjI2LnByb3RvYnVmX3Rlc3Rf"
,
"bWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtSAASOgoV"
,
"b3B0aW9uYWxfYm9vbF93cmFwcGVyGMkBIAEoCzIaLmdvb2dsZS5wcm90b2J1"
,
"Zi5Cb29sVmFsdWUSPAoWb3B0aW9uYWxfaW50MzJfd3JhcHBlchjKASABKAsy"
,
"Gy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI8ChZvcHRpb25hbF9pbnQ2"
,
"NF93cmFwcGVyGMsBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVl"
,
"Ej4KF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5w"
,
"cm90b2J1Zi5VSW50MzJWYWx1ZRI+ChdvcHRpb25hbF91aW50NjRfd3JhcHBl"
,
"chjNASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSPAoWb3B0"
,
"aW9uYWxfZmxvYXRfd3JhcHBlchjOASABKAsyGy5nb29nbGUucHJvdG9idWYu"
,
"RmxvYXRWYWx1ZRI+ChdvcHRpb25hbF9kb3VibGVfd3JhcHBlchjPASABKAsy"
,
"HC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSPgoXb3B0aW9uYWxfc3Ry"
,
"aW5nX3dyYXBwZXIY0AEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh"
,
"bHVlEjwKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xl"
,
"LnByb3RvYnVmLkJ5dGVzVmFsdWUSOgoVcmVwZWF0ZWRfYm9vbF93cmFwcGVy"
,
"GNMBIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSPAoWcmVwZWF0"
,
"ZWRfaW50MzJfd3JhcHBlchjUASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50"
,
"MzJWYWx1ZRI8ChZyZXBlYXRlZF9pbnQ2NF93cmFwcGVyGNUBIAMoCzIbLmdv"
,
"b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEj4KF3JlcGVhdGVkX3VpbnQzMl93"
,
"cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZRI+"
,
"ChdyZXBlYXRlZF91aW50NjRfd3JhcHBlchjXASADKAsyHC5nb29nbGUucHJv"
,
"dG9idWYuVUludDY0VmFsdWUSPAoWcmVwZWF0ZWRfZmxvYXRfd3JhcHBlchjY"
,
"ASADKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZRI+ChdyZXBlYXRl"
,
"ZF9kb3VibGVfd3JhcHBlchjZASADKAsyHC5nb29nbGUucHJvdG9idWYuRG91"
,
"YmxlVmFsdWUSPgoXcmVwZWF0ZWRfc3RyaW5nX3dyYXBwZXIY2gEgAygLMhwu"
,
"Z29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjwKFnJlcGVhdGVkX2J5dGVz"
,
"X3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWUS"
,
"NQoRb3B0aW9uYWxfZHVyYXRpb24YrQIgASgLMhkuZ29vZ2xlLnByb3RvYnVm"
,
"LkR1cmF0aW9uEjcKEm9wdGlvbmFsX3RpbWVzdGFtcBiuAiABKAsyGi5nb29n"
,
"bGUucHJvdG9idWYuVGltZXN0YW1wEjgKE29wdGlvbmFsX2ZpZWxkX21hc2sY"
,
"rwIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzaxIxCg9vcHRpb25h"
,
"bF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIrCgxv"
,
"cHRpb25hbF9hbnkYsQIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueRIvCg5v"
,
"cHRpb25hbF92YWx1ZRiyAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUS"
,
"NQoRcmVwZWF0ZWRfZHVyYXRpb24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVm"
,
"LkR1cmF0aW9uEjcKEnJlcGVhdGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29n"
,
"bGUucHJvdG9idWYuVGltZXN0YW1wEjcKEnJlcGVhdGVkX2ZpZWxkbWFzaxi5"
,
"AiADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrEjEKD3JlcGVhdGVk"
,
"X3N0cnVjdBjEAiADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EisKDHJl"
,
"cGVhdGVkX2FueRi7AiADKAsyFC5nb29nbGUucHJvdG9idWYuQW55Ei8KDnJl"
,
"cGVhdGVkX3ZhbHVlGLwCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIT"
,
"CgpmaWVsZG5hbWUxGJEDIAEoBRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoM"
,
"X2ZpZWxkX25hbWUzGJMDIAEoBRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIU"
,
"CgtmaWVsZDBuYW1lNRiVAyABKAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUS"
,
"EwoKZmllbGROYW1lNxiXAyABKAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoL"
,
"ZmllbGRfTmFtZTkYmQMgASgFEhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoM"
,
"RklFTERfTkFNRTExGJsDIAEoBRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcK"
,
"Dl9fZmllbGRfbmFtZTEzGJ0DIAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyAB"
,
"KAUSFgoNZmllbGRfX25hbWUxNRifAyABKAUSFgoNZmllbGRfX05hbWUxNhig"
,
"AyABKAUSFwoOZmllbGRfbmFtZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUx"
,
"OF9fGKIDIAEoBRpcCg1OZXN0ZWRNZXNzYWdlEgkKAWEYASABKAUSQAoLY29y"
,
"ZWN1cnNpdmUYAiABKAsyKy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3Rv"
,
"My5UZXN0QWxsVHlwZXMaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgB"
,
"IAEoBRINCgV2YWx1ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5"
,
"EgsKA2tleRgBIAEoAxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMy"
,
"VWludDMyRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2"
,
"ChRNYXBVaW50NjRVaW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUY"
,
"AiABKAQ6AjgBGjYKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEo"
,
"ERINCgV2YWx1ZRgCIAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkS"
,
"CwoDa2V5GAEgASgSEg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMy"
,
"Rml4ZWQzMkVudHJ5EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEa"
,
"OAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFs"
,
"dWUYAiABKAY6AjgBGjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNr"
,
"ZXkYASABKA8SDQoFdmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2Zp"
,
"eGVkNjRFbnRyeRILCgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQK"
,
"Ek1hcEludDMyRmxvYXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiAB"
,
"KAI6AjgBGjUKE01hcEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0K"
,
"BXZhbHVlGAIgASgBOgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgB"
,
"IAEoCBINCgV2YWx1ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50"
,
"cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJp"
,
"bmdCeXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEa"
,
"eAobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJI"
,
"CgV2YWx1ZRgCIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8z"
,
"LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlOgI4ARptChxNYXBTdHJpbmdG"
,
"b3JlaWduTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEo"
,
"CzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNz"
,
"YWdlOgI4ARpyChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSCwoDa2V5GAEg"
,
"ASgJEkUKBXZhbHVlGAIgASgOMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5w"
,
"cm90bzMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06AjgBGmcKGU1hcFN0cmlu"
,
"LnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8irDsKElRl"
,
"c3RBbGxUeXBlc1Byb3RvMxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5v"
,
"cHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0S"
,
"FwoPb3B0aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgF"
,
"IAEoERIXCg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4"
,
"ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlv"
,
"bmFsX3NmaXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQ"
,
"EhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgM"
,
"IAEoARIVCg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmlu"
,
"ZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJgChdvcHRpb25hbF9u"
,
"ZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMu"
,
"cHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlEk8KGG9w"
,
"dGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzItLnByb3RvYnVmX3Rlc3Rf"
,
"bWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlEloKFG9wdGlvbmFsX25l"
,
"c3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90"
,
"bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW0SSQoVb3B0aW9uYWxf"
,
"Zm9yZWlnbl9lbnVtGBYgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5w"
,
"cm90bzMuRm9yZWlnbkVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBgg"
,
"ASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJMChFyZWN1cnNp"
,
"dmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJv"
,
"dG8zLlRlc3RBbGxUeXBlc1Byb3RvMxIWCg5yZXBlYXRlZF9pbnQzMhgfIAMo"
,
"BRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMoAxIXCg9yZXBlYXRlZF91aW50MzIY"
,
"ISADKA0SFwoPcmVwZWF0ZWRfdWludDY0GCIgAygEEhcKD3JlcGVhdGVkX3Np"
,
"bnQzMhgjIAMoERIXCg9yZXBlYXRlZF9zaW50NjQYJCADKBISGAoQcmVwZWF0"
,
"ZWRfZml4ZWQzMhglIAMoBxIYChByZXBlYXRlZF9maXhlZDY0GCYgAygGEhkK"
,
"EXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPEhkKEXJlcGVhdGVkX3NmaXhlZDY0"
,
"GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0GCkgAygCEhcKD3JlcGVhdGVkX2Rv"
,
"dWJsZRgqIAMoARIVCg1yZXBlYXRlZF9ib29sGCsgAygIEhcKD3JlcGVhdGVk"
,
"X3N0cmluZxgsIAMoCRIWCg5yZXBlYXRlZF9ieXRlcxgtIAMoDBJgChdyZXBl"
,
"YXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVz"
,
"c2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdl"
,
"Ek8KGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVm"
,
"X3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlEloKFHJlcGVh"
,
"dGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdl"
,
"cy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW0SSQoVcmVw"
,
"ZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMioucHJvdG9idWZfdGVzdF9tZXNz"
,
"YWdlcy5wcm90bzMuRm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3Bp"
,
"ZWNlGDYgAygJQgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJdCg9t"
,
"YXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2Vz"
,
"LnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJJbnQzMkVudHJ5"
,
"El0KD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVz"
,
"c2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQ2NEludDY0"
,
"RW50cnkSYQoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90"
,
"ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWlu"
,
"dDMyVWludDMyRW50cnkSYQoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5w"
,
"cm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90"
,
"bzMuTWFwVWludDY0VWludDY0RW50cnkSYQoRbWFwX3NpbnQzMl9zaW50MzIY"
,
"PCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxs"
,
"VHlwZXNQcm90bzMuTWFwU2ludDMyU2ludDMyRW50cnkSYQoRbWFwX3NpbnQ2"
,
"NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3Rv"
,
"My5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDY0U2ludDY0RW50cnkSZQoT"
,
"bWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVz"
,
"c2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4"
,
"ZWQzMkVudHJ5EmUKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90"
,
"b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMu"
,
"TWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRJpChVtYXBfc2ZpeGVkMzJfc2ZpeGVk"
,
"MzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0"
,
"QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EmkKFW1h"
,
"cF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVz"
,
"c2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQ2NFNm"
,
"aXhlZDY0RW50cnkSXQoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9i"
,
"dWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1h"
,
"cEludDMyRmxvYXRFbnRyeRJfChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUu"
,
"cHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJv"
,
"dG8zLk1hcEludDMyRG91YmxlRW50cnkSWQoNbWFwX2Jvb2xfYm9vbBhEIAMo"
,
"CzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBl"
,
"c1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5EmEKEW1hcF9zdHJpbmdfc3RyaW5n"
,
"GEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFs"
,
"bFR5cGVzUHJvdG8zLk1hcFN0cmluZ1N0cmluZ0VudHJ5El8KEG1hcF9zdHJp"
,
"bmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3Rv"
,
"My5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeRJwChlt"
,
"YXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVz"
,
"dF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmlu"
,
"Z05lc3RlZE1lc3NhZ2VFbnRyeRJyChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVz"
,
"c2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRl"
,
"c3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5"
,
"EmoKFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90"
,
"ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3Ry"
,
"aW5nTmVzdGVkRW51bUVudHJ5EmwKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVt"
,
"GEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFs"
,
"bFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSFgoMb25l"
,
"b2ZfdWludDMyGG8gASgNSAASXwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCAB"
,
"KAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlw"
,
"ZXNQcm90bzMuTmVzdGVkTWVzc2FnZUgAEhYKDG9uZW9mX3N0cmluZxhxIAEo"
,
"CUgAEhUKC29uZW9mX2J5dGVzGHIgASgMSAASFAoKb25lb2ZfYm9vbBhzIAEo"
,
"CEgAEhYKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAEhUKC29uZW9mX2Zsb2F0GHUg"
,
"ASgCSAASFgoMb25lb2ZfZG91YmxlGHYgASgBSAASUgoKb25lb2ZfZW51bRh3"
,
"IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxU"
,
"eXBlc1Byb3RvMy5OZXN0ZWRFbnVtSAASOgoVb3B0aW9uYWxfYm9vbF93cmFw"
,
"cGVyGMkBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSPAoWb3B0"
,
"aW9uYWxfaW50MzJfd3JhcHBlchjKASABKAsyGy5nb29nbGUucHJvdG9idWYu"
,
"SW50MzJWYWx1ZRI8ChZvcHRpb25hbF9pbnQ2NF93cmFwcGVyGMsBIAEoCzIb"
,
"Lmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEj4KF29wdGlvbmFsX3VpbnQz"
,
"Ml93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1"
,
"ZRI+ChdvcHRpb25hbF91aW50NjRfd3JhcHBlchjNASABKAsyHC5nb29nbGUu"
,
"cHJvdG9idWYuVUludDY0VmFsdWUSPAoWb3B0aW9uYWxfZmxvYXRfd3JhcHBl"
,
"chjOASABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZRI+ChdvcHRp"
,
"b25hbF9kb3VibGVfd3JhcHBlchjPASABKAsyHC5nb29nbGUucHJvdG9idWYu"
,
"RG91YmxlVmFsdWUSPgoXb3B0aW9uYWxfc3RyaW5nX3dyYXBwZXIY0AEgASgL"
,
"MhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjwKFm9wdGlvbmFsX2J5"
,
"dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFs"
,
"dWUSOgoVcmVwZWF0ZWRfYm9vbF93cmFwcGVyGNMBIAMoCzIaLmdvb2dsZS5w"
,
"cm90b2J1Zi5Cb29sVmFsdWUSPAoWcmVwZWF0ZWRfaW50MzJfd3JhcHBlchjU"
,
"ASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI8ChZyZXBlYXRl"
,
"ZF9pbnQ2NF93cmFwcGVyGNUBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2"
,
"NFZhbHVlEj4KF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdv"
,
"b2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZRI+ChdyZXBlYXRlZF91aW50NjRf"
,
"d3JhcHBlchjXASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUS"
,
"PAoWcmVwZWF0ZWRfZmxvYXRfd3JhcHBlchjYASADKAsyGy5nb29nbGUucHJv"
,
"dG9idWYuRmxvYXRWYWx1ZRI+ChdyZXBlYXRlZF9kb3VibGVfd3JhcHBlchjZ"
,
"ASADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSPgoXcmVwZWF0"
,
"ZWRfc3RyaW5nX3dyYXBwZXIY2gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0"
,
"cmluZ1ZhbHVlEjwKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsu"
,
"Z29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWUSNQoRb3B0aW9uYWxfZHVyYXRp"
,
"b24YrQIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjcKEm9wdGlv"
,
"bmFsX3RpbWVzdGFtcBiuAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0"
,
"YW1wEjgKE29wdGlvbmFsX2ZpZWxkX21hc2sYrwIgASgLMhouZ29vZ2xlLnBy"
,
"b3RvYnVmLkZpZWxkTWFzaxIxCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcu"
,
"Z29vZ2xlLnByb3RvYnVmLlN0cnVjdBIrCgxvcHRpb25hbF9hbnkYsQIgASgL"
,
"MhQuZ29vZ2xlLnByb3RvYnVmLkFueRIvCg5vcHRpb25hbF92YWx1ZRiyAiAB"
,
"KAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSNQoRcmVwZWF0ZWRfZHVyYXRp"
,
"b24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjcKEnJlcGVh"
,
"dGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0"
,
"YW1wEjcKEnJlcGVhdGVkX2ZpZWxkbWFzaxi5AiADKAsyGi5nb29nbGUucHJv"
,
"dG9idWYuRmllbGRNYXNrEjEKD3JlcGVhdGVkX3N0cnVjdBjEAiADKAsyFy5n"
,
"b29nbGUucHJvdG9idWYuU3RydWN0EisKDHJlcGVhdGVkX2FueRi7AiADKAsy"
,
"FC5nb29nbGUucHJvdG9idWYuQW55Ei8KDnJlcGVhdGVkX3ZhbHVlGLwCIAMo"
,
"CzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRITCgpmaWVsZG5hbWUxGJEDIAEo"
,
"BRIUCgtmaWVsZF9uYW1lMhiSAyABKAUSFQoMX2ZpZWxkX25hbWUzGJMDIAEo"
,
"BRIWCg1maWVsZF9fbmFtZTRfGJQDIAEoBRIUCgtmaWVsZDBuYW1lNRiVAyAB"
,
"KAUSFgoNZmllbGRfMF9uYW1lNhiWAyABKAUSEwoKZmllbGROYW1lNxiXAyAB"
,
"KAUSEwoKRmllbGROYW1lOBiYAyABKAUSFAoLZmllbGRfTmFtZTkYmQMgASgF"
,
"EhUKDEZpZWxkX05hbWUxMBiaAyABKAUSFQoMRklFTERfTkFNRTExGJsDIAEo"
,
"BRIVCgxGSUVMRF9uYW1lMTIYnAMgASgFEhcKDl9fZmllbGRfbmFtZTEzGJ0D"
,
"IAEoBRIXCg5fX0ZpZWxkX25hbWUxNBieAyABKAUSFgoNZmllbGRfX25hbWUx"
,
"NRifAyABKAUSFgoNZmllbGRfX05hbWUxNhigAyABKAUSFwoOZmllbGRfbmFt"
,
"ZTE3X18YoQMgASgFEhcKDkZpZWxkX25hbWUxOF9fGKIDIAEoBRpiCg1OZXN0"
,
"ZWRNZXNzYWdlEgkKAWEYASABKAUSRgoLY29yZWN1cnNpdmUYAiABKAsyMS5w"
,
"cm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90"
,
"bzMaNAoSTWFwSW50MzJJbnQzMkVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1"
,
"ZRgCIAEoBToCOAEaNAoSTWFwSW50NjRJbnQ2NEVudHJ5EgsKA2tleRgBIAEo"
,
"AxINCgV2YWx1ZRgCIAEoAzoCOAEaNgoUTWFwVWludDMyVWludDMyRW50cnkS"
,
"CwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRNYXBVaW50NjRV"
,
"aW50NjRFbnRyeRILCgNrZXkYASABKAQSDQoFdmFsdWUYAiABKAQ6AjgBGjYK"
,
"FE1hcFNpbnQzMlNpbnQzMkVudHJ5EgsKA2tleRgBIAEoERINCgV2YWx1ZRgC"
,
"IAEoEToCOAEaNgoUTWFwU2ludDY0U2ludDY0RW50cnkSCwoDa2V5GAEgASgS"
,
"Eg0KBXZhbHVlGAIgASgSOgI4ARo4ChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5"
,
"EgsKA2tleRgBIAEoBxINCgV2YWx1ZRgCIAEoBzoCOAEaOAoWTWFwRml4ZWQ2"
,
"NEZpeGVkNjRFbnRyeRILCgNrZXkYASABKAYSDQoFdmFsdWUYAiABKAY6AjgB"
,
"GjoKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRILCgNrZXkYASABKA8SDQoF"
,
"dmFsdWUYAiABKA86AjgBGjoKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIL"
,
"CgNrZXkYASABKBASDQoFdmFsdWUYAiABKBA6AjgBGjQKEk1hcEludDMyRmxv"
,
"YXRFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAI6AjgBGjUKE01h"
,
"cEludDMyRG91YmxlRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgB"
,
"OgI4ARoyChBNYXBCb29sQm9vbEVudHJ5EgsKA2tleRgBIAEoCBINCgV2YWx1"
,
"ZRgCIAEoCDoCOAEaNgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSCwoDa2V5GAEg"
,
"ASgJEg0KBXZhbHVlGAIgASgJOgI4ARo1ChNNYXBTdHJpbmdCeXRlc0VudHJ5"
,
"EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEafgobTWFwU3RyaW5n"
,
"TmVzdGVkTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRJOCgV2YWx1ZRgCIAEo"
,
"CzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBl"
,
"c1Byb3RvMy5OZXN0ZWRNZXNzYWdlOgI4ARptChxNYXBTdHJpbmdGb3JlaWdu"
,
"TWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLnBy"
,
"b3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlOgI4"
,
"ARp4ChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSCwoDa2V5GAEgASgJEksK"
,
"BXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMu"
,
"VGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW06AjgBGmcKGU1hcFN0cmlu"
,
"Z0ZvcmVpZ25FbnVtRW50cnkSCwoDa2V5GAEgASgJEjkKBXZhbHVlGAIgASgO"
,
"MioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW06"
,
"AjgBIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAIS"
,
...
...
@@ -200,7 +204,7 @@ namespace ProtobufTestMessages.Proto3 {
descriptor
=
pbr
::
FileDescriptor
.
FromGeneratedCode
(
descriptorData
,
new
pbr
::
FileDescriptor
[]
{
global
::
Google
.
Protobuf
.
WellKnownTypes
.
AnyReflection
.
Descriptor
,
global
::
Google
.
Protobuf
.
WellKnownTypes
.
DurationReflection
.
Descriptor
,
global
::
Google
.
Protobuf
.
WellKnownTypes
.
FieldMaskReflection
.
Descriptor
,
global
::
Google
.
Protobuf
.
WellKnownTypes
.
StructReflection
.
Descriptor
,
global
::
Google
.
Protobuf
.
WellKnownTypes
.
TimestampReflection
.
Descriptor
,
global
::
Google
.
Protobuf
.
WellKnownTypes
.
WrappersReflection
.
Descriptor
,
},
new
pbr
::
GeneratedClrTypeInfo
(
new
[]
{
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
ForeignEnum
),
},
new
pbr
::
GeneratedClrTypeInfo
[]
{
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
),
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Parser
,
new
[]{
"OptionalInt32"
,
"OptionalInt64"
,
"OptionalUint32"
,
"OptionalUint64"
,
"OptionalSint32"
,
"OptionalSint64"
,
"OptionalFixed32"
,
"OptionalFixed64"
,
"OptionalSfixed32"
,
"OptionalSfixed64"
,
"OptionalFloat"
,
"OptionalDouble"
,
"OptionalBool"
,
"OptionalString"
,
"OptionalBytes"
,
"OptionalNestedMessage"
,
"OptionalForeignMessage"
,
"OptionalNestedEnum"
,
"OptionalForeignEnum"
,
"OptionalStringPiece"
,
"OptionalCord"
,
"RecursiveMessage"
,
"RepeatedInt32"
,
"RepeatedInt64"
,
"RepeatedUint32"
,
"RepeatedUint64"
,
"RepeatedSint32"
,
"RepeatedSint64"
,
"RepeatedFixed32"
,
"RepeatedFixed64"
,
"RepeatedSfixed32"
,
"RepeatedSfixed64"
,
"RepeatedFloat"
,
"RepeatedDouble"
,
"RepeatedBool"
,
"RepeatedString"
,
"RepeatedBytes"
,
"RepeatedNestedMessage"
,
"RepeatedForeignMessage"
,
"RepeatedNestedEnum"
,
"RepeatedForeignEnum"
,
"RepeatedStringPiece"
,
"RepeatedCord"
,
"MapInt32Int32"
,
"MapInt64Int64"
,
"MapUint32Uint32"
,
"MapUint64Uint64"
,
"MapSint32Sint32"
,
"MapSint64Sint64"
,
"MapFixed32Fixed32"
,
"MapFixed64Fixed64"
,
"MapSfixed32Sfixed32"
,
"MapSfixed64Sfixed64"
,
"MapInt32Float"
,
"MapInt32Double"
,
"MapBoolBool"
,
"MapStringString"
,
"MapStringBytes"
,
"MapStringNestedMessage"
,
"MapStringForeignMessage"
,
"MapStringNestedEnum"
,
"MapStringForeignEnum"
,
"OneofUint32"
,
"OneofNestedMessage"
,
"OneofString"
,
"OneofBytes"
,
"OneofBool"
,
"OneofUint64"
,
"OneofFloat"
,
"OneofDouble"
,
"OneofEnum"
,
"OptionalBoolWrapper"
,
"OptionalInt32Wrapper"
,
"OptionalInt64Wrapper"
,
"OptionalUint32Wrapper"
,
"OptionalUint64Wrapper"
,
"OptionalFloatWrapper"
,
"OptionalDoubleWrapper"
,
"OptionalStringWrapper"
,
"OptionalBytesWrapper"
,
"RepeatedBoolWrapper"
,
"RepeatedInt32Wrapper"
,
"RepeatedInt64Wrapper"
,
"RepeatedUint32Wrapper"
,
"RepeatedUint64Wrapper"
,
"RepeatedFloatWrapper"
,
"RepeatedDoubleWrapper"
,
"RepeatedStringWrapper"
,
"RepeatedBytesWrapper"
,
"OptionalDuration"
,
"OptionalTimestamp"
,
"OptionalFieldMask"
,
"OptionalStruct"
,
"OptionalAny"
,
"OptionalValue"
,
"RepeatedDuration"
,
"RepeatedTimestamp"
,
"RepeatedFieldmask"
,
"RepeatedStruct"
,
"RepeatedAny"
,
"RepeatedValue"
,
"Fieldname1"
,
"FieldName2"
,
"FieldName3"
,
"FieldName4"
,
"Field0Name5"
,
"Field0Name6"
,
"FieldName7"
,
"FieldName8"
,
"FieldName9"
,
"FieldName10"
,
"FIELDNAME11"
,
"FIELDName12"
,
"FieldName13"
,
"FieldName14"
,
"FieldName15"
,
"FieldName16"
,
"FieldName17"
,
"FieldName18"
},
new
[]{
"OneofField"
},
new
[]{
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
)
},
new
pbr
::
GeneratedClrTypeInfo
[]
{
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
),
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
.
Parser
,
new
[]{
"A"
,
"Corecursive"
},
null
,
null
,
null
),
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
),
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Parser
,
new
[]{
"OptionalInt32"
,
"OptionalInt64"
,
"OptionalUint32"
,
"OptionalUint64"
,
"OptionalSint32"
,
"OptionalSint64"
,
"OptionalFixed32"
,
"OptionalFixed64"
,
"OptionalSfixed32"
,
"OptionalSfixed64"
,
"OptionalFloat"
,
"OptionalDouble"
,
"OptionalBool"
,
"OptionalString"
,
"OptionalBytes"
,
"OptionalNestedMessage"
,
"OptionalForeignMessage"
,
"OptionalNestedEnum"
,
"OptionalForeignEnum"
,
"OptionalStringPiece"
,
"OptionalCord"
,
"RecursiveMessage"
,
"RepeatedInt32"
,
"RepeatedInt64"
,
"RepeatedUint32"
,
"RepeatedUint64"
,
"RepeatedSint32"
,
"RepeatedSint64"
,
"RepeatedFixed32"
,
"RepeatedFixed64"
,
"RepeatedSfixed32"
,
"RepeatedSfixed64"
,
"RepeatedFloat"
,
"RepeatedDouble"
,
"RepeatedBool"
,
"RepeatedString"
,
"RepeatedBytes"
,
"RepeatedNestedMessage"
,
"RepeatedForeignMessage"
,
"RepeatedNestedEnum"
,
"RepeatedForeignEnum"
,
"RepeatedStringPiece"
,
"RepeatedCord"
,
"MapInt32Int32"
,
"MapInt64Int64"
,
"MapUint32Uint32"
,
"MapUint64Uint64"
,
"MapSint32Sint32"
,
"MapSint64Sint64"
,
"MapFixed32Fixed32"
,
"MapFixed64Fixed64"
,
"MapSfixed32Sfixed32"
,
"MapSfixed64Sfixed64"
,
"MapInt32Float"
,
"MapInt32Double"
,
"MapBoolBool"
,
"MapStringString"
,
"MapStringBytes"
,
"MapStringNestedMessage"
,
"MapStringForeignMessage"
,
"MapStringNestedEnum"
,
"MapStringForeignEnum"
,
"OneofUint32"
,
"OneofNestedMessage"
,
"OneofString"
,
"OneofBytes"
,
"OneofBool"
,
"OneofUint64"
,
"OneofFloat"
,
"OneofDouble"
,
"OneofEnum"
,
"OptionalBoolWrapper"
,
"OptionalInt32Wrapper"
,
"OptionalInt64Wrapper"
,
"OptionalUint32Wrapper"
,
"OptionalUint64Wrapper"
,
"OptionalFloatWrapper"
,
"OptionalDoubleWrapper"
,
"OptionalStringWrapper"
,
"OptionalBytesWrapper"
,
"RepeatedBoolWrapper"
,
"RepeatedInt32Wrapper"
,
"RepeatedInt64Wrapper"
,
"RepeatedUint32Wrapper"
,
"RepeatedUint64Wrapper"
,
"RepeatedFloatWrapper"
,
"RepeatedDoubleWrapper"
,
"RepeatedStringWrapper"
,
"RepeatedBytesWrapper"
,
"OptionalDuration"
,
"OptionalTimestamp"
,
"OptionalFieldMask"
,
"OptionalStruct"
,
"OptionalAny"
,
"OptionalValue"
,
"RepeatedDuration"
,
"RepeatedTimestamp"
,
"RepeatedFieldmask"
,
"RepeatedStruct"
,
"RepeatedAny"
,
"RepeatedValue"
,
"Fieldname1"
,
"FieldName2"
,
"FieldName3"
,
"FieldName4"
,
"Field0Name5"
,
"Field0Name6"
,
"FieldName7"
,
"FieldName8"
,
"FieldName9"
,
"FieldName10"
,
"FIELDNAME11"
,
"FIELDName12"
,
"FieldName13"
,
"FieldName14"
,
"FieldName15"
,
"FieldName16"
,
"FieldName17"
,
"FieldName18"
},
new
[]{
"OneofField"
},
new
[]{
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedEnum
)
},
new
pbr
::
GeneratedClrTypeInfo
[]
{
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
),
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
.
Parser
,
new
[]{
"A"
,
"Corecursive"
},
null
,
null
,
null
),
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
}),
new
pbr
::
GeneratedClrTypeInfo
(
typeof
(
global
::
ProtobufTestMessages
.
Proto3
.
ForeignMessage
),
global
::
ProtobufTestMessages
.
Proto3
.
ForeignMessage
.
Parser
,
new
[]{
"C"
},
null
,
null
,
null
)
}));
...
...
@@ -227,10 +231,10 @@ namespace ProtobufTestMessages.Proto3 {
/// could trigger bugs that occur in any message type in this file. We verify
/// this stays true in a unit test.
/// </summary>
public
sealed
partial
class
TestAllTypes
:
pb
::
IMessage
<
TestAllTypes
>
{
private
static
readonly
pb
::
MessageParser
<
TestAllTypes
>
_parser
=
new
pb
::
MessageParser
<
TestAllTypes
>(()
=>
new
TestAllTypes
());
public
sealed
partial
class
TestAllTypes
Proto3
:
pb
::
IMessage
<
TestAllTypesProto3
>
{
private
static
readonly
pb
::
MessageParser
<
TestAllTypes
Proto3
>
_parser
=
new
pb
::
MessageParser
<
TestAllTypesProto3
>(()
=>
new
TestAllTypesProto3
());
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
static
pb
::
MessageParser
<
TestAllTypes
>
Parser
{
get
{
return
_parser
;
}
}
public
static
pb
::
MessageParser
<
TestAllTypes
Proto3
>
Parser
{
get
{
return
_parser
;
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
static
pbr
::
MessageDescriptor
Descriptor
{
...
...
@@ -243,14 +247,14 @@ namespace ProtobufTestMessages.Proto3 {
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
TestAllTypes
()
{
public
TestAllTypes
Proto3
()
{
OnConstruction
();
}
partial
void
OnConstruction
();
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
TestAllTypes
(
TestAllTypes
other
)
:
this
()
{
public
TestAllTypes
Proto3
(
TestAllTypesProto3
other
)
:
this
()
{
optionalInt32_
=
other
.
optionalInt32_
;
optionalInt64_
=
other
.
optionalInt64_
;
optionalUint32_
=
other
.
optionalUint32_
;
...
...
@@ -394,8 +398,8 @@ namespace ProtobufTestMessages.Proto3 {
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
TestAllTypes
Clone
()
{
return
new
TestAllTypes
(
this
);
public
TestAllTypes
Proto3
Clone
()
{
return
new
TestAllTypes
Proto3
(
this
);
}
/// <summary>Field number for the "optional_int32" field.</summary>
...
...
@@ -568,9 +572,9 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "optional_nested_message" field.</summary>
public
const
int
OptionalNestedMessageFieldNumber
=
18
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
optionalNestedMessage_
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
optionalNestedMessage_
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
OptionalNestedMessage
{
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
OptionalNestedMessage
{
get
{
return
optionalNestedMessage_
;
}
set
{
optionalNestedMessage_
=
value
;
...
...
@@ -590,9 +594,9 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "optional_nested_enum" field.</summary>
public
const
int
OptionalNestedEnumFieldNumber
=
21
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
optionalNestedEnum_
=
0
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
optionalNestedEnum_
=
0
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
OptionalNestedEnum
{
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
OptionalNestedEnum
{
get
{
return
optionalNestedEnum_
;
}
set
{
optionalNestedEnum_
=
value
;
...
...
@@ -634,9 +638,9 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "recursive_message" field.</summary>
public
const
int
RecursiveMessageFieldNumber
=
27
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
recursiveMessage_
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
recursiveMessage_
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
RecursiveMessage
{
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
RecursiveMessage
{
get
{
return
recursiveMessage_
;
}
set
{
recursiveMessage_
=
value
;
...
...
@@ -798,11 +802,11 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "repeated_nested_message" field.</summary>
public
const
int
RepeatedNestedMessageFieldNumber
=
48
;
private
static
readonly
pb
::
FieldCodec
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>
_repeated_repeatedNestedMessage_codec
=
pb
::
FieldCodec
.
ForMessage
(
386
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
.
Parser
);
private
readonly
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>
repeatedNestedMessage_
=
new
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>();
private
static
readonly
pb
::
FieldCodec
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>
_repeated_repeatedNestedMessage_codec
=
pb
::
FieldCodec
.
ForMessage
(
386
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
.
Parser
);
private
readonly
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>
repeatedNestedMessage_
=
new
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
>();
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>
RepeatedNestedMessage
{
public
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>
RepeatedNestedMessage
{
get
{
return
repeatedNestedMessage_
;
}
}
...
...
@@ -818,11 +822,11 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "repeated_nested_enum" field.</summary>
public
const
int
RepeatedNestedEnumFieldNumber
=
51
;
private
static
readonly
pb
::
FieldCodec
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>
_repeated_repeatedNestedEnum_codec
=
pb
::
FieldCodec
.
ForEnum
(
410
,
x
=>
(
int
)
x
,
x
=>
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
)
x
);
private
readonly
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>
repeatedNestedEnum_
=
new
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>();
private
static
readonly
pb
::
FieldCodec
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>
_repeated_repeatedNestedEnum_codec
=
pb
::
FieldCodec
.
ForEnum
(
410
,
x
=>
(
int
)
x
,
x
=>
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
)
x
);
private
readonly
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>
repeatedNestedEnum_
=
new
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedEnum
>();
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>
RepeatedNestedEnum
{
public
pbc
::
RepeatedField
<
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>
RepeatedNestedEnum
{
get
{
return
repeatedNestedEnum_
;
}
}
...
...
@@ -1011,11 +1015,11 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "map_string_nested_message" field.</summary>
public
const
int
MapStringNestedMessageFieldNumber
=
71
;
private
static
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>.
Codec
_map_mapStringNestedMessage_codec
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>.
Codec
(
pb
::
FieldCodec
.
ForString
(
10
),
pb
::
FieldCodec
.
ForMessage
(
18
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
.
Parser
),
570
);
private
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>
mapStringNestedMessage_
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>();
private
static
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>.
Codec
_map_mapStringNestedMessage_codec
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>.
Codec
(
pb
::
FieldCodec
.
ForString
(
10
),
pb
::
FieldCodec
.
ForMessage
(
18
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
.
Parser
),
570
);
private
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>
mapStringNestedMessage_
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
>();
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
>
MapStringNestedMessage
{
public
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
>
MapStringNestedMessage
{
get
{
return
mapStringNestedMessage_
;
}
}
...
...
@@ -1031,11 +1035,11 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "map_string_nested_enum" field.</summary>
public
const
int
MapStringNestedEnumFieldNumber
=
73
;
private
static
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>.
Codec
_map_mapStringNestedEnum_codec
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>.
Codec
(
pb
::
FieldCodec
.
ForString
(
10
),
pb
::
FieldCodec
.
ForEnum
(
16
,
x
=>
(
int
)
x
,
x
=>
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
)
x
),
586
);
private
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>
mapStringNestedEnum_
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>();
private
static
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>.
Codec
_map_mapStringNestedEnum_codec
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>.
Codec
(
pb
::
FieldCodec
.
ForString
(
10
),
pb
::
FieldCodec
.
ForEnum
(
16
,
x
=>
(
int
)
x
,
x
=>
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedEnum
)
x
),
586
);
private
readonly
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>
mapStringNestedEnum_
=
new
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedEnum
>();
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
>
MapStringNestedEnum
{
public
pbc
::
MapField
<
string
,
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
>
MapStringNestedEnum
{
get
{
return
mapStringNestedEnum_
;
}
}
...
...
@@ -1063,8 +1067,8 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "oneof_nested_message" field.</summary>
public
const
int
OneofNestedMessageFieldNumber
=
112
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
OneofNestedMessage
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofNestedMessage
?
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
)
oneofField_
:
null
;
}
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
OneofNestedMessage
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofNestedMessage
?
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
)
oneofField_
:
null
;
}
set
{
oneofField_
=
value
;
oneofFieldCase_
=
value
==
null
?
OneofFieldOneofCase
.
None
:
OneofFieldOneofCase
.
OneofNestedMessage
;
...
...
@@ -1140,8 +1144,8 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "oneof_enum" field.</summary>
public
const
int
OneofEnumFieldNumber
=
119
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
OneofEnum
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofEnum
?
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
)
oneofField_
:
0
;
}
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
OneofEnum
{
get
{
return
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofEnum
?
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
)
oneofField_
:
0
;
}
set
{
oneofField_
=
value
;
oneofFieldCase_
=
OneofFieldOneofCase
.
OneofEnum
;
...
...
@@ -1705,11 +1709,11 @@ namespace ProtobufTestMessages.Proto3 {
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
override
bool
Equals
(
object
other
)
{
return
Equals
(
other
as
TestAllTypes
);
return
Equals
(
other
as
TestAllTypes
Proto3
);
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
bool
Equals
(
TestAllTypes
other
)
{
public
bool
Equals
(
TestAllTypes
Proto3
other
)
{
if
(
ReferenceEquals
(
other
,
null
))
{
return
false
;
}
...
...
@@ -2530,7 +2534,7 @@ namespace ProtobufTestMessages.Proto3 {
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
void
MergeFrom
(
TestAllTypes
other
)
{
public
void
MergeFrom
(
TestAllTypes
Proto3
other
)
{
if
(
other
==
null
)
{
return
;
}
...
...
@@ -2581,7 +2585,7 @@ namespace ProtobufTestMessages.Proto3 {
}
if
(
other
.
optionalNestedMessage_
!=
null
)
{
if
(
optionalNestedMessage_
==
null
)
{
optionalNestedMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
();
optionalNestedMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
();
}
OptionalNestedMessage
.
MergeFrom
(
other
.
OptionalNestedMessage
);
}
...
...
@@ -2605,7 +2609,7 @@ namespace ProtobufTestMessages.Proto3 {
}
if
(
other
.
recursiveMessage_
!=
null
)
{
if
(
recursiveMessage_
==
null
)
{
recursiveMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
();
recursiveMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
();
}
RecursiveMessage
.
MergeFrom
(
other
.
RecursiveMessage
);
}
...
...
@@ -2901,7 +2905,7 @@ namespace ProtobufTestMessages.Proto3 {
}
case
146
:
{
if
(
optionalNestedMessage_
==
null
)
{
optionalNestedMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
();
optionalNestedMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
();
}
input
.
ReadMessage
(
optionalNestedMessage_
);
break
;
...
...
@@ -2914,7 +2918,7 @@ namespace ProtobufTestMessages.Proto3 {
break
;
}
case
168
:
{
optionalNestedEnum_
=
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedEnum
)
input
.
ReadEnum
();
optionalNestedEnum_
=
(
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedEnum
)
input
.
ReadEnum
();
break
;
}
case
176
:
{
...
...
@@ -2931,7 +2935,7 @@ namespace ProtobufTestMessages.Proto3 {
}
case
218
:
{
if
(
recursiveMessage_
==
null
)
{
recursiveMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
();
recursiveMessage_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
();
}
input
.
ReadMessage
(
recursiveMessage_
);
break
;
...
...
@@ -3116,7 +3120,7 @@ namespace ProtobufTestMessages.Proto3 {
break
;
}
case
898
:
{
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
subBuilder
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Types
.
NestedMessage
();
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Types
.
NestedMessage
subBuilder
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypesProto3
.
Types
.
NestedMessage
();
if
(
oneofFieldCase_
==
OneofFieldOneofCase
.
OneofNestedMessage
)
{
subBuilder
.
MergeFrom
(
OneofNestedMessage
);
}
...
...
@@ -3395,7 +3399,7 @@ namespace ProtobufTestMessages.Proto3 {
}
#
region
Nested
types
/// <summary>Container for nested types declared in the TestAllTypes message type.</summary>
/// <summary>Container for nested types declared in the TestAllTypes
Proto3
message type.</summary>
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
static
partial
class
Types
{
public
enum
NestedEnum
{
...
...
@@ -3415,7 +3419,7 @@ namespace ProtobufTestMessages.Proto3 {
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
static
pbr
::
MessageDescriptor
Descriptor
{
get
{
return
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
.
Descriptor
.
NestedTypes
[
0
];
}
get
{
return
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
.
Descriptor
.
NestedTypes
[
0
];
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
...
...
@@ -3454,9 +3458,9 @@ namespace ProtobufTestMessages.Proto3 {
/// <summary>Field number for the "corecursive" field.</summary>
public
const
int
CorecursiveFieldNumber
=
2
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
corecursive_
;
private
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
corecursive_
;
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
]
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Corecursive
{
public
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
Corecursive
{
get
{
return
corecursive_
;
}
set
{
corecursive_
=
value
;
...
...
@@ -3528,7 +3532,7 @@ namespace ProtobufTestMessages.Proto3 {
}
if
(
other
.
corecursive_
!=
null
)
{
if
(
corecursive_
==
null
)
{
corecursive_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
();
corecursive_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
();
}
Corecursive
.
MergeFrom
(
other
.
Corecursive
);
}
...
...
@@ -3548,7 +3552,7 @@ namespace ProtobufTestMessages.Proto3 {
}
case
18
:
{
if
(
corecursive_
==
null
)
{
corecursive_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
();
corecursive_
=
new
global
::
ProtobufTestMessages
.
Proto3
.
TestAllTypes
Proto3
();
}
input
.
ReadMessage
(
corecursive_
);
break
;
...
...
python/setup.py
View file @
a713b730
...
...
@@ -80,6 +80,7 @@ def GenerateUnittestProtos():
generate_proto
(
"../src/google/protobuf/any_test.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/map_unittest.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/test_messages_proto3.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/test_messages_proto2.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/unittest_arena.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/unittest_no_arena.proto"
,
False
)
generate_proto
(
"../src/google/protobuf/unittest_no_arena_import.proto"
,
False
)
...
...
src/google/protobuf/test_messages_proto2.proto
0 → 100644
View file @
a713b730
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Test schema for proto2 messages. This test schema is used by:
//
// - conformance tests
//
syntax
=
"proto2"
;
package
protobuf_test_messages
.
proto2
;
option
java_package
=
"com.google.protobuf_test_messages.proto2"
;
// This is the default, but we specify it here explicitly.
option
optimize_for
=
SPEED
;
option
cc_enable_arenas
=
true
;
// This proto includes every type of field in both singular and repeated
// forms.
//
// Also, crucially, all messages and enums in this file are eventually
// submessages of this message. So for example, a fuzz test of TestAllTypes
// could trigger bugs that occur in any message type in this file. We verify
// this stays true in a unit test.
message
TestAllTypesProto2
{
message
NestedMessage
{
optional
int32
a
=
1
;
optional
TestAllTypesProto2
corecursive
=
2
;
}
enum
NestedEnum
{
FOO
=
0
;
BAR
=
1
;
BAZ
=
2
;
NEG
=
-
1
;
// Intentionally negative.
}
// Singular
optional
int32
optional_int32
=
1
;
optional
int64
optional_int64
=
2
;
optional
uint32
optional_uint32
=
3
;
optional
uint64
optional_uint64
=
4
;
optional
sint32
optional_sint32
=
5
;
optional
sint64
optional_sint64
=
6
;
optional
fixed32
optional_fixed32
=
7
;
optional
fixed64
optional_fixed64
=
8
;
optional
sfixed32
optional_sfixed32
=
9
;
optional
sfixed64
optional_sfixed64
=
10
;
optional
float
optional_float
=
11
;
optional
double
optional_double
=
12
;
optional
bool
optional_bool
=
13
;
optional
string
optional_string
=
14
;
optional
bytes
optional_bytes
=
15
;
optional
NestedMessage
optional_nested_message
=
18
;
optional
ForeignMessage
optional_foreign_message
=
19
;
optional
NestedEnum
optional_nested_enum
=
21
;
optional
ForeignEnum
optional_foreign_enum
=
22
;
optional
string
optional_string_piece
=
24
[
ctype
=
STRING_PIECE
];
optional
string
optional_cord
=
25
[
ctype
=
CORD
];
optional
TestAllTypesProto2
recursive_message
=
27
;
// Repeated
repeated
int32
repeated_int32
=
31
;
repeated
int64
repeated_int64
=
32
;
repeated
uint32
repeated_uint32
=
33
;
repeated
uint64
repeated_uint64
=
34
;
repeated
sint32
repeated_sint32
=
35
;
repeated
sint64
repeated_sint64
=
36
;
repeated
fixed32
repeated_fixed32
=
37
;
repeated
fixed64
repeated_fixed64
=
38
;
repeated
sfixed32
repeated_sfixed32
=
39
;
repeated
sfixed64
repeated_sfixed64
=
40
;
repeated
float
repeated_float
=
41
;
repeated
double
repeated_double
=
42
;
repeated
bool
repeated_bool
=
43
;
repeated
string
repeated_string
=
44
;
repeated
bytes
repeated_bytes
=
45
;
repeated
NestedMessage
repeated_nested_message
=
48
;
repeated
ForeignMessage
repeated_foreign_message
=
49
;
repeated
NestedEnum
repeated_nested_enum
=
51
;
repeated
ForeignEnum
repeated_foreign_enum
=
52
;
repeated
string
repeated_string_piece
=
54
[
ctype
=
STRING_PIECE
];
repeated
string
repeated_cord
=
55
[
ctype
=
CORD
];
// Map
map
<
int32
,
int32
>
map_int32_int32
=
56
;
map
<
int64
,
int64
>
map_int64_int64
=
57
;
map
<
uint32
,
uint32
>
map_uint32_uint32
=
58
;
map
<
uint64
,
uint64
>
map_uint64_uint64
=
59
;
map
<
sint32
,
sint32
>
map_sint32_sint32
=
60
;
map
<
sint64
,
sint64
>
map_sint64_sint64
=
61
;
map
<
fixed32
,
fixed32
>
map_fixed32_fixed32
=
62
;
map
<
fixed64
,
fixed64
>
map_fixed64_fixed64
=
63
;
map
<
sfixed32
,
sfixed32
>
map_sfixed32_sfixed32
=
64
;
map
<
sfixed64
,
sfixed64
>
map_sfixed64_sfixed64
=
65
;
map
<
int32
,
float
>
map_int32_float
=
66
;
map
<
int32
,
double
>
map_int32_double
=
67
;
map
<
bool
,
bool
>
map_bool_bool
=
68
;
map
<
string
,
string
>
map_string_string
=
69
;
map
<
string
,
bytes
>
map_string_bytes
=
70
;
map
<
string
,
NestedMessage
>
map_string_nested_message
=
71
;
map
<
string
,
ForeignMessage
>
map_string_foreign_message
=
72
;
map
<
string
,
NestedEnum
>
map_string_nested_enum
=
73
;
map
<
string
,
ForeignEnum
>
map_string_foreign_enum
=
74
;
oneof
oneof_field
{
uint32
oneof_uint32
=
111
;
NestedMessage
oneof_nested_message
=
112
;
string
oneof_string
=
113
;
bytes
oneof_bytes
=
114
;
bool
oneof_bool
=
115
;
uint64
oneof_uint64
=
116
;
float
oneof_float
=
117
;
double
oneof_double
=
118
;
NestedEnum
oneof_enum
=
119
;
}
// extensions
extensions
120
to
200
;
// groups
optional
group
Data
=
201
{
optional
int32
group_int32
=
202
;
optional
uint32
group_uint32
=
203
;
};
// Test field-name-to-JSON-name convention.
// (protobuf says names can be any valid C/C++ identifier.)
optional
int32
fieldname1
=
401
;
optional
int32
field_name2
=
402
;
optional
int32
_field_name3
=
403
;
optional
int32
field__name4_
=
404
;
optional
int32
field0name5
=
405
;
optional
int32
field_0_name6
=
406
;
optional
int32
fieldName7
=
407
;
optional
int32
FieldName8
=
408
;
optional
int32
field_Name9
=
409
;
optional
int32
Field_Name10
=
410
;
optional
int32
FIELD_NAME11
=
411
;
optional
int32
FIELD_name12
=
412
;
optional
int32
__field_name13
=
413
;
optional
int32
__Field_name14
=
414
;
optional
int32
field__name15
=
415
;
optional
int32
field__Name16
=
416
;
optional
int32
field_name17__
=
417
;
optional
int32
Field_name18__
=
418
;
// message_set test case.
message
MessageSetCorrect
{
option
message_set_wire_format
=
true
;
extensions
4
to
max
;
}
message
MessageSetCorrectExtension1
{
extend
MessageSetCorrect
{
optional
MessageSetCorrectExtension1
message_set_extension
=
1547769
;
}
optional
string
str
=
25
;
}
message
MessageSetCorrectExtension2
{
extend
MessageSetCorrect
{
optional
MessageSetCorrectExtension2
message_set_extension
=
4135312
;
}
optional
int32
i
=
9
;
}
}
message
ForeignMessage
{
optional
int32
c
=
1
;
}
enum
ForeignEnum
{
FOREIGN_FOO
=
0
;
FOREIGN_BAR
=
1
;
FOREIGN_BAZ
=
2
;
}
extend
TestAllTypesProto2
{
optional
int32
extension_int32
=
120
;
}
src/google/protobuf/test_messages_proto3.proto
View file @
a713b730
...
...
@@ -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
TestAllTypes
Proto3
{
message
NestedMessage
{
int32
a
=
1
;
TestAllTypes
corecursive
=
2
;
TestAllTypes
Proto3
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
;
TestAllTypes
Proto3
recursive_message
=
27
;
// Repeated
repeated
int32
repeated_int32
=
31
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment