Index: third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc |
diff --git a/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc b/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc |
index 02d5bad3b599033f5f21d4177c86bca153902b40..2daab194c12be5dc77c91d3cedf865f41d83e264 100644 |
--- a/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc |
+++ b/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc |
@@ -1,6 +1,6 @@ |
// Protocol Buffers - Google's data interchange format |
// Copyright 2008 Google Inc. All rights reserved. |
-// https://developers.google.com/protocol-buffers/ |
+// http://code.google.com/p/protobuf/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -144,7 +144,6 @@ uint8 CodedStreamTest::buffer_[CodedStreamTest::kBufferSize]; |
// checks. |
const int kBlockSizes[] = {1, 2, 3, 5, 7, 13, 32, 1024}; |
- |
// ------------------------------------------------------------------- |
// Varint tests. |
@@ -502,11 +501,11 @@ struct Fixed64Case { |
}; |
inline std::ostream& operator<<(std::ostream& os, const Fixed32Case& c) { |
- return os << "0x" << std::hex << c.value << std::dec; |
+ return os << "0x" << hex << c.value << dec; |
} |
inline std::ostream& operator<<(std::ostream& os, const Fixed64Case& c) { |
- return os << "0x" << std::hex << c.value << std::dec; |
+ return os << "0x" << hex << c.value << dec; |
} |
Fixed32Case kFixed32Cases[] = { |
@@ -683,197 +682,14 @@ TEST_F(CodedStreamTest, ReadStringImpossiblyLargeFromStringOnHeap) { |
EXPECT_FALSE(coded_input.ReadString(&str, 1 << 30)); |
} |
-TEST_1D(CodedStreamTest, ReadStringReservesMemoryOnTotalLimit, kBlockSizes) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- ArrayInputStream input(buffer_, sizeof(buffer_), kBlockSizes_case); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.SetTotalBytesLimit(sizeof(kRawBytes), sizeof(kRawBytes)); |
- EXPECT_EQ(sizeof(kRawBytes), coded_input.BytesUntilTotalBytesLimit()); |
- |
- string str; |
- EXPECT_TRUE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- EXPECT_EQ(sizeof(kRawBytes) - strlen(kRawBytes), |
- coded_input.BytesUntilTotalBytesLimit()); |
- EXPECT_EQ(kRawBytes, str); |
- // TODO(liujisi): Replace with a more meaningful test (see cl/60966023). |
- EXPECT_GE(str.capacity(), strlen(kRawBytes)); |
- } |
- |
- EXPECT_EQ(strlen(kRawBytes), input.ByteCount()); |
-} |
- |
-TEST_1D(CodedStreamTest, ReadStringReservesMemoryOnPushedLimit, kBlockSizes) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- ArrayInputStream input(buffer_, sizeof(buffer_), kBlockSizes_case); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(sizeof(buffer_)); |
- |
- string str; |
- EXPECT_TRUE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- EXPECT_EQ(kRawBytes, str); |
- // TODO(liujisi): Replace with a more meaningful test (see cl/60966023). |
- EXPECT_GE(str.capacity(), strlen(kRawBytes)); |
- } |
- |
- EXPECT_EQ(strlen(kRawBytes), input.ByteCount()); |
-} |
- |
-TEST_F(CodedStreamTest, ReadStringNoReservationIfLimitsNotSet) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- |
- string str; |
- EXPECT_TRUE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- EXPECT_EQ(kRawBytes, str); |
- // Note: this check depends on string class implementation. It |
- // expects that string will allocate more than strlen(kRawBytes) |
- // if the content of kRawBytes is appended to string in small |
- // chunks. |
- // TODO(liujisi): Replace with a more meaningful test (see cl/60966023). |
- EXPECT_GE(str.capacity(), strlen(kRawBytes)); |
- } |
- |
- EXPECT_EQ(strlen(kRawBytes), input.ByteCount()); |
-} |
- |
-TEST_F(CodedStreamTest, ReadStringNoReservationSizeIsNegative) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(sizeof(buffer_)); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, -1)); |
- // Note: this check depends on string class implementation. It |
- // expects that string will always allocate the same amount of |
- // memory for an empty string. |
- EXPECT_EQ(string().capacity(), str.capacity()); |
- } |
-} |
- |
-TEST_F(CodedStreamTest, ReadStringNoReservationSizeIsLarge) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(sizeof(buffer_)); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, 1 << 30)); |
- EXPECT_GT(1 << 30, str.capacity()); |
- } |
-} |
- |
-TEST_F(CodedStreamTest, ReadStringNoReservationSizeIsOverTheLimit) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(16); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- // Note: this check depends on string class implementation. It |
- // expects that string will allocate less than strlen(kRawBytes) |
- // for an empty string. |
- EXPECT_GT(strlen(kRawBytes), str.capacity()); |
- } |
-} |
- |
-TEST_F(CodedStreamTest, ReadStringNoReservationSizeIsOverTheTotalBytesLimit) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.SetTotalBytesLimit(16, 16); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- // Note: this check depends on string class implementation. It |
- // expects that string will allocate less than strlen(kRawBytes) |
- // for an empty string. |
- EXPECT_GT(strlen(kRawBytes), str.capacity()); |
- } |
-} |
- |
-TEST_F(CodedStreamTest, |
- ReadStringNoReservationSizeIsOverTheClosestLimit_GlobalLimitIsCloser) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(sizeof(buffer_)); |
- coded_input.SetTotalBytesLimit(16, 16); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- // Note: this check depends on string class implementation. It |
- // expects that string will allocate less than strlen(kRawBytes) |
- // for an empty string. |
- EXPECT_GT(strlen(kRawBytes), str.capacity()); |
- } |
-} |
- |
-TEST_F(CodedStreamTest, |
- ReadStringNoReservationSizeIsOverTheClosestLimit_LocalLimitIsCloser) { |
- memcpy(buffer_, kRawBytes, sizeof(kRawBytes)); |
- // Buffer size in the input must be smaller than sizeof(kRawBytes), |
- // otherwise check against capacity will fail as ReadStringInline() |
- // will handle the reading and will reserve the memory as needed. |
- ArrayInputStream input(buffer_, sizeof(buffer_), 32); |
- |
- { |
- CodedInputStream coded_input(&input); |
- coded_input.PushLimit(16); |
- coded_input.SetTotalBytesLimit(sizeof(buffer_), sizeof(buffer_)); |
- EXPECT_EQ(sizeof(buffer_), coded_input.BytesUntilTotalBytesLimit()); |
- |
- string str; |
- EXPECT_FALSE(coded_input.ReadString(&str, strlen(kRawBytes))); |
- // Note: this check depends on string class implementation. It |
- // expects that string will allocate less than strlen(kRawBytes) |
- // for an empty string. |
- EXPECT_GT(strlen(kRawBytes), str.capacity()); |
- } |
-} |
- |
// ------------------------------------------------------------------- |
// Skip |
const char kSkipTestBytes[] = |
"<Before skipping><To be skipped><After skipping>"; |
+const char kSkipOutputTestBytes[] = |
+ "-----------------<To be skipped>----------------"; |
TEST_1D(CodedStreamTest, SkipInput, kBlockSizes) { |
memcpy(buffer_, kSkipTestBytes, sizeof(kSkipTestBytes)); |
@@ -1164,11 +980,9 @@ TEST_F(CodedStreamTest, TotalBytesLimit) { |
ArrayInputStream input(buffer_, sizeof(buffer_)); |
CodedInputStream coded_input(&input); |
coded_input.SetTotalBytesLimit(16, -1); |
- EXPECT_EQ(16, coded_input.BytesUntilTotalBytesLimit()); |
string str; |
EXPECT_TRUE(coded_input.ReadString(&str, 16)); |
- EXPECT_EQ(0, coded_input.BytesUntilTotalBytesLimit()); |
vector<string> errors; |
@@ -1183,9 +997,7 @@ TEST_F(CodedStreamTest, TotalBytesLimit) { |
"A protocol message was rejected because it was too big", errors[0]); |
coded_input.SetTotalBytesLimit(32, -1); |
- EXPECT_EQ(16, coded_input.BytesUntilTotalBytesLimit()); |
EXPECT_TRUE(coded_input.ReadString(&str, 16)); |
- EXPECT_EQ(0, coded_input.BytesUntilTotalBytesLimit()); |
} |
TEST_F(CodedStreamTest, TotalBytesLimitNotValidMessageEnd) { |