From 6ef984af4b0c63c1c33127a12dcfc8e6359f0c9e Mon Sep 17 00:00:00 2001 From: Feng Xiao Date: Mon, 10 Nov 2014 17:34:54 -0800 Subject: Down-integrate from internal code base. --- src/google/protobuf/message_unittest.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/google/protobuf/message_unittest.cc') diff --git a/src/google/protobuf/message_unittest.cc b/src/google/protobuf/message_unittest.cc index a5f339f1..ebfb4321 100644 --- a/src/google/protobuf/message_unittest.cc +++ b/src/google/protobuf/message_unittest.cc @@ -242,6 +242,25 @@ TEST(MessageTest, CheckOverflow) { #endif // PROTOBUF_HAS_DEATH_TEST +namespace { + +class NegativeByteSize : public unittest::TestRequired { + public: + virtual int ByteSize() const { return -1; } +}; + +} // namespace + +TEST(MessageTest, SerializationFailsOnNegativeByteSize) { + NegativeByteSize message; + string string_output; + EXPECT_FALSE(message.AppendPartialToString(&string_output)); + + io::ArrayOutputStream coded_raw_output(NULL, 100); + io::CodedOutputStream coded_output(&coded_raw_output); + EXPECT_FALSE(message.SerializePartialToCodedStream(&coded_output)); +} + TEST(MessageTest, BypassInitializationCheckOnSerialize) { unittest::TestRequired message; io::ArrayOutputStream raw_output(NULL, 0); -- cgit v1.2.3