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

Unified Diff: net/quic/core/quic_session_test.cc

Issue 2862563003: Landing Recent QUIC changes until Sat Apr 29 00:22:04 2017 +0000 (Closed)
Patch Set: rebase and fix test bugs detected by swarm bot. Created 3 years, 7 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
« no previous file with comments | « net/quic/core/quic_session.cc ('k') | net/quic/core/quic_spdy_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/quic_session_test.cc
diff --git a/net/quic/core/quic_session_test.cc b/net/quic/core/quic_session_test.cc
index cf0879560ac9406dccdea89208db62cced7c40eb..a5025626fb99d3bf2a228eb55515006a4c0a4537 100644
--- a/net/quic/core/quic_session_test.cc
+++ b/net/quic/core/quic_session_test.cc
@@ -72,6 +72,10 @@ class TestCryptoStream : public QuicCryptoStream {
session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
}
+ void set_encryption_established(bool value) {
+ encryption_established_ = value;
+ }
+
MOCK_METHOD0(OnCanWrite, void());
};
@@ -159,6 +163,15 @@ class TestSession : public QuicSpdySession {
bool ShouldCreateOutgoingDynamicStream() override { return true; }
+ TestStream* MaybeCreateOutgoingDynamicStream(SpdyPriority priority) override {
+ return static_cast<TestStream*>(
+ QuicSpdySession::MaybeCreateOutgoingDynamicStream(priority));
+ }
+
+ std::unique_ptr<QuicStream> CreateStream(QuicStreamId id) override {
+ return QuicMakeUnique<TestStream>(id, this);
+ }
+
bool IsClosedStream(QuicStreamId id) {
return QuicSession::IsClosedStream(id);
}
@@ -263,6 +276,9 @@ class QuicSessionTestBase : public QuicTestWithParam<QuicVersion> {
"EFFlEYHsBQ98rXImL8ySDycdLEFvBPdtctPmWCfTxwmoSMLHU2SCVDhbqMWU5b0yr"
"JBCScs_ejbKaqBDoB7ZGxTvqlrB__2ZmnHHjCr8RgMRtKNtIeuZAo ";
connection_->AdvanceTime(QuicTime::Delta::FromSeconds(1));
+ if (FLAGS_quic_reloadable_flag_quic_refactor_stream_creation) {
+ session_.GetMutableCryptoStream()->set_encryption_established(true);
+ }
}
void CheckClosedStreams() {
@@ -283,6 +299,16 @@ class QuicSessionTestBase : public QuicTestWithParam<QuicVersion> {
QuicVersion version() const { return connection_->version(); }
+ QuicStreamId GetNthClientInitiatedId(int n) {
+ return QuicSpdySessionPeer::GetNthClientInitiatedStreamId(session_, n);
+ }
+
+ QuicStreamId GetNthServerInitiatedId(int n) {
+ return QuicSpdySessionPeer::GetNthServerInitiatedStreamId(session_, n);
+ }
+
+ QuicStreamId NextId() { return QuicSpdySessionPeer::NextStreamId(session_); }
+
MockQuicConnectionHelper helper_;
MockAlarmFactory alarm_factory_;
StrictMock<MockQuicConnection>* connection_;
@@ -330,20 +356,21 @@ TEST_P(QuicSessionTestServer, AvailableStreams) {
TEST_P(QuicSessionTestServer, IsClosedStreamLocallyCreated) {
TestStream* stream2 = session_.CreateOutgoingDynamicStream(kDefaultPriority);
- EXPECT_EQ(2u, stream2->id());
- TestStream* stream4 = session_.CreateOutgoingDynamicStream(kDefaultPriority);
- EXPECT_EQ(4u, stream4->id());
+ EXPECT_EQ(GetNthServerInitiatedId(0), stream2->id());
+ QuicSpdyStream* stream4 =
+ session_.CreateOutgoingDynamicStream(kDefaultPriority);
+ EXPECT_EQ(GetNthServerInitiatedId(1), stream4->id());
CheckClosedStreams();
- CloseStream(4);
+ CloseStream(GetNthServerInitiatedId(0));
CheckClosedStreams();
- CloseStream(2);
+ CloseStream(GetNthServerInitiatedId(1));
CheckClosedStreams();
}
TEST_P(QuicSessionTestServer, IsClosedStreamPeerCreated) {
- QuicStreamId stream_id1 = kClientDataStreamId1;
- QuicStreamId stream_id2 = kClientDataStreamId2;
+ QuicStreamId stream_id1 = GetNthClientInitiatedId(0);
+ QuicStreamId stream_id2 = GetNthClientInitiatedId(1);
session_.GetOrCreateDynamicStream(stream_id1);
session_.GetOrCreateDynamicStream(stream_id2);
@@ -360,7 +387,7 @@ TEST_P(QuicSessionTestServer, IsClosedStreamPeerCreated) {
}
TEST_P(QuicSessionTestServer, MaximumAvailableOpenedStreams) {
- QuicStreamId stream_id = kClientDataStreamId1;
+ QuicStreamId stream_id = GetNthClientInitiatedId(0);
session_.GetOrCreateDynamicStream(stream_id);
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
EXPECT_NE(nullptr,
@@ -369,11 +396,11 @@ TEST_P(QuicSessionTestServer, MaximumAvailableOpenedStreams) {
}
TEST_P(QuicSessionTestServer, TooManyAvailableStreams) {
- QuicStreamId stream_id1 = kClientDataStreamId1;
+ QuicStreamId stream_id1 = GetNthClientInitiatedId(0);
QuicStreamId stream_id2;
EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id1));
// A stream ID which is too large to create.
- stream_id2 = stream_id1 + 2 * session_.MaxAvailableStreams() + 4;
+ stream_id2 = GetNthClientInitiatedId(2 * session_.MaxAvailableStreams() + 4);
EXPECT_CALL(*connection_,
CloseConnection(QUIC_TOO_MANY_AVAILABLE_STREAMS, _, _));
EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id2));
@@ -383,7 +410,7 @@ TEST_P(QuicSessionTestServer, ManyAvailableStreams) {
// When max_open_streams_ is 200, should be able to create 200 streams
// out-of-order, that is, creating the one with the largest stream ID first.
QuicSessionPeer::SetMaxOpenIncomingStreams(&session_, 200);
- QuicStreamId stream_id = kClientDataStreamId1;
+ QuicStreamId stream_id = GetNthClientInitiatedId(0);
// Create one stream.
session_.GetOrCreateDynamicStream(stream_id);
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
@@ -397,8 +424,10 @@ TEST_P(QuicSessionTestServer, DebugDFatalIfMarkingClosedStreamWriteBlocked) {
// Close the stream.
EXPECT_CALL(*connection_, SendRstStream(closed_stream_id, _, _));
stream2->Reset(QUIC_BAD_APPLICATION_PAYLOAD);
+ string msg =
+ QuicStrCat("Marking unknown stream ", closed_stream_id, " blocked.");
EXPECT_QUIC_BUG(session_.MarkConnectionLevelWriteBlocked(closed_stream_id),
- "Marking unknown stream 2 blocked.");
+ msg);
}
TEST_P(QuicSessionTestServer, OnCanWrite) {
@@ -800,13 +829,14 @@ TEST_P(QuicSessionTestServer, IncreasedTimeoutAfterCryptoHandshake) {
TEST_P(QuicSessionTestServer, RstStreamBeforeHeadersDecompressed) {
// Send two bytes of payload.
- QuicStreamFrame data1(kClientDataStreamId1, false, 0, QuicStringPiece("HT"));
+ QuicStreamFrame data1(GetNthClientInitiatedId(0), false, 0,
+ QuicStringPiece("HT"));
session_.OnStreamFrame(data1);
EXPECT_EQ(1u, session_.GetNumOpenIncomingStreams());
- EXPECT_CALL(*connection_, SendRstStream(kClientDataStreamId1, _, _));
- QuicRstStreamFrame rst1(kClientDataStreamId1, QUIC_ERROR_PROCESSING_STREAM,
- 0);
+ EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0), _, _));
+ QuicRstStreamFrame rst1(GetNthClientInitiatedId(0),
+ QUIC_ERROR_PROCESSING_STREAM, 0);
session_.OnRstStream(rst1);
EXPECT_EQ(0u, session_.GetNumOpenIncomingStreams());
// Connection should remain alive.
@@ -1155,12 +1185,12 @@ TEST_P(QuicSessionTestServer, TooManyUnfinishedStreamsCauseServerRejectStream) {
// with a FIN or RST then we send an RST to refuse streams.
const QuicStreamId kMaxStreams = 5;
QuicSessionPeer::SetMaxOpenIncomingStreams(&session_, kMaxStreams);
- const QuicStreamId kFirstStreamId = kClientDataStreamId1;
- const QuicStreamId kFinalStreamId = kClientDataStreamId1 + 2 * kMaxStreams;
-
+ const QuicStreamId kFirstStreamId = GetNthClientInitiatedId(0);
+ const QuicStreamId kFinalStreamId = GetNthClientInitiatedId(kMaxStreams);
// Create kMaxStreams data streams, and close them all without receiving a
// FIN or a RST_STREAM from the client.
- for (QuicStreamId i = kFirstStreamId; i < kFinalStreamId; i += 2) {
+ const QuicStreamId kNextId = QuicSpdySessionPeer::NextStreamId(session_);
+ for (QuicStreamId i = kFirstStreamId; i < kFinalStreamId; i += kNextId) {
QuicStreamFrame data1(i, false, 0, QuicStringPiece("HT"));
session_.OnStreamFrame(data1);
// EXPECT_EQ(1u, session_.GetNumOpenStreams());
@@ -1189,10 +1219,10 @@ TEST_P(QuicSessionTestServer, DrainingStreamsDoNotCountAsOpened) {
QuicSessionPeer::SetMaxOpenIncomingStreams(&session_, kMaxStreams);
// Create kMaxStreams + 1 data streams, and mark them draining.
- const QuicStreamId kFirstStreamId = kClientDataStreamId1;
+ const QuicStreamId kFirstStreamId = GetNthClientInitiatedId(0);
const QuicStreamId kFinalStreamId =
- kClientDataStreamId1 + 2 * kMaxStreams + 1;
- for (QuicStreamId i = kFirstStreamId; i < kFinalStreamId; i += 2) {
+ GetNthClientInitiatedId(2 * kMaxStreams + 1);
+ for (QuicStreamId i = kFirstStreamId; i < kFinalStreamId; i += NextId()) {
QuicStreamFrame data1(i, true, 0, QuicStringPiece("HT"));
session_.OnStreamFrame(data1);
EXPECT_EQ(1u, session_.GetNumOpenIncomingStreams());
« no previous file with comments | « net/quic/core/quic_session.cc ('k') | net/quic/core/quic_spdy_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698