Index: net/http/http_chunked_decoder_unittest.cc |
diff --git a/net/http/http_chunked_decoder_unittest.cc b/net/http/http_chunked_decoder_unittest.cc |
index 2d2898c33478015f610d5542df3b49a471516e59..dd901a94ce8383dc9ab9629bd9ef1899719b92d9 100644 |
--- a/net/http/http_chunked_decoder_unittest.cc |
+++ b/net/http/http_chunked_decoder_unittest.cc |
@@ -5,11 +5,7 @@ |
#include "net/http/http_chunked_decoder.h" |
#include <memory> |
-#include <string> |
-#include <vector> |
- |
-#include "base/format_macros.h" |
-#include "base/strings/stringprintf.h" |
+ |
#include "net/base/net_errors.h" |
#include "net/test/gtest_util.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -295,70 +291,10 @@ |
RunTestUntilFailure(inputs, arraysize(inputs), 1); |
} |
-TEST(HttpChunkedDecoderTest, ReallyBigChunks) { |
- // Number of bytes sent through the chunked decoder per loop iteration. To |
- // minimize runtime, should be the square root of the chunk lengths, below. |
- const int64_t kWrittenBytesPerIteration = 0x10000; |
- |
- // Length of chunks to test. Must be multiples of kWrittenBytesPerIteration. |
- int64_t kChunkLengths[] = { |
- // Overflows when cast to a signed int32. |
- 0x0c0000000, |
- // Overflows when cast to an unsigned int32. |
- 0x100000000, |
- }; |
- |
- for (int64_t chunk_length : kChunkLengths) { |
- HttpChunkedDecoder decoder; |
- EXPECT_FALSE(decoder.reached_eof()); |
- |
- // Feed just the header to the decode. |
- std::string chunk_header = |
- base::StringPrintf("%" PRIx64 "\r\n", chunk_length); |
- std::vector<char> data(chunk_header.begin(), chunk_header.end()); |
- EXPECT_EQ(OK, decoder.FilterBuf(data.data(), data.size())); |
- EXPECT_FALSE(decoder.reached_eof()); |
- |
- // Set |data| to be kWrittenBytesPerIteration long, and have a repeating |
- // pattern. |
- data.clear(); |
- data.reserve(kWrittenBytesPerIteration); |
- for (size_t i = 0; i < kWrittenBytesPerIteration; i++) { |
- data.push_back(static_cast<char>(i)); |
- } |
- |
- // Repeatedly feed the data to the chunked decoder. Since the data doesn't |
- // include any chunk lengths, the decode will never have to move the data, |
- // and should run fairly quickly. |
- for (int64_t total_written = 0; total_written < chunk_length; |
- total_written += kWrittenBytesPerIteration) { |
- EXPECT_EQ(kWrittenBytesPerIteration, |
- decoder.FilterBuf(data.data(), kWrittenBytesPerIteration)); |
- EXPECT_FALSE(decoder.reached_eof()); |
- } |
- |
- // Chunk terminator and the final chunk. |
- char final_chunk[] = "\r\n0\r\n\r\n"; |
- EXPECT_EQ(OK, decoder.FilterBuf(final_chunk, arraysize(final_chunk))); |
- EXPECT_TRUE(decoder.reached_eof()); |
- |
- // Since |data| never included any chunk headers, it should not have been |
- // modified. |
- for (size_t i = 0; i < kWrittenBytesPerIteration; i++) { |
- EXPECT_EQ(static_cast<char>(i), data[i]); |
- } |
- } |
-} |
- |
TEST(HttpChunkedDecoderTest, ExcessiveChunkLen) { |
- // Smallest number that can't be represented as a signed int64. |
- const char* const inputs[] = {"8000000000000000\r\nhello\r\n"}; |
- RunTestUntilFailure(inputs, arraysize(inputs), 0); |
-} |
- |
-TEST(HttpChunkedDecoderTest, ExcessiveChunkLen2) { |
- // Smallest number that can't be represented as an unsigned int64. |
- const char* const inputs[] = {"10000000000000000\r\nhello\r\n"}; |
+ const char* const inputs[] = { |
+ "c0000000\r\nhello\r\n" |
+ }; |
RunTestUntilFailure(inputs, arraysize(inputs), 0); |
} |