| Index: net/quic/reliable_quic_stream_test.cc
|
| diff --git a/net/quic/reliable_quic_stream_test.cc b/net/quic/reliable_quic_stream_test.cc
|
| index 4d71ca2556adbc8a104f6824730a9450340d6581..1153c3593e278014f0447f11cb8a2820fe13bf87 100644
|
| --- a/net/quic/reliable_quic_stream_test.cc
|
| +++ b/net/quic/reliable_quic_stream_test.cc
|
| @@ -43,9 +43,7 @@ const bool kShouldProcessData = true;
|
|
|
| class TestStream : public ReliableQuicStream {
|
| public:
|
| - TestStream(QuicStreamId id,
|
| - QuicSession* session,
|
| - bool should_process_data)
|
| + TestStream(QuicStreamId id, QuicSession* session, bool should_process_data)
|
| : ReliableQuicStream(id, session),
|
| should_process_data_(should_process_data) {}
|
|
|
| @@ -119,10 +117,10 @@ class ReliableQuicStreamTest : public ::testing::TestWithParam<bool> {
|
| QuicConfigPeer::SetReceivedInitialFlowControlWindow(
|
| session_->config(), initial_flow_control_window_bytes_);
|
|
|
| - stream_.reset(new TestStream(kStreamId, session_.get(),
|
| - stream_should_process_data));
|
| - stream2_.reset(new TestStream(kStreamId + 2, session_.get(),
|
| - stream_should_process_data));
|
| + stream_.reset(
|
| + new TestStream(kStreamId, session_.get(), stream_should_process_data));
|
| + stream2_.reset(new TestStream(
|
| + kStreamId + 2, session_.get(), stream_should_process_data));
|
| write_blocked_list_ =
|
| QuicSessionPeer::GetWriteblockedStreams(session_.get());
|
| }
|
| @@ -150,11 +148,14 @@ TEST_F(ReliableQuicStreamTest, WriteAllData) {
|
| Initialize(kShouldProcessData);
|
|
|
| connection_->options()->max_packet_length =
|
| - 1 + QuicPacketCreator::StreamFramePacketOverhead(
|
| - connection_->version(), PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
|
| - PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP);
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(kDataLen, true)));
|
| + 1 +
|
| + QuicPacketCreator::StreamFramePacketOverhead(connection_->version(),
|
| + PACKET_8BYTE_CONNECTION_ID,
|
| + !kIncludeVersion,
|
| + PACKET_6BYTE_SEQUENCE_NUMBER,
|
| + NOT_IN_FEC_GROUP);
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(kDataLen, true)));
|
| stream_->WriteOrBufferData(kData1, false, NULL);
|
| EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
|
| }
|
| @@ -173,13 +174,12 @@ TEST_F(ReliableQuicStreamTest, BlockIfOnlySomeDataConsumed) {
|
|
|
| // Write some data and no fin. If we consume some but not all of the data,
|
| // we should be write blocked a not all the data was consumed.
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(1, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(1, false)));
|
| stream_->WriteOrBufferData(StringPiece(kData1, 2), false, NULL);
|
| ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
|
| }
|
|
|
| -
|
| TEST_F(ReliableQuicStreamTest, BlockIfFinNotConsumedWithData) {
|
| Initialize(kShouldProcessData);
|
|
|
| @@ -187,8 +187,8 @@ TEST_F(ReliableQuicStreamTest, BlockIfFinNotConsumedWithData) {
|
| // we should be write blocked because the fin was not consumed.
|
| // (This should never actually happen as the fin should be sent out with the
|
| // last data)
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(2, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(2, false)));
|
| stream_->WriteOrBufferData(StringPiece(kData1, 2), true, NULL);
|
| ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
|
| }
|
| @@ -198,8 +198,8 @@ TEST_F(ReliableQuicStreamTest, BlockIfSoloFinNotConsumed) {
|
|
|
| // Write no data and a fin. If we consume nothing we should be write blocked,
|
| // as the fin was not consumed.
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(0, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(0, false)));
|
| stream_->WriteOrBufferData(StringPiece(), true, NULL);
|
| ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
|
| }
|
| @@ -209,11 +209,14 @@ TEST_F(ReliableQuicStreamTest, WriteOrBufferData) {
|
|
|
| EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
|
| connection_->options()->max_packet_length =
|
| - 1 + QuicPacketCreator::StreamFramePacketOverhead(
|
| - connection_->version(), PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
|
| - PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP);
|
| - EXPECT_CALL(*session_, WritevData(_, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(kDataLen - 1, false)));
|
| + 1 +
|
| + QuicPacketCreator::StreamFramePacketOverhead(connection_->version(),
|
| + PACKET_8BYTE_CONNECTION_ID,
|
| + !kIncludeVersion,
|
| + PACKET_6BYTE_SEQUENCE_NUMBER,
|
| + NOT_IN_FEC_GROUP);
|
| + EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(kDataLen - 1, false)));
|
| stream_->WriteOrBufferData(kData1, false, NULL);
|
| EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| @@ -222,15 +225,15 @@ TEST_F(ReliableQuicStreamTest, WriteOrBufferData) {
|
|
|
| // Make sure we get the tail of the first write followed by the bytes_consumed
|
| InSequence s;
|
| - EXPECT_CALL(*session_, WritevData(_, _, _, _, _)).
|
| - WillOnce(Return(QuicConsumedData(1, false)));
|
| - EXPECT_CALL(*session_, WritevData(_, _, _, _, _)).
|
| - WillOnce(Return(QuicConsumedData(kDataLen - 2, false)));
|
| + EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(1, false)));
|
| + EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(kDataLen - 2, false)));
|
| stream_->OnCanWrite();
|
|
|
| // And finally the end of the bytes_consumed.
|
| - EXPECT_CALL(*session_, WritevData(_, _, _, _, _)).
|
| - WillOnce(Return(QuicConsumedData(2, true)));
|
| + EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(2, true)));
|
| stream_->OnCanWrite();
|
| }
|
|
|
| @@ -256,8 +259,8 @@ TEST_F(ReliableQuicStreamTest, RstAlwaysSentIfNoFinSent) {
|
| EXPECT_FALSE(rst_sent());
|
|
|
| // Write some data, with no FIN.
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(1, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(1, false)));
|
| stream_->WriteOrBufferData(StringPiece(kData1, 1), false, NULL);
|
| EXPECT_FALSE(fin_sent());
|
| EXPECT_FALSE(rst_sent());
|
| @@ -279,8 +282,8 @@ TEST_F(ReliableQuicStreamTest, RstNotSentIfFinSent) {
|
| EXPECT_FALSE(rst_sent());
|
|
|
| // Write some data, with FIN.
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(1, true)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(1, true)));
|
| stream_->WriteOrBufferData(StringPiece(kData1, 1), true, NULL);
|
| EXPECT_TRUE(fin_sent());
|
| EXPECT_FALSE(rst_sent());
|
| @@ -397,27 +400,24 @@ TEST_F(ReliableQuicStreamTest, WriteOrBufferDataWithQuicAckNotifier) {
|
|
|
| scoped_refptr<QuicAckNotifier::DelegateInterface> proxy_delegate;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kFirstWriteSize, false))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kFirstWriteSize, false))));
|
| stream_->WriteOrBufferData(kData, false, delegate.get());
|
| EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get())).
|
| - WillOnce(
|
| - Return(QuicConsumedData(kSecondWriteSize, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get()))
|
| + .WillOnce(Return(QuicConsumedData(kSecondWriteSize, false)));
|
| stream_->OnCanWrite();
|
|
|
| // No ack expected for an empty write.
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get())).
|
| - WillOnce(
|
| - Return(QuicConsumedData(0, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get()))
|
| + .WillOnce(Return(QuicConsumedData(0, false)));
|
| stream_->OnCanWrite();
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get())).
|
| - WillOnce(
|
| - Return(QuicConsumedData(kLastWriteSize, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, proxy_delegate.get()))
|
| + .WillOnce(Return(QuicConsumedData(kLastWriteSize, false)));
|
| stream_->OnCanWrite();
|
|
|
| // There were two writes, so OnAckNotification is not propagated
|
| @@ -449,10 +449,10 @@ TEST_F(ReliableQuicStreamTest, WriteOrBufferDataAckNotificationBeforeFlush) {
|
|
|
| scoped_refptr<QuicAckNotifier::DelegateInterface> proxy_delegate;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kInitialWriteSize, false))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kInitialWriteSize, false))));
|
| stream_->WriteOrBufferData(kData, false, delegate.get());
|
| EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| @@ -460,10 +460,10 @@ TEST_F(ReliableQuicStreamTest, WriteOrBufferDataAckNotificationBeforeFlush) {
|
| proxy_delegate->OnAckNotification(1, 2, 3, 4, zero_);
|
| proxy_delegate = NULL;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kDataSize - kInitialWriteSize, false))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| + DoAll(WithArgs<4>(Invoke(
|
| + CreateFunctor(&SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kDataSize - kInitialWriteSize, false))));
|
| stream_->OnCanWrite();
|
|
|
| // Handle the ack for the second write.
|
| @@ -480,10 +480,10 @@ TEST_F(ReliableQuicStreamTest, WriteAndBufferDataWithAckNotiferNoBuffer) {
|
|
|
| scoped_refptr<QuicAckNotifier::DelegateInterface> proxy_delegate;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kDataLen, true))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kDataLen, true))));
|
| stream_->WriteOrBufferData(kData1, true, delegate.get());
|
| EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| @@ -501,15 +501,15 @@ TEST_F(ReliableQuicStreamTest, BufferOnWriteAndBufferDataWithAckNotifer) {
|
|
|
| scoped_refptr<QuicAckNotifier::DelegateInterface> proxy_delegate;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(
|
| - Return(QuicConsumedData(0, false)));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(Return(QuicConsumedData(0, false)));
|
| stream_->WriteOrBufferData(kData1, true, delegate.get());
|
| EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kDataLen, true))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kDataLen, true))));
|
| stream_->OnCanWrite();
|
|
|
| // Handle the ack.
|
| @@ -527,17 +527,17 @@ TEST_F(ReliableQuicStreamTest, WriteAndBufferDataWithAckNotiferOnlyFinRemains) {
|
|
|
| scoped_refptr<QuicAckNotifier::DelegateInterface> proxy_delegate;
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(kDataLen, false))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(kDataLen, false))));
|
| stream_->WriteOrBufferData(kData1, true, delegate.get());
|
| EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
|
|
|
| - EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _)).WillOnce(DoAll(
|
| - WithArgs<4>(Invoke(CreateFunctor(
|
| - &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| - Return(QuicConsumedData(0, true))));
|
| + EXPECT_CALL(*session_, WritevData(kStreamId, _, _, _, _))
|
| + .WillOnce(DoAll(WithArgs<4>(Invoke(CreateFunctor(
|
| + &SaveProxyAckNotifierDelegate, &proxy_delegate))),
|
| + Return(QuicConsumedData(0, true))));
|
| stream_->OnCanWrite();
|
|
|
| // Handle the acks.
|
|
|