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

Side by Side Diff: net/quic/quic_session_test.cc

Issue 559373003: Landing Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compiler errors Created 6 years, 3 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
« no previous file with comments | « net/quic/quic_session.cc ('k') | net/quic/quic_unacked_packet_map.h » ('j') | 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 "net/quic/quic_session.h" 5 #include "net/quic/quic_session.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 EXPECT_TRUE(session_.goaway_sent()); 576 EXPECT_TRUE(session_.goaway_sent());
577 session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away."); 577 session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away.");
578 } 578 }
579 579
580 TEST_P(QuicSessionTest, IncreasedTimeoutAfterCryptoHandshake) { 580 TEST_P(QuicSessionTest, IncreasedTimeoutAfterCryptoHandshake) {
581 // Add 1 to the connection timeout on the server side. 581 // Add 1 to the connection timeout on the server side.
582 EXPECT_EQ(kDefaultInitialTimeoutSecs + 1, 582 EXPECT_EQ(kDefaultInitialTimeoutSecs + 1,
583 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds()); 583 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
584 CryptoHandshakeMessage msg; 584 CryptoHandshakeMessage msg;
585 session_.GetCryptoStream()->OnHandshakeMessage(msg); 585 session_.GetCryptoStream()->OnHandshakeMessage(msg);
586 EXPECT_EQ(kDefaultTimeoutSecs + 1, 586 EXPECT_EQ(kMaximumIdleTimeoutSecs + 1,
587 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds()); 587 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
588 } 588 }
589 589
590 TEST_P(QuicSessionTest, RstStreamBeforeHeadersDecompressed) { 590 TEST_P(QuicSessionTest, RstStreamBeforeHeadersDecompressed) {
591 // Send two bytes of payload. 591 // Send two bytes of payload.
592 QuicStreamFrame data1(kClientDataStreamId1, false, 0, MakeIOVector("HT")); 592 QuicStreamFrame data1(kClientDataStreamId1, false, 0, MakeIOVector("HT"));
593 vector<QuicStreamFrame> frames; 593 vector<QuicStreamFrame> frames;
594 frames.push_back(data1); 594 frames.push_back(data1);
595 session_.OnStreamFrames(frames); 595 session_.OnStreamFrames(frames);
596 EXPECT_EQ(1u, session_.GetNumOpenStreams()); 596 EXPECT_EQ(1u, session_.GetNumOpenStreams());
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 session_.OnWindowUpdateFrames(frames); 927 session_.OnWindowUpdateFrames(frames);
928 EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked()); 928 EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
929 } 929 }
930 930
931 TEST_P(QuicSessionTest, TooManyUnfinishedStreamsCauseConnectionClose) { 931 TEST_P(QuicSessionTest, TooManyUnfinishedStreamsCauseConnectionClose) {
932 if (version() < QUIC_VERSION_18) { 932 if (version() < QUIC_VERSION_18) {
933 return; 933 return;
934 } 934 }
935 // If a buggy/malicious peer creates too many streams that are not ended with 935 // If a buggy/malicious peer creates too many streams that are not ended with
936 // a FIN or RST then we send a connection close. 936 // a FIN or RST then we send a connection close.
937 ValueRestore<bool> old_flag(&FLAGS_close_quic_connection_unfinished_streams, 937 ValueRestore<bool> old_flag(&FLAGS_close_quic_connection_unfinished_streams_2,
938 true); 938 true);
939 939
940 EXPECT_CALL(*connection_, 940 EXPECT_CALL(*connection_,
941 SendConnectionClose(QUIC_TOO_MANY_UNFINISHED_STREAMS)).Times(1); 941 SendConnectionClose(QUIC_TOO_MANY_UNFINISHED_STREAMS)).Times(1);
942 942
943 const int kMaxStreams = 5; 943 const int kMaxStreams = 5;
944 QuicSessionPeer::SetMaxOpenStreams(&session_, kMaxStreams); 944 QuicSessionPeer::SetMaxOpenStreams(&session_, kMaxStreams);
945 945
946 // Create kMaxStreams + 1 data streams, and close them all without receiving a 946 // Create kMaxStreams + 1 data streams, and close them all without receiving a
947 // FIN or a RST from the client. 947 // FIN or a RST from the client.
948 const int kFirstStreamId = kClientDataStreamId1; 948 const int kFirstStreamId = kClientDataStreamId1;
949 const int kFinalStreamId = kClientDataStreamId1 + 2 * kMaxStreams + 1; 949 const int kFinalStreamId = kClientDataStreamId1 + 2 * kMaxStreams + 1;
950 for (int i = kFirstStreamId; i < kFinalStreamId; i += 2) { 950 for (int i = kFirstStreamId; i < kFinalStreamId; i += 2) {
951 QuicStreamFrame data1(i, false, 0, MakeIOVector("HT")); 951 QuicStreamFrame data1(i, false, 0, MakeIOVector("HT"));
952 vector<QuicStreamFrame> frames; 952 vector<QuicStreamFrame> frames;
953 frames.push_back(data1); 953 frames.push_back(data1);
954 session_.OnStreamFrames(frames); 954 session_.OnStreamFrames(frames);
955 EXPECT_EQ(1u, session_.GetNumOpenStreams()); 955 EXPECT_EQ(1u, session_.GetNumOpenStreams());
956 session_.CloseStream(i); 956 session_.CloseStream(i);
957 } 957 }
958
959 // Called after any new data is received by the session, and triggers the call
960 // to close the connection.
961 session_.PostProcessAfterData();
958 } 962 }
959 963
960 } // namespace 964 } // namespace
961 } // namespace test 965 } // namespace test
962 } // namespace net 966 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_session.cc ('k') | net/quic/quic_unacked_packet_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698