Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(811)

Unified Diff: net/spdy/hpack/hpack_input_stream_test.cc

Issue 2026593002: Remove limit on individual hpack string literals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unused include. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/hpack/hpack_input_stream.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « net/spdy/hpack/hpack_input_stream.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698