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

Side by Side Diff: net/quic/core/quic_spdy_stream_test.cc

Issue 2916233002: Remove is_deletable_ from QuicStream. Add QuicStream::IsWaitingForAcks (Closed)
Patch Set: Created 3 years, 6 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 unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_session_test.cc ('k') | net/quic/core/quic_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/core/quic_spdy_stream.h" 5 #include "net/quic/core/quic_spdy_stream.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "net/quic/core/quic_connection.h" 10 #include "net/quic/core/quic_connection.h"
11 #include "net/quic/core/quic_utils.h" 11 #include "net/quic/core/quic_utils.h"
12 #include "net/quic/core/quic_write_blocked_list.h" 12 #include "net/quic/core/quic_write_blocked_list.h"
13 #include "net/quic/core/spdy_utils.h" 13 #include "net/quic/core/spdy_utils.h"
14 #include "net/quic/platform/api/quic_map_util.h"
14 #include "net/quic/platform/api/quic_ptr_util.h" 15 #include "net/quic/platform/api/quic_ptr_util.h"
15 #include "net/quic/platform/api/quic_string_piece.h" 16 #include "net/quic/platform/api/quic_string_piece.h"
16 #include "net/quic/platform/api/quic_test.h" 17 #include "net/quic/platform/api/quic_test.h"
17 #include "net/quic/platform/api/quic_text_utils.h" 18 #include "net/quic/platform/api/quic_text_utils.h"
18 #include "net/quic/test_tools/quic_flow_controller_peer.h" 19 #include "net/quic/test_tools/quic_flow_controller_peer.h"
20 #include "net/quic/test_tools/quic_session_peer.h"
19 #include "net/quic/test_tools/quic_spdy_session_peer.h" 21 #include "net/quic/test_tools/quic_spdy_session_peer.h"
20 #include "net/quic/test_tools/quic_stream_peer.h" 22 #include "net/quic/test_tools/quic_stream_peer.h"
21 #include "net/quic/test_tools/quic_test_utils.h" 23 #include "net/quic/test_tools/quic_test_utils.h"
22 24
23 using std::string; 25 using std::string;
24 using testing::AnyNumber; 26 using testing::AnyNumber;
25 using testing::Invoke; 27 using testing::Invoke;
26 using testing::Return; 28 using testing::Return;
27 using testing::StrictMock; 29 using testing::StrictMock;
28 using testing::_; 30 using testing::_;
(...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _)); 1002 EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _));
1001 session_->OnStreamFrameAcked(frame1, QuicTime::Delta::Zero()); 1003 session_->OnStreamFrameAcked(frame1, QuicTime::Delta::Zero());
1002 EXPECT_CALL(*ack_listener1, OnPacketAcked(5, _)); 1004 EXPECT_CALL(*ack_listener1, OnPacketAcked(5, _));
1003 session_->OnStreamFrameAcked(frame2, QuicTime::Delta::Zero()); 1005 session_->OnStreamFrameAcked(frame2, QuicTime::Delta::Zero());
1004 EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _)); 1006 EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _));
1005 session_->OnStreamFrameAcked(frame3, QuicTime::Delta::Zero()); 1007 session_->OnStreamFrameAcked(frame3, QuicTime::Delta::Zero());
1006 EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _)); 1008 EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _));
1007 session_->OnStreamFrameAcked(frame4, QuicTime::Delta::Zero()); 1009 session_->OnStreamFrameAcked(frame4, QuicTime::Delta::Zero());
1008 } 1010 }
1009 1011
1012 TEST_P(QuicSpdyStreamTest, StreamBecomesZombieWithWriteThatCloses) {
1013 Initialize(kShouldProcessData);
1014 if (!session_->use_stream_notifier()) {
1015 return;
1016 }
1017
1018 EXPECT_CALL(*session_, WritevData(_, _, _, _, _, _))
1019 .Times(AnyNumber())
1020 .WillRepeatedly(Invoke(MockQuicSession::ConsumeAllData));
1021 QuicStreamPeer::CloseReadSide(stream_);
1022 // This write causes stream to be closed.
1023 stream_->WriteOrBufferData("Test1", true, nullptr);
1024 // stream_ has unacked data and should become zombie.
1025 EXPECT_TRUE(QuicContainsKey(QuicSessionPeer::zombie_streams(session_.get()),
1026 stream_->id()));
1027 EXPECT_TRUE(QuicSessionPeer::closed_streams(session_.get()).empty());
1028 }
1029
1010 } // namespace 1030 } // namespace
1011 } // namespace test 1031 } // namespace test
1012 } // namespace net 1032 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_session_test.cc ('k') | net/quic/core/quic_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698