Avoid using QuicSession::CloseStream() in tests.
This is part of the effort to deprecate QuicSession::CloseStream()
Test only change. not protected.
PiperOrigin-RevId: 319107364
Change-Id: I57bf6509c4768b4170a37caad324c536465ba7f1
diff --git a/quic/core/http/quic_spdy_client_session_test.cc b/quic/core/http/quic_spdy_client_session_test.cc
index 21e5d96..535ecf5 100644
--- a/quic/core/http/quic_spdy_client_session_test.cc
+++ b/quic/core/http/quic_spdy_client_session_test.cc
@@ -288,7 +288,7 @@
// Close the stream, but without having received a FIN or a RST_STREAM
// or MAX_STREAMS (V99) and check that a new one can not be created.
- session_->CloseStream(stream->id());
+ session_->ResetStream(stream->id(), QUIC_STREAM_CANCELLED, 0);
EXPECT_EQ(1u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get()));
stream = session_->CreateOutgoingBidirectionalStream();
@@ -304,7 +304,7 @@
EXPECT_EQ(nullptr, session_->CreateOutgoingBidirectionalStream());
// Close the stream and receive an RST frame to remove the unfinished stream
- session_->CloseStream(stream->id());
+ session_->ResetStream(stream->id(), QUIC_STREAM_CANCELLED, 0);
session_->OnRstStream(QuicRstStreamFrame(kInvalidControlFrameId, stream->id(),
QUIC_RST_ACKNOWLEDGEMENT, 0));
// Check that a new one can be created.
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index b2bcaa3..febbe40 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -406,7 +406,12 @@
.WillRepeatedly(Invoke(&ClearControlFrame));
}
EXPECT_CALL(*connection_, OnStreamReset(id, _));
- session_.CloseStream(id);
+
+ // QPACK streams might write data upon stream reset. Let the test session
+ // handle the data.
+ session_.set_writev_consumes_all_data(true);
+
+ session_.ResetStream(id, QUIC_STREAM_CANCELLED, 0);
closed_streams_.insert(id);
}
@@ -1721,21 +1726,7 @@
for (QuicStreamId i = kFirstStreamId; i < kFinalStreamId; i += kNextId) {
QuicStreamFrame data1(i, false, 0, quiche::QuicheStringPiece("HT"));
session_.OnStreamFrame(data1);
- // EXPECT_EQ(1u, session_.GetNumOpenStreams());
- if (!VersionHasIetfQuicFrames(transport_version())) {
- EXPECT_CALL(*connection_, SendControlFrame(_))
- .WillOnce(Invoke(&ClearControlFrame));
- } else {
- // V99 has two frames, RST_STREAM and STOP_SENDING
- EXPECT_CALL(*connection_, SendControlFrame(_))
- .Times(2)
- .WillRepeatedly(Invoke(&ClearControlFrame));
- }
- // Close the stream only if not version 99. If we are version 99
- // then closing the stream opens up the available stream id space,
- // so we never bump into the limit.
- EXPECT_CALL(*connection_, OnStreamReset(i, _));
- session_.CloseStream(i);
+ CloseStream(i);
}
// Try and open a stream that exceeds the limit.
if (!VersionHasIetfQuicFrames(transport_version())) {
@@ -2082,9 +2073,7 @@
QuicStreamPeer::SetStreamBytesWritten(3, stream2);
EXPECT_TRUE(stream2->IsWaitingForAcks());
- EXPECT_CALL(*connection_, SendControlFrame(_));
- EXPECT_CALL(*connection_, OnStreamReset(stream2->id(), _));
- session_.CloseStream(stream2->id());
+ CloseStream(stream2->id());
EXPECT_FALSE(QuicContainsKey(session_.zombie_streams(), stream2->id()));
ASSERT_EQ(1u, session_.closed_streams()->size());
EXPECT_EQ(stream2->id(), session_.closed_streams()->front()->id());
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 12a4830..aa937a6 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -439,9 +439,12 @@
if (QuicUtils::GetStreamType(
id, session_.perspective(), session_.IsIncomingStream(id),
connection_->version()) == READ_UNIDIRECTIONAL) {
- // Verify reset is not sent for READ_UNIDIRECTIONAL streams.
- EXPECT_CALL(*connection_, SendControlFrame(_)).Times(0);
- EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(0);
+ // Verify STOP_SENDING but no RESET_STREAM is sent for
+ // READ_UNIDIRECTIONAL streams.
+ EXPECT_CALL(*connection_, SendControlFrame(_))
+ .Times(1)
+ .WillOnce(Invoke(&ClearControlFrame));
+ EXPECT_CALL(*connection_, OnStreamReset(id, _)).Times(1);
} else if (QuicUtils::GetStreamType(
id, session_.perspective(), session_.IsIncomingStream(id),
connection_->version()) == WRITE_UNIDIRECTIONAL) {
@@ -464,7 +467,7 @@
.WillOnce(Invoke(&ClearControlFrame));
EXPECT_CALL(*connection_, OnStreamReset(id, _));
}
- session_.CloseStream(id);
+ session_.ResetStream(id, QUIC_STREAM_CANCELLED, 0);
closed_streams_.insert(id);
}
@@ -1861,21 +1864,7 @@
i += QuicUtils::StreamIdDelta(connection_->transport_version())) {
QuicStreamFrame data1(i, false, 0, quiche::QuicheStringPiece("HT"));
session_.OnStreamFrame(data1);
- // EXPECT_EQ(1u, session_.GetNumOpenStreams());
- if (VersionHasIetfQuicFrames(transport_version())) {
- // Expect two control frames, RST STREAM and STOP SENDING
- EXPECT_CALL(*connection_, SendControlFrame(_))
- .Times(2)
- .WillRepeatedly(Invoke(&ClearControlFrame));
- } else {
- // Expect one control frame, just RST STREAM
- EXPECT_CALL(*connection_, SendControlFrame(_))
- .WillOnce(Invoke(&ClearControlFrame));
- }
- // Close stream. Should not make new streams available since
- // the stream is not finished.
- EXPECT_CALL(*connection_, OnStreamReset(i, _));
- session_.CloseStream(i);
+ CloseStream(i);
}
if (VersionHasIetfQuicFrames(transport_version())) {
@@ -2218,9 +2207,7 @@
QuicStreamPeer::SetStreamBytesWritten(3, stream2);
EXPECT_TRUE(stream2->IsWaitingForAcks());
- EXPECT_CALL(*connection_, SendControlFrame(_));
- EXPECT_CALL(*connection_, OnStreamReset(stream2->id(), _));
- session_.CloseStream(stream2->id());
+ CloseStream(stream2->id());
EXPECT_FALSE(QuicContainsKey(session_.zombie_streams(), stream2->id()));
ASSERT_EQ(1u, session_.closed_streams()->size());
EXPECT_EQ(stream2->id(), session_.closed_streams()->front()->id());
@@ -2471,7 +2458,7 @@
// Retransmit stream data causes connection close. Stream has not sent fin
// yet, so an RST is sent.
EXPECT_CALL(*stream, OnCanWrite()).WillOnce(Invoke([this, stream]() {
- session_.CloseStream(stream->id());
+ session_.ResetStream(stream->id(), QUIC_STREAM_CANCELLED, 0);
}));
if (VersionHasIetfQuicFrames(transport_version())) {
// Once for the RST_STREAM, once for the STOP_SENDING
@@ -2578,9 +2565,7 @@
TestStream* stream2 = session_.CreateOutgoingBidirectionalStream();
EXPECT_FALSE(stream2->IsWaitingForAcks());
- EXPECT_CALL(*connection_, SendControlFrame(_));
- EXPECT_CALL(*connection_, OnStreamReset(stream2->id(), _));
- session_.CloseStream(stream2->id());
+ CloseStream(stream2->id());
EXPECT_FALSE(QuicContainsKey(session_.zombie_streams(), stream2->id()));
EXPECT_EQ(1u, session_.closed_streams()->size());
EXPECT_TRUE(
@@ -2847,10 +2832,7 @@
TestStream* stream = session_.CreateOutgoingBidirectionalStream();
QuicStreamId stream_id = stream->id();
- // Expect these as side effect of closing the stream.
- EXPECT_CALL(*connection_, SendControlFrame(_));
- EXPECT_CALL(*connection_, OnStreamReset(_, _));
- session_.CloseStream(stream_id);
+ CloseStream(stream_id);
QuicStopSendingFrame frame(1, stream_id, 123);
EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
session_.OnStopSendingFrame(frame);
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc
index 356a77d..a991a52 100644
--- a/quic/core/quic_stream_test.cc
+++ b/quic/core/quic_stream_test.cc
@@ -130,7 +130,7 @@
StreamSendingState /*state*/,
TransmissionType /*type*/,
quiche::QuicheOptional<EncryptionLevel> /*level*/) {
- session_->CloseStream(id);
+ session_->ResetStream(id, QUIC_STREAM_CANCELLED, 0);
return QuicConsumedData(1, false);
}