| Index: net/spdy/hpack/hpack_input_stream_test.cc
|
| diff --git a/net/spdy/hpack/hpack_input_stream_test.cc b/net/spdy/hpack/hpack_input_stream_test.cc
|
| index a923944a14b5b181d2519aceeb6e9e1a91aebe82..1f3627566c92c15b00578c02f2d35b8170cb9ba5 100644
|
| --- a/net/spdy/hpack/hpack_input_stream_test.cc
|
| +++ b/net/spdy/hpack/hpack_input_stream_test.cc
|
| @@ -23,8 +23,6 @@ using base::StringPiece;
|
| using std::string;
|
| using test::a2b_hex;
|
|
|
| -const size_t kLiteralBound = 1024;
|
| -
|
| // Hex representation of encoded length and Huffman string.
|
| const char kEncodedHuffmanFixture[] =
|
| "2d" // Length prefix.
|
| @@ -55,7 +53,7 @@ class HpackInputStreamPeer {
|
| uint32_t DecodeValidUint32(uint8_t N, StringPiece str) {
|
| EXPECT_GT(N, 0);
|
| EXPECT_LE(N, 8);
|
| - HpackInputStream input_stream(kLiteralBound, str);
|
| + HpackInputStream input_stream(str);
|
| HpackInputStreamPeer input_stream_peer(&input_stream);
|
| input_stream_peer.SetBitOffsetForTest(8 - N);
|
| uint32_t I;
|
| @@ -70,7 +68,7 @@ uint32_t DecodeValidUint32(uint8_t N, StringPiece str) {
|
| void ExpectDecodeUint32Invalid(uint8_t N, StringPiece str) {
|
| EXPECT_GT(N, 0);
|
| EXPECT_LE(N, 8);
|
| - HpackInputStream input_stream(kLiteralBound, str);
|
| + HpackInputStream input_stream(str);
|
| HpackInputStreamPeer input_stream_peer(&input_stream);
|
| input_stream_peer.SetBitOffsetForTest(8 - N);
|
| uint32_t I;
|
| @@ -496,7 +494,7 @@ TEST(HpackInputStreamTest, SevenByteIntegersOneToSevenBitPrefixes) {
|
|
|
| // Decoding a valid encoded string literal should work.
|
| TEST(HpackInputStreamTest, DecodeNextIdentityString) {
|
| - HpackInputStream input_stream(kLiteralBound, "\x0estring literal");
|
| + HpackInputStream input_stream("\x0estring literal");
|
| HpackInputStreamPeer input_stream_peer(&input_stream);
|
|
|
| EXPECT_TRUE(input_stream.HasMoreData());
|
| @@ -508,22 +506,11 @@ TEST(HpackInputStreamTest, DecodeNextIdentityString) {
|
| EXPECT_FALSE(input_stream.NeedMoreData());
|
| }
|
|
|
| -// Decoding an encoded string literal with size larger than
|
| -// |max_string_literal_size_| should fail.
|
| -TEST(HpackInputStreamTest, DecodeNextIdentityStringSizeLimit) {
|
| - HpackInputStream input_stream(13, "\x0estring literal");
|
| -
|
| - EXPECT_TRUE(input_stream.HasMoreData());
|
| - StringPiece string_piece;
|
| - EXPECT_FALSE(input_stream.DecodeNextIdentityString(&string_piece));
|
| - EXPECT_FALSE(input_stream.NeedMoreData());
|
| -}
|
| -
|
| // Decoding an encoded string literal with size larger than the
|
| // remainder of the buffer should fail.
|
| TEST(HpackInputStreamTest, DecodeNextIdentityStringNotEnoughInput) {
|
| // Set the length to be one more than it should be.
|
| - HpackInputStream input_stream(kLiteralBound, "\x0fstring literal");
|
| + HpackInputStream input_stream("\x0fstring literal");
|
|
|
| EXPECT_TRUE(input_stream.HasMoreData());
|
| StringPiece string_piece;
|
| @@ -533,7 +520,7 @@ TEST(HpackInputStreamTest, DecodeNextIdentityStringNotEnoughInput) {
|
|
|
| TEST(HpackInputStreamTest, DecodeNextHuffmanString) {
|
| string output, input(a2b_hex(kEncodedHuffmanFixture));
|
| - HpackInputStream input_stream(arraysize(kDecodedHuffmanFixture) - 1, input);
|
| + HpackInputStream input_stream(input);
|
| HpackInputStreamPeer input_stream_peer(&input_stream);
|
|
|
| EXPECT_TRUE(input_stream.HasMoreData());
|
| @@ -544,21 +531,10 @@ TEST(HpackInputStreamTest, DecodeNextHuffmanString) {
|
| EXPECT_EQ(46u, input_stream_peer.ParsedBytesCurrent());
|
| }
|
|
|
| -TEST(HpackInputStreamTest, DecodeNextHuffmanStringSizeLimit) {
|
| - string output, input(a2b_hex(kEncodedHuffmanFixture));
|
| - // Max string literal is one byte shorter than the decoded fixture.
|
| - HpackInputStream input_stream(arraysize(kDecodedHuffmanFixture) - 2, input);
|
| -
|
| - // Decoded string overflows the max string literal.
|
| - EXPECT_TRUE(input_stream.HasMoreData());
|
| - EXPECT_FALSE(input_stream.DecodeNextHuffmanString(&output));
|
| - EXPECT_FALSE(input_stream.NeedMoreData());
|
| -}
|
| -
|
| TEST(HpackInputStreamTest, DecodeNextHuffmanStringNotEnoughInput) {
|
| string output, input(a2b_hex(kEncodedHuffmanFixture));
|
| input[0]++; // Input prefix is one byte larger than available input.
|
| - HpackInputStream input_stream(arraysize(kDecodedHuffmanFixture) - 1, input);
|
| + HpackInputStream input_stream(input);
|
|
|
| // Not enough buffer for declared encoded length.
|
| EXPECT_TRUE(input_stream.HasMoreData());
|
| @@ -567,7 +543,7 @@ TEST(HpackInputStreamTest, DecodeNextHuffmanStringNotEnoughInput) {
|
| }
|
|
|
| TEST(HpackInputStreamTest, PeekBitsAndConsume) {
|
| - HpackInputStream input_stream(kLiteralBound, "\xad\xab\xad\xab\xad");
|
| + HpackInputStream input_stream("\xad\xab\xad\xab\xad");
|
|
|
| uint32_t bits = 0;
|
| size_t peeked_count = 0;
|
| @@ -631,7 +607,7 @@ TEST(HpackInputStreamTest, PeekBitsAndConsume) {
|
| TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // Empty input, peeked_count == 0 and bits == 0.
|
| - HpackInputStream input_stream(kLiteralBound, "");
|
| + HpackInputStream input_stream("");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -641,7 +617,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // One input byte, returns peeked_count == 8 and bits
|
| // has the input byte in its high order bits.
|
| - HpackInputStream input_stream(kLiteralBound, "\xfe");
|
| + HpackInputStream input_stream("\xfe");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -653,7 +629,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // Two input bytes, returns peeked_count == 16 and bits
|
| // has the two input bytes in its high order bits.
|
| - HpackInputStream input_stream(kLiteralBound, "\xfe\xdc");
|
| + HpackInputStream input_stream("\xfe\xdc");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -665,7 +641,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // Three input bytes, returns peeked_count == 24 and bits
|
| // has the three input bytes in its high order bits.
|
| - HpackInputStream input_stream(kLiteralBound, "\xab\xcd\xef");
|
| + HpackInputStream input_stream("\xab\xcd\xef");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -677,7 +653,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // Four input bytes, returns peeked_count == 32 and bits
|
| // contains the four input bytes.
|
| - HpackInputStream input_stream(kLiteralBound, "\xfe\xed\xdc\xcb");
|
| + HpackInputStream input_stream("\xfe\xed\xdc\xcb");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -689,7 +665,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| {
|
| // Five input bytes, returns peeked_count == 32 and bits
|
| // contains the first four input bytes.
|
| - HpackInputStream input_stream(kLiteralBound, "\xfe\xed\xdc\xcb\xba");
|
| + HpackInputStream input_stream("\xfe\xed\xdc\xcb\xba");
|
| auto peeked_count_and_bits = input_stream.InitializePeekBits();
|
| size_t peeked_count = peeked_count_and_bits.first;
|
| uint32_t bits = peeked_count_and_bits.second;
|
| @@ -719,7 +695,7 @@ TEST(HpackInputStreamTest, InitializePeekBits) {
|
| }
|
|
|
| TEST(HpackInputStreamTest, ConsumeByteRemainder) {
|
| - HpackInputStream input_stream(kLiteralBound, "\xad\xab");
|
| + HpackInputStream input_stream("\xad\xab");
|
| // Does nothing.
|
| input_stream.ConsumeByteRemainder();
|
|
|
| @@ -735,7 +711,7 @@ TEST(HpackInputStreamTest, ConsumeByteRemainder) {
|
| }
|
|
|
| TEST(HpackInputStreamTest, IncompleteHeaderMatchPrefixAndConsume) {
|
| - HpackInputStream input_stream(kLiteralBound, "");
|
| + HpackInputStream input_stream("");
|
| HpackInputStreamPeer input_stream_peer(&input_stream);
|
| EXPECT_FALSE(input_stream.MatchPrefixAndConsume(kIndexedOpcode));
|
| EXPECT_EQ(0u, input_stream_peer.ParsedBytesCurrent());
|
| @@ -744,7 +720,7 @@ TEST(HpackInputStreamTest, IncompleteHeaderMatchPrefixAndConsume) {
|
|
|
| TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextUint32) {
|
| // First byte only
|
| - HpackInputStream input_stream1(kLiteralBound, "\xff");
|
| + HpackInputStream input_stream1("\xff");
|
| HpackInputStreamPeer input_stream1_peer(&input_stream1);
|
| EXPECT_TRUE(input_stream1.MatchPrefixAndConsume(kIndexedOpcode));
|
| uint32_t result;
|
| @@ -753,7 +729,7 @@ TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextUint32) {
|
| EXPECT_EQ(1u, input_stream1_peer.ParsedBytesCurrent());
|
|
|
| // No last byte
|
| - HpackInputStream input_stream2(kLiteralBound, "\xff\x80\x80\x80");
|
| + HpackInputStream input_stream2("\xff\x80\x80\x80");
|
| HpackInputStreamPeer input_stream2_peer(&input_stream2);
|
| EXPECT_TRUE(input_stream2.MatchPrefixAndConsume(kIndexedOpcode));
|
| EXPECT_FALSE(input_stream2.DecodeNextUint32(&result));
|
| @@ -761,7 +737,7 @@ TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextUint32) {
|
| EXPECT_EQ(4u, input_stream2_peer.ParsedBytesCurrent());
|
|
|
| // Error happens before finishing parsing.
|
| - HpackInputStream input_stream3(kLiteralBound, "\xff\xff\xff\xff\xff\xff\xff");
|
| + HpackInputStream input_stream3("\xff\xff\xff\xff\xff\xff\xff");
|
| HpackInputStreamPeer input_stream3_peer(&input_stream3);
|
| EXPECT_TRUE(input_stream3.MatchPrefixAndConsume(kIndexedOpcode));
|
| EXPECT_FALSE(input_stream3.DecodeNextUint32(&result));
|
| @@ -770,7 +746,7 @@ TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextUint32) {
|
| }
|
|
|
| TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextIdentityString) {
|
| - HpackInputStream input_stream1(kLiteralBound, "\x0estring litera");
|
| + HpackInputStream input_stream1("\x0estring litera");
|
| HpackInputStreamPeer input_stream1_peer(&input_stream1);
|
| StringPiece string_piece;
|
| EXPECT_FALSE(input_stream1.DecodeNextIdentityString(&string_piece));
|
| @@ -778,7 +754,7 @@ TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextIdentityString) {
|
| EXPECT_EQ(1u, input_stream1_peer.ParsedBytesCurrent());
|
| EXPECT_TRUE(input_stream1.NeedMoreData());
|
|
|
| - HpackInputStream input_stream2(kLiteralBound, "\x0e");
|
| + HpackInputStream input_stream2("\x0e");
|
| HpackInputStreamPeer input_stream2_peer(&input_stream2);
|
| EXPECT_FALSE(input_stream2.DecodeNextIdentityString(&string_piece));
|
| // Only parsed first byte.
|
| @@ -789,14 +765,14 @@ TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextIdentityString) {
|
| TEST(HpackInputStreamTest, IncompleteHeaderDecodeNextHuffmanString) {
|
| string output, input(a2b_hex(kEncodedHuffmanFixture));
|
| input.resize(input.size() - 1); // Remove last byte.
|
| - HpackInputStream input_stream1(arraysize(kDecodedHuffmanFixture) - 1, input);
|
| + HpackInputStream input_stream1(input);
|
| HpackInputStreamPeer input_stream1_peer(&input_stream1);
|
| EXPECT_FALSE(input_stream1.DecodeNextHuffmanString(&output));
|
| EXPECT_EQ(1u, input_stream1_peer.ParsedBytesCurrent());
|
| EXPECT_TRUE(input_stream1.NeedMoreData());
|
|
|
| input.erase(1, input.size()); // Remove all bytes except the first one.
|
| - HpackInputStream input_stream2(arraysize(kDecodedHuffmanFixture) - 1, input);
|
| + HpackInputStream input_stream2(input);
|
| HpackInputStreamPeer input_stream2_peer(&input_stream2);
|
| EXPECT_FALSE(input_stream2.DecodeNextHuffmanString(&output));
|
| EXPECT_EQ(1u, input_stream2_peer.ParsedBytesCurrent());
|
|
|