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

Side by Side Diff: net/spdy/spdy_framer_test.cc

Issue 12258006: Minor change in parsing of GOAWAY frames for correctness. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <iostream> 6 #include <iostream>
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 3541 matching lines...) Expand 10 before | Expand all | Expand 10 after
3552 const uint32 kFlags = 0x01; 3552 const uint32 kFlags = 0x01;
3553 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304); 3553 const uint32 kWireFormat = htonl(IsSpdy2() ? 0x04030201 : 0x01020304);
3554 3554
3555 SettingsFlagsAndId id_and_flags = 3555 SettingsFlagsAndId id_and_flags =
3556 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); 3556 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat);
3557 EXPECT_EQ(kId, id_and_flags.id()); 3557 EXPECT_EQ(kId, id_and_flags.id());
3558 EXPECT_EQ(kFlags, id_and_flags.flags()); 3558 EXPECT_EQ(kFlags, id_and_flags.flags());
3559 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); 3559 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_));
3560 } 3560 }
3561 3561
3562 // Tests handling of a GOAWAY frame with out-of-bounds stream ID.
3563 TEST_P(SpdyFramerTest, GoAwayStreamIdBounds) {
3564 const unsigned char kV2FrameData[] = {
3565 0x80, spdy_version_, 0x00, 0x07,
3566 0x00, 0x00, 0x00, 0x04,
3567 0xff, 0xff, 0xff, 0xff,
3568 };
3569 const unsigned char kV3FrameData[] = {
3570 0x80, spdy_version_, 0x00, 0x07,
3571 0x00, 0x00, 0x00, 0x08,
3572 0xff, 0xff, 0xff, 0xff,
3573 0x00, 0x00, 0x00, 0x00,
3574 };
3575
3576 testing::StrictMock<net::test::MockVisitor> visitor;
3577 SpdyFramer framer(spdy_version_);
3578 framer.set_visitor(&visitor);
3579
3580 EXPECT_CALL(visitor, OnGoAway(0x7fffffff, GOAWAY_OK));
3581 if (IsSpdy2()) {
3582 framer.ProcessInput(reinterpret_cast<const char*>(kV2FrameData),
3583 arraysize(kV2FrameData));
3584 } else {
3585 framer.ProcessInput(reinterpret_cast<const char*>(kV3FrameData),
3586 arraysize(kV3FrameData));
3587 }
3588 EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state());
3589 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code());
3590 }
3591
3562 } // namespace net 3592 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698