Chromium Code Reviews| Index: net/spdy/spdy_framer_test.cc |
| diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc |
| index 98320f6e9d61be7336b62361eb99468e0e8e4639..27dd87650a49c093b893b4305f7dfaa4f0d5278e 100644 |
| --- a/net/spdy/spdy_framer_test.cc |
| +++ b/net/spdy/spdy_framer_test.cc |
| @@ -301,7 +301,8 @@ void CompareCharArraysWithHexError( |
| << HexDumpWithMarks(actual, actual_len, marks.get(), max_len); |
| } |
| -class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| +class TestSpdyVisitor : public SpdyFramerVisitorInterface, |
| + public SpdyFramerDebugVisitorInterface { |
| public: |
| static const size_t kDefaultHeaderBufferSize = 16 * 1024; |
| static const size_t kDefaultCredentialBufferSize = 16 * 1024; |
| @@ -323,6 +324,8 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| control_frame_header_data_count_(0), |
| zero_length_control_frame_header_data_count_(0), |
| data_frame_count_(0), |
| + last_decompressed_size_(0), |
| + last_compressed_size_(0), |
| header_buffer_(new char[kDefaultHeaderBufferSize]), |
| header_buffer_length_(0), |
| header_buffer_size_(kDefaultHeaderBufferSize), |
| @@ -334,21 +337,21 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| credential_buffer_size_(kDefaultCredentialBufferSize) { |
| } |
| - void OnError(SpdyFramer* f) { |
| + virtual void OnError(SpdyFramer* f) OVERRIDE { |
| LOG(INFO) << "SpdyFramer Error: " |
| << SpdyFramer::ErrorCodeToString(f->error_code()); |
| error_count_++; |
| } |
| - void OnDataFrameHeader(const SpdyDataFrame* frame) { |
| + virtual void OnDataFrameHeader(const SpdyDataFrame* frame) OVERRIDE { |
| data_frame_count_++; |
| header_stream_id_ = frame->stream_id(); |
| } |
| - void OnStreamFrameData(SpdyStreamId stream_id, |
| - const char* data, |
| - size_t len, |
| - SpdyDataFlags flags) { |
| + virtual void OnStreamFrameData(SpdyStreamId stream_id, |
| + const char* data, |
| + size_t len, |
| + SpdyDataFlags flags) OVERRIDE { |
| EXPECT_EQ(header_stream_id_, stream_id); |
| if (len == 0) |
| ++zero_length_data_frame_count_; |
| @@ -368,7 +371,7 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| SpdyPriority priority, |
| uint8 credential_slot, |
| bool fin, |
| - bool unidirectional) { |
| + bool unidirectional) OVERRIDE { |
| syn_frame_count_++; |
| InitHeaderStreaming(SYN_STREAM, stream_id); |
| if (fin) { |
| @@ -376,7 +379,7 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| } |
| } |
| - virtual void OnSynReply(SpdyStreamId stream_id, bool fin) { |
| + virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE { |
| syn_reply_frame_count_++; |
| InitHeaderStreaming(HEADERS, stream_id); |
| if (fin) { |
| @@ -384,7 +387,7 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| } |
| } |
| - virtual void OnHeaders(SpdyStreamId stream_id, bool fin) { |
| + virtual void OnHeaders(SpdyStreamId stream_id, bool fin) OVERRIDE { |
| headers_frame_count_++; |
| InitHeaderStreaming(SYN_REPLY, stream_id); |
| if (fin) { |
| @@ -392,36 +395,39 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| } |
| } |
| - virtual void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) { |
| + virtual void OnSetting( |
| + SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE { |
| setting_count_++; |
| } |
| virtual void OnControlFrameCompressed( |
| const SpdyControlFrame& uncompressed_frame, |
| - const SpdyControlFrame& compressed_frame) { |
| + const SpdyControlFrame& compressed_frame) OVERRIDE { |
| } |
| - virtual void OnPing(uint32 unique_id) { |
| + virtual void OnPing(uint32 unique_id) OVERRIDE { |
| DLOG(FATAL); |
| } |
| - virtual void OnRstStream(SpdyStreamId stream_id, SpdyStatusCodes status) { |
| + virtual void OnRstStream(SpdyStreamId stream_id, |
| + SpdyStatusCodes status) OVERRIDE { |
| fin_frame_count_++; |
| } |
| virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, |
| - SpdyGoAwayStatus status) { |
| + SpdyGoAwayStatus status) OVERRIDE { |
| goaway_count_++; |
| } |
| - virtual void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) { |
| + virtual void OnWindowUpdate(SpdyStreamId stream_id, |
| + int delta_window_size) OVERRIDE { |
| last_window_update_stream_ = stream_id; |
| last_window_update_delta_ = delta_window_size; |
| } |
| - bool OnControlFrameHeaderData(SpdyStreamId stream_id, |
| - const char* header_data, |
| - size_t len) { |
| + virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id, |
| + const char* header_data, |
| + size_t len) OVERRIDE { |
| ++control_frame_header_data_count_; |
| CHECK_EQ(header_stream_id_, stream_id); |
| if (len == 0) { |
| @@ -443,8 +449,8 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| return true; |
| } |
| - bool OnCredentialFrameData(const char* credential_data, |
| - size_t len) { |
| + virtual bool OnCredentialFrameData(const char* credential_data, |
| + size_t len) OVERRIDE { |
| if (len == 0) { |
| if (!framer_.ParseCredentialData(credential_buffer_.get(), |
| credential_buffer_length_, |
| @@ -464,6 +470,12 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| return true; |
| } |
| + virtual void OnCompressedHeaderBlock(size_t decompressed_size, |
| + size_t compressed_size) OVERRIDE { |
| + last_decompressed_size_ = decompressed_size; |
| + last_compressed_size_ = compressed_size; |
| + } |
| + |
| // Convenience function which runs a framer simulation with particular input. |
| void SimulateInFramer(const unsigned char* input, size_t size) { |
| framer_.set_enable_compression(use_compression_); |
| @@ -531,6 +543,8 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
| // The count of zero-length control frame header data chunks received. |
| int zero_length_control_frame_header_data_count_; |
| int data_frame_count_; |
| + size_t last_decompressed_size_; |
| + size_t last_compressed_size_; |
| // Header block streaming state: |
| scoped_array<char> header_buffer_; |
| @@ -892,7 +906,9 @@ TEST_P(SpdyFramerTest, BasicCompression) { |
| headers["content-type"] = "text/html"; |
| headers["content-length"] = "12"; |
| + TestSpdyVisitor visitor(spdy_version_); |
| SpdyFramer framer(spdy_version_); |
| + framer.set_debug_visitor(&visitor); |
| framer.set_enable_compression(true); |
| scoped_ptr<SpdySynStreamControlFrame> frame1( |
| framer.CreateSynStream(1, // stream id |
| @@ -902,6 +918,26 @@ TEST_P(SpdyFramerTest, BasicCompression) { |
| CONTROL_FLAG_NONE, |
| true, // compress |
| &headers)); |
| + if (IsSpdy2()) { |
| + EXPECT_EQ(139u, visitor.last_decompressed_size_); |
| + EXPECT_EQ( |
| +#if defined(USE_SYSTEM_ZLIB) |
| + 93u, |
|
akalin
2013/02/06 00:25:07
I do it this way instead of just copying the line
akalin
2013/02/06 00:29:01
Oh. looks like only "decompressed" actually chang
Ryan Hamilton
2013/02/06 00:32:30
Either way is fine with me.
|
| +#else // !defined(USE_SYSTEM_ZLIB) |
| + 135u, |
| +#endif // !defined(USE_SYSTEM_ZLIB) |
| + visitor.last_compressed_size_); |
| + EXPECT_EQ(135u, visitor.last_compressed_size_); |
| + } else { |
| + EXPECT_EQ(165u, visitor.last_decompressed_size_); |
| + EXPECT_EQ( |
| +#if defined(USE_SYSTEM_ZLIB) |
| + 72u, |
| +#else // !defined(USE_SYSTEM_ZLIB) |
| + 117u, |
| +#endif // !defined(USE_SYSTEM_ZLIB) |
| + visitor.last_compressed_size_); |
| + } |
| scoped_ptr<SpdySynStreamControlFrame> frame2( |
| framer.CreateSynStream(1, // stream id |
| 0, // associated stream id |