Allow QuicStream constructor to take parameter on static-ness when constructing from PendingStream.
gfe-relnote: API change and version 99 only. Not used in production.
PiperOrigin-RevId: 247323613
Change-Id: I0c57ce900130873cfc6f625e687e2e67c1ef5737
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc
index bfe88f7..9b32012 100644
--- a/quic/core/quic_stream_test.cc
+++ b/quic/core/quic_stream_test.cc
@@ -49,8 +49,8 @@
TestStream(QuicStreamId id, QuicSession* session, StreamType type)
: QuicStream(id, session, /*is_static=*/false, type) {}
- TestStream(PendingStream pending, StreamType type)
- : QuicStream(std::move(pending), type) {}
+ TestStream(PendingStream pending, StreamType type, bool is_static)
+ : QuicStream(std::move(pending), type, is_static) {}
void OnDataAvailable() override {}
@@ -171,6 +171,18 @@
QuicParameterizedStreamTest,
::testing::ValuesIn(AllSupportedVersions()));
+TEST_P(QuicStreamTest, PendingStreamStaticness) {
+ Initialize();
+
+ PendingStream pending(kTestStreamId + 2, session_.get());
+ TestStream stream(std::move(pending), StreamType::BIDIRECTIONAL, false);
+ EXPECT_FALSE(stream.is_static());
+
+ PendingStream pending2(kTestStreamId + 3, session_.get());
+ TestStream stream2(std::move(pending2), StreamType::BIDIRECTIONAL, true);
+ EXPECT_TRUE(stream2.is_static());
+}
+
TEST_P(QuicStreamTest, PendingStreamTooMuchData) {
Initialize();
@@ -228,7 +240,7 @@
QuicStreamFrame frame2(kTestStreamId + 2, true, 3, QuicStringPiece("."));
pending.OnStreamFrame(frame2);
- TestStream stream(std::move(pending), StreamType::READ_UNIDIRECTIONAL);
+ TestStream stream(std::move(pending), StreamType::READ_UNIDIRECTIONAL, false);
EXPECT_EQ(3, stream.num_frames_received());
EXPECT_EQ(3u, stream.stream_bytes_read());
EXPECT_EQ(1, stream.num_duplicate_frames_received());
@@ -247,8 +259,8 @@
QuicStreamFrame frame(kTestStreamId + 2, false, 2, QuicStringPiece("."));
pending.OnStreamFrame(frame);
- auto stream =
- new TestStream(std::move(pending), StreamType::READ_UNIDIRECTIONAL);
+ auto stream = new TestStream(std::move(pending),
+ StreamType::READ_UNIDIRECTIONAL, false);
session_->ActivateStream(QuicWrapUnique(stream));
QuicStreamFrame frame2(kTestStreamId + 2, true, 3, QuicStringPiece("."));