| 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 31574d5be35b3ca6c81fc25ceff30b9ffbddddbe..a8108e4572bc5111648e12e8b9d2fe1cfe4d2fba 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
|
| @@ -58,7 +58,6 @@
|
| #define ULL(x) GOOGLE_ULONGLONG(x)
|
|
|
| namespace google {
|
| -
|
| namespace protobuf {
|
| namespace io {
|
| namespace {
|
| @@ -135,7 +134,7 @@ class CodedStreamTest : public testing::Test {
|
| // for further information.
|
| static void SetupTotalBytesLimitWarningTest(
|
| int total_bytes_limit, int warning_threshold,
|
| - std::vector<string>* out_errors, std::vector<string>* out_warnings);
|
| + vector<string>* out_errors, vector<string>* out_warnings);
|
|
|
| // Buffer used during most of the tests. This assumes tests run sequentially.
|
| static const int kBufferSize = 1024 * 64;
|
| @@ -245,7 +244,7 @@ TEST_F(CodedStreamTest, EmptyInputBeforeEos) {
|
| int count_;
|
| } in;
|
| CodedInputStream input(&in);
|
| - input.ReadTagNoLastTag();
|
| + input.ReadTag();
|
| EXPECT_TRUE(input.ConsumedEntireMessage());
|
| }
|
|
|
| @@ -446,21 +445,6 @@ TEST_2D(CodedStreamTest, ReadVarint32Error, kVarintErrorCases, kBlockSizes) {
|
| EXPECT_EQ(kVarintErrorCases_case.can_parse, coded_input.ReadVarint32(&value));
|
| }
|
|
|
| -TEST_2D(CodedStreamTest, ReadVarint32Error_LeavesValueInInitializedState,
|
| - kVarintErrorCases, kBlockSizes) {
|
| - memcpy(buffer_, kVarintErrorCases_case.bytes, kVarintErrorCases_case.size);
|
| - ArrayInputStream input(buffer_, kVarintErrorCases_case.size,
|
| - kBlockSizes_case);
|
| - CodedInputStream coded_input(&input);
|
| -
|
| - uint32 value = 0;
|
| - EXPECT_EQ(kVarintErrorCases_case.can_parse, coded_input.ReadVarint32(&value));
|
| - // While the specific value following a failure is not critical, we do want to
|
| - // ensure that it doesn't get set to an uninitialized value. (This check fails
|
| - // in MSAN mode if value has been set to an uninitialized value.)
|
| - EXPECT_EQ(value, value);
|
| -}
|
| -
|
| TEST_2D(CodedStreamTest, ReadVarint64Error, kVarintErrorCases, kBlockSizes) {
|
| memcpy(buffer_, kVarintErrorCases_case.bytes, kVarintErrorCases_case.size);
|
| ArrayInputStream input(buffer_, kVarintErrorCases_case.size,
|
| @@ -471,21 +455,6 @@ TEST_2D(CodedStreamTest, ReadVarint64Error, kVarintErrorCases, kBlockSizes) {
|
| EXPECT_EQ(kVarintErrorCases_case.can_parse, coded_input.ReadVarint64(&value));
|
| }
|
|
|
| -TEST_2D(CodedStreamTest, ReadVarint64Error_LeavesValueInInitializedState,
|
| - kVarintErrorCases, kBlockSizes) {
|
| - memcpy(buffer_, kVarintErrorCases_case.bytes, kVarintErrorCases_case.size);
|
| - ArrayInputStream input(buffer_, kVarintErrorCases_case.size,
|
| - kBlockSizes_case);
|
| - CodedInputStream coded_input(&input);
|
| -
|
| - uint64 value = 0;
|
| - EXPECT_EQ(kVarintErrorCases_case.can_parse, coded_input.ReadVarint64(&value));
|
| - // While the specific value following a failure is not critical, we do want to
|
| - // ensure that it doesn't get set to an uninitialized value. (This check fails
|
| - // in MSAN mode if value has been set to an uninitialized value.)
|
| - EXPECT_EQ(value, value);
|
| -}
|
| -
|
| // -------------------------------------------------------------------
|
| // VarintSize
|
|
|
| @@ -525,28 +494,6 @@ TEST_1D(CodedStreamTest, VarintSize64, kVarintSizeCases) {
|
| CodedOutputStream::VarintSize64(kVarintSizeCases_case.value));
|
| }
|
|
|
| -TEST_F(CodedStreamTest, VarintSize32PowersOfTwo) {
|
| - int expected = 1;
|
| - for (int i = 1; i < 32; i++) {
|
| - if (i % 7 == 0) {
|
| - expected += 1;
|
| - }
|
| - EXPECT_EQ(expected,
|
| - CodedOutputStream::VarintSize32(static_cast<uint32>(0x1u << i)));
|
| - }
|
| -}
|
| -
|
| -TEST_F(CodedStreamTest, VarintSize64PowersOfTwo) {
|
| - int expected = 1;
|
| - for (int i = 1; i < 64; i++) {
|
| - if (i % 7 == 0) {
|
| - expected += 1;
|
| - }
|
| - EXPECT_EQ(expected, CodedOutputStream::VarintSize64(
|
| - static_cast<uint64>(0x1ull << i)));
|
| - }
|
| -}
|
| -
|
| // -------------------------------------------------------------------
|
| // Fixed-size int tests
|
|
|
| @@ -1229,7 +1176,7 @@ TEST_F(CodedStreamTest, TotalBytesLimit) {
|
| EXPECT_TRUE(coded_input.ReadString(&str, 16));
|
| EXPECT_EQ(0, coded_input.BytesUntilTotalBytesLimit());
|
|
|
| - std::vector<string> errors;
|
| + vector<string> errors;
|
|
|
| {
|
| ScopedMemoryLog error_log;
|
| @@ -1263,7 +1210,7 @@ TEST_F(CodedStreamTest, TotalBytesLimitNotValidMessageEnd) {
|
|
|
| // Read a tag. Should fail, but report being a valid endpoint since it's
|
| // a regular limit.
|
| - EXPECT_EQ(0, coded_input.ReadTagNoLastTag());
|
| + EXPECT_EQ(0, coded_input.ReadTag());
|
| EXPECT_TRUE(coded_input.ConsumedEntireMessage());
|
|
|
| // Pop the limit.
|
| @@ -1271,7 +1218,7 @@ TEST_F(CodedStreamTest, TotalBytesLimitNotValidMessageEnd) {
|
|
|
| // Read a tag. Should fail, and report *not* being a valid endpoint, since
|
| // this time we're hitting the total bytes limit.
|
| - EXPECT_EQ(0, coded_input.ReadTagNoLastTag());
|
| + EXPECT_EQ(0, coded_input.ReadTag());
|
| EXPECT_FALSE(coded_input.ConsumedEntireMessage());
|
| }
|
|
|
| @@ -1281,7 +1228,7 @@ TEST_F(CodedStreamTest, TotalBytesLimitNotValidMessageEnd) {
|
| // vectors.
|
| void CodedStreamTest::SetupTotalBytesLimitWarningTest(
|
| int total_bytes_limit, int warning_threshold,
|
| - std::vector<string>* out_errors, std::vector<string>* out_warnings) {
|
| + vector<string>* out_errors, vector<string>* out_warnings) {
|
| ArrayInputStream raw_input(buffer_, sizeof(buffer_), 128);
|
|
|
| ScopedMemoryLog scoped_log;
|
| @@ -1297,21 +1244,25 @@ void CodedStreamTest::SetupTotalBytesLimitWarningTest(
|
| }
|
|
|
| TEST_F(CodedStreamTest, TotalBytesLimitWarning) {
|
| - std::vector<string> errors;
|
| - std::vector<string> warnings;
|
| + vector<string> errors;
|
| + vector<string> warnings;
|
| SetupTotalBytesLimitWarningTest(10240, 1024, &errors, &warnings);
|
|
|
| EXPECT_EQ(0, errors.size());
|
|
|
| - EXPECT_EQ(1, warnings.size());
|
| + ASSERT_EQ(2, warnings.size());
|
| EXPECT_PRED_FORMAT2(testing::IsSubstring,
|
| - "The total number of bytes read was 2048",
|
| + "Reading dangerously large protocol message. If the message turns out to "
|
| + "be larger than 10240 bytes, parsing will be halted for security reasons.",
|
| warnings[0]);
|
| + EXPECT_PRED_FORMAT2(testing::IsSubstring,
|
| + "The total number of bytes read was 2048",
|
| + warnings[1]);
|
| }
|
|
|
| TEST_F(CodedStreamTest, TotalBytesLimitWarningDisabled) {
|
| - std::vector<string> errors;
|
| - std::vector<string> warnings;
|
| + vector<string> errors;
|
| + vector<string> warnings;
|
|
|
| // Test with -1
|
| SetupTotalBytesLimitWarningTest(10240, -1, &errors, &warnings);
|
| @@ -1410,7 +1361,7 @@ TEST_F(CodedStreamTest, InputOver2G) {
|
| // input.BackUp() with the correct number of bytes on destruction.
|
| ReallyBigInputStream input;
|
|
|
| - std::vector<string> errors;
|
| + vector<string> errors;
|
|
|
| {
|
| ScopedMemoryLog error_log;
|
|
|