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

Unified Diff: net/spdy/buffered_spdy_framer_unittest.cc

Issue 1360253002: Log GOAWAY frame debug data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re: #7. Created 5 years, 2 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
Index: net/spdy/buffered_spdy_framer_unittest.cc
diff --git a/net/spdy/buffered_spdy_framer_unittest.cc b/net/spdy/buffered_spdy_framer_unittest.cc
index 5f05fa1d2085180e5a9424625fd118da30193e2f..aa1b2aba80958d8746af71b38a29420e6341e9b1 100644
--- a/net/spdy/buffered_spdy_framer_unittest.cc
+++ b/net/spdy/buffered_spdy_framer_unittest.cc
@@ -21,9 +21,9 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
syn_reply_frame_count_(0),
headers_frame_count_(0),
push_promise_frame_count_(0),
+ goaway_count_(0),
header_stream_id_(static_cast<SpdyStreamId>(-1)),
- promised_stream_id_(static_cast<SpdyStreamId>(-1)) {
- }
+ promised_stream_id_(static_cast<SpdyStreamId>(-1)) {}
void OnError(SpdyFramer::SpdyError error_code) override {
LOG(INFO) << "SpdyFramer Error: " << error_code;
@@ -100,7 +100,13 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
SpdyRstStreamStatus status) override {}
void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) override {}
+ SpdyGoAwayStatus status,
+ StringPiece debug_data) override {
+ goaway_count_++;
+ goaway_last_accepted_stream_id_ = last_accepted_stream_id;
+ goaway_status_ = status;
+ goaway_debug_data_.assign(debug_data.data(), debug_data.size());
+ }
bool OnCredentialFrameData(const char*, size_t) {
LOG(FATAL) << "Unexpected OnCredentialFrameData call.";
@@ -162,6 +168,7 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
int syn_reply_frame_count_;
int headers_frame_count_;
int push_promise_frame_count_;
+ int goaway_count_;
// Header block streaming state:
SpdyStreamId header_stream_id_;
@@ -170,6 +177,11 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
// Headers from OnSyn, OnSynReply, OnHeaders and OnPushPromise for
// verification.
SpdyHeaderBlock headers_;
+
+ // OnGoAway parameters.
+ SpdyStreamId goaway_last_accepted_stream_id_;
+ SpdyGoAwayStatus goaway_status_;
+ std::string goaway_debug_data_;
};
} // namespace
@@ -340,4 +352,22 @@ TEST_P(BufferedSpdyFramerTest, ReadPushPromiseHeaderBlock) {
EXPECT_EQ(2u, visitor.promised_stream_id_);
}
+TEST_P(BufferedSpdyFramerTest, GoAwayDebugData) {
+ if (spdy_version() < HTTP2)
+ return;
+ BufferedSpdyFramer framer(spdy_version(), true);
+ scoped_ptr<SpdyFrame> goaway_frame(
+ framer.CreateGoAway(2u, GOAWAY_FRAME_SIZE_ERROR, "foo"));
+
+ TestBufferedSpdyVisitor visitor(spdy_version());
+ visitor.SimulateInFramer(
+ reinterpret_cast<unsigned char*>(goaway_frame.get()->data()),
+ goaway_frame.get()->size());
+ EXPECT_EQ(0, visitor.error_count_);
+ EXPECT_EQ(1, visitor.goaway_count_);
+ EXPECT_EQ(2u, visitor.goaway_last_accepted_stream_id_);
+ EXPECT_EQ(GOAWAY_FRAME_SIZE_ERROR, visitor.goaway_status_);
+ EXPECT_EQ("foo", visitor.goaway_debug_data_);
+}
+
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698