Index: net/spdy/spdy_framer_test.cc |
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc |
index 03ebf8cffa5141b953eaf40bdb8c61f2d94fab47..27a18d4c9e1cea99fdb54576c2f698b03c6ca7fb 100644 |
--- a/net/spdy/spdy_framer_test.cc |
+++ b/net/spdy/spdy_framer_test.cc |
@@ -613,7 +613,7 @@ StringPiece GetSerializedHeaders(const SpdySerializedFrame& frame, |
frame.size() - framer.GetHeadersMinimumSize()); |
} |
-enum DecoderChoice { DECODER_SELF, DECODER_NESTED }; |
+enum DecoderChoice { DECODER_SELF, DECODER_NESTED, DECODER_HTTP2 }; |
enum HpackChoice { HPACK_DECODER_1, HPACK_DECODER_2 }; |
class SpdyFramerTest |
@@ -624,9 +624,15 @@ class SpdyFramerTest |
switch (std::get<0>(param)) { |
case DECODER_SELF: |
FLAGS_use_nested_spdy_framer_decoder = false; |
+ FLAGS_use_http2_frame_decoder_adapter = false; |
break; |
case DECODER_NESTED: |
FLAGS_use_nested_spdy_framer_decoder = true; |
+ FLAGS_use_http2_frame_decoder_adapter = false; |
+ break; |
+ case DECODER_HTTP2: |
+ FLAGS_use_nested_spdy_framer_decoder = false; |
+ FLAGS_use_http2_frame_decoder_adapter = true; |
break; |
} |
switch (std::get<1>(param)) { |
@@ -661,11 +667,13 @@ class SpdyFramerTest |
} |
}; |
-INSTANTIATE_TEST_CASE_P( |
- SpdyFramerTests, |
- SpdyFramerTest, |
- ::testing::Combine(::testing::Values(DECODER_SELF, DECODER_NESTED), |
- ::testing::Values(HPACK_DECODER_1, HPACK_DECODER_2))); |
+INSTANTIATE_TEST_CASE_P(SpdyFramerTests, |
+ SpdyFramerTest, |
+ ::testing::Combine(::testing::Values(DECODER_SELF, |
+ DECODER_NESTED, |
+ DECODER_HTTP2), |
+ ::testing::Values(HPACK_DECODER_1, |
+ HPACK_DECODER_2))); |
// Test that we can encode and decode a SpdyHeaderBlock in serialized form. |
TEST_P(SpdyFramerTest, HeaderBlockInBuffer) { |
@@ -1133,9 +1141,8 @@ TEST_P(SpdyFramerTest, PushPromiseWithPromisedStreamIdZero) { |
push_promise.SetHeader("alpha", "beta"); |
SpdySerializedFrame frame(framer.SerializePushPromise(push_promise)); |
- // We shouldn't have to read the whole frame before we signal an error. |
EXPECT_CALL(visitor, OnError(testing::Eq(&framer))); |
- EXPECT_GT(frame.size(), framer.ProcessInput(frame.data(), frame.size())); |
+ framer.ProcessInput(frame.data(), frame.size()); |
EXPECT_TRUE(framer.HasError()); |
EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, framer.error_code()) |
<< SpdyFramer::ErrorCodeToString(framer.error_code()); |
@@ -2794,12 +2801,16 @@ TEST_P(SpdyFramerTest, ReadBogusLenSettingsFrame) { |
SpdyFramer framer; |
SpdySettingsIR settings_ir; |
- // Add a setting to pad the frame so that we don't get a buffer overflow when |
- // calling SimulateInFramer() below. |
+ // Add settings to more than fill the frame so that we don't get a buffer |
+ // overflow when calling SimulateInFramer() below. These settings must be |
+ // distinct parameters because SpdySettingsIR has a map for settings, and will |
+ // collapse multiple copies of the same parameter. |
settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, false, false, |
0x00000002); |
+ settings_ir.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, false, false, |
+ 0x00000002); |
SpdySerializedFrame control_frame(framer.SerializeSettings(settings_ir)); |
- const size_t kNewLength = 14; |
+ const size_t kNewLength = 8; |
SetFrameLength(&control_frame, kNewLength); |
TestSpdyVisitor visitor; |
visitor.use_compression_ = false; |