OLD | NEW |
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/reliable_quic_stream.h" | 5 #include "net/quic/reliable_quic_stream.h" |
6 | 6 |
7 #include "net/quic/quic_ack_notifier.h" | 7 #include "net/quic/quic_ack_notifier.h" |
8 #include "net/quic/quic_connection.h" | 8 #include "net/quic/quic_connection.h" |
9 #include "net/quic/quic_utils.h" | 9 #include "net/quic/quic_utils.h" |
10 #include "net/quic/quic_write_blocked_list.h" | 10 #include "net/quic/quic_write_blocked_list.h" |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 QuicVersionVector supported_versions_; | 151 QuicVersionVector supported_versions_; |
152 const QuicStreamId kTestStreamId = 5u; | 152 const QuicStreamId kTestStreamId = 5u; |
153 }; | 153 }; |
154 | 154 |
155 TEST_F(ReliableQuicStreamTest, WriteAllData) { | 155 TEST_F(ReliableQuicStreamTest, WriteAllData) { |
156 Initialize(kShouldProcessData); | 156 Initialize(kShouldProcessData); |
157 | 157 |
158 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( | 158 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( |
159 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, | 159 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, |
160 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); | 160 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); |
161 connection_->set_max_packet_length(length); | 161 connection_->SetMaxPacketLength(length); |
162 | 162 |
163 EXPECT_CALL(*session_, WritevData(kTestStreamId, _, _, _, _, _)) | 163 EXPECT_CALL(*session_, WritevData(kTestStreamId, _, _, _, _, _)) |
164 .WillOnce(Return(QuicConsumedData(kDataLen, true))); | 164 .WillOnce(Return(QuicConsumedData(kDataLen, true))); |
165 stream_->WriteOrBufferData(kData1, false, nullptr); | 165 stream_->WriteOrBufferData(kData1, false, nullptr); |
166 EXPECT_FALSE(HasWriteBlockedStreams()); | 166 EXPECT_FALSE(HasWriteBlockedStreams()); |
167 } | 167 } |
168 | 168 |
169 TEST_F(ReliableQuicStreamTest, NoBlockingIfNoDataOrFin) { | 169 TEST_F(ReliableQuicStreamTest, NoBlockingIfNoDataOrFin) { |
170 Initialize(kShouldProcessData); | 170 Initialize(kShouldProcessData); |
171 | 171 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams()); | 210 ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams()); |
211 } | 211 } |
212 | 212 |
213 TEST_F(ReliableQuicStreamTest, WriteOrBufferData) { | 213 TEST_F(ReliableQuicStreamTest, WriteOrBufferData) { |
214 Initialize(kShouldProcessData); | 214 Initialize(kShouldProcessData); |
215 | 215 |
216 EXPECT_FALSE(HasWriteBlockedStreams()); | 216 EXPECT_FALSE(HasWriteBlockedStreams()); |
217 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( | 217 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( |
218 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, | 218 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, |
219 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); | 219 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); |
220 connection_->set_max_packet_length(length); | 220 connection_->SetMaxPacketLength(length); |
221 | 221 |
222 EXPECT_CALL(*session_, WritevData(_, _, _, _, _, _)).WillOnce( | 222 EXPECT_CALL(*session_, WritevData(_, _, _, _, _, _)).WillOnce( |
223 Return(QuicConsumedData(kDataLen - 1, false))); | 223 Return(QuicConsumedData(kDataLen - 1, false))); |
224 stream_->WriteOrBufferData(kData1, false, nullptr); | 224 stream_->WriteOrBufferData(kData1, false, nullptr); |
225 EXPECT_TRUE(HasWriteBlockedStreams()); | 225 EXPECT_TRUE(HasWriteBlockedStreams()); |
226 | 226 |
227 // Queue a bytes_consumed write. | 227 // Queue a bytes_consumed write. |
228 stream_->WriteOrBufferData(kData2, false, nullptr); | 228 stream_->WriteOrBufferData(kData2, false, nullptr); |
229 | 229 |
230 // Make sure we get the tail of the first write followed by the bytes_consumed | 230 // Make sure we get the tail of the first write followed by the bytes_consumed |
(...skipping 13 matching lines...) Expand all Loading... |
244 TEST_F(ReliableQuicStreamTest, WriteOrBufferDataWithFecProtectAlways) { | 244 TEST_F(ReliableQuicStreamTest, WriteOrBufferDataWithFecProtectAlways) { |
245 Initialize(kShouldProcessData); | 245 Initialize(kShouldProcessData); |
246 | 246 |
247 // Set FEC policy on stream. | 247 // Set FEC policy on stream. |
248 ReliableQuicStreamPeer::SetFecPolicy(stream_, FEC_PROTECT_ALWAYS); | 248 ReliableQuicStreamPeer::SetFecPolicy(stream_, FEC_PROTECT_ALWAYS); |
249 | 249 |
250 EXPECT_FALSE(HasWriteBlockedStreams()); | 250 EXPECT_FALSE(HasWriteBlockedStreams()); |
251 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( | 251 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( |
252 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, | 252 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, |
253 PACKET_6BYTE_PACKET_NUMBER, 0u, IN_FEC_GROUP); | 253 PACKET_6BYTE_PACKET_NUMBER, 0u, IN_FEC_GROUP); |
254 connection_->set_max_packet_length(length); | 254 connection_->SetMaxPacketLength(length); |
255 | 255 |
256 // Write first data onto stream, which will cause one session write. | 256 // Write first data onto stream, which will cause one session write. |
257 EXPECT_CALL(*session_, WritevData(_, _, _, _, MUST_FEC_PROTECT, _)).WillOnce( | 257 EXPECT_CALL(*session_, WritevData(_, _, _, _, MUST_FEC_PROTECT, _)).WillOnce( |
258 Return(QuicConsumedData(kDataLen - 1, false))); | 258 Return(QuicConsumedData(kDataLen - 1, false))); |
259 stream_->WriteOrBufferData(kData1, false, nullptr); | 259 stream_->WriteOrBufferData(kData1, false, nullptr); |
260 EXPECT_TRUE(HasWriteBlockedStreams()); | 260 EXPECT_TRUE(HasWriteBlockedStreams()); |
261 | 261 |
262 // Queue a bytes_consumed write. | 262 // Queue a bytes_consumed write. |
263 stream_->WriteOrBufferData(kData2, false, nullptr); | 263 stream_->WriteOrBufferData(kData2, false, nullptr); |
264 | 264 |
(...skipping 14 matching lines...) Expand all Loading... |
279 TEST_F(ReliableQuicStreamTest, WriteOrBufferDataWithFecProtectOptional) { | 279 TEST_F(ReliableQuicStreamTest, WriteOrBufferDataWithFecProtectOptional) { |
280 Initialize(kShouldProcessData); | 280 Initialize(kShouldProcessData); |
281 | 281 |
282 // Set FEC policy on stream. | 282 // Set FEC policy on stream. |
283 ReliableQuicStreamPeer::SetFecPolicy(stream_, FEC_PROTECT_OPTIONAL); | 283 ReliableQuicStreamPeer::SetFecPolicy(stream_, FEC_PROTECT_OPTIONAL); |
284 | 284 |
285 EXPECT_FALSE(HasWriteBlockedStreams()); | 285 EXPECT_FALSE(HasWriteBlockedStreams()); |
286 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( | 286 size_t length = 1 + QuicPacketCreator::StreamFramePacketOverhead( |
287 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, | 287 PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, |
288 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); | 288 PACKET_6BYTE_PACKET_NUMBER, 0u, NOT_IN_FEC_GROUP); |
289 connection_->set_max_packet_length(length); | 289 connection_->SetMaxPacketLength(length); |
290 | 290 |
291 // Write first data onto stream, which will cause one session write. | 291 // Write first data onto stream, which will cause one session write. |
292 EXPECT_CALL(*session_, WritevData(_, _, _, _, MAY_FEC_PROTECT, _)).WillOnce( | 292 EXPECT_CALL(*session_, WritevData(_, _, _, _, MAY_FEC_PROTECT, _)).WillOnce( |
293 Return(QuicConsumedData(kDataLen - 1, false))); | 293 Return(QuicConsumedData(kDataLen - 1, false))); |
294 stream_->WriteOrBufferData(kData1, false, nullptr); | 294 stream_->WriteOrBufferData(kData1, false, nullptr); |
295 EXPECT_TRUE(HasWriteBlockedStreams()); | 295 EXPECT_TRUE(HasWriteBlockedStreams()); |
296 | 296 |
297 // Queue a bytes_consumed write. | 297 // Queue a bytes_consumed write. |
298 stream_->WriteOrBufferData(kData2, false, nullptr); | 298 stream_->WriteOrBufferData(kData2, false, nullptr); |
299 | 299 |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 copt.push_back(kFSTR); | 706 copt.push_back(kFSTR); |
707 QuicConfigPeer::SetReceivedConnectionOptions(config, copt); | 707 QuicConfigPeer::SetReceivedConnectionOptions(config, copt); |
708 EXPECT_EQ(FEC_PROTECT_OPTIONAL, stream_->fec_policy()); | 708 EXPECT_EQ(FEC_PROTECT_OPTIONAL, stream_->fec_policy()); |
709 stream_->SetFromConfig(); | 709 stream_->SetFromConfig(); |
710 EXPECT_EQ(FEC_PROTECT_ALWAYS, stream_->fec_policy()); | 710 EXPECT_EQ(FEC_PROTECT_ALWAYS, stream_->fec_policy()); |
711 } | 711 } |
712 | 712 |
713 } // namespace | 713 } // namespace |
714 } // namespace test | 714 } // namespace test |
715 } // namespace net | 715 } // namespace net |
OLD | NEW |