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

Side by Side Diff: net/quic/quic_sent_packet_manager_test.cc

Issue 287583002: Revert of Fix a bug where if a crypto packet is spuriously retransmitted (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_session.cc » ('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/quic_sent_packet_manager.h" 5 #include "net/quic/quic_sent_packet_manager.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/test_tools/quic_config_peer.h" 8 #include "net/quic/test_tools/quic_config_peer.h"
9 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" 9 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
10 #include "net/quic/test_tools/quic_test_utils.h" 10 #include "net/quic/test_tools/quic_test_utils.h"
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 181 }
182 182
183 void SendCryptoPacket(QuicPacketSequenceNumber sequence_number) { 183 void SendCryptoPacket(QuicPacketSequenceNumber sequence_number) {
184 EXPECT_CALL(*send_algorithm_, 184 EXPECT_CALL(*send_algorithm_,
185 OnPacketSent(_, BytesInFlight(), sequence_number, 185 OnPacketSent(_, BytesInFlight(), sequence_number,
186 kDefaultLength, HAS_RETRANSMITTABLE_DATA)) 186 kDefaultLength, HAS_RETRANSMITTABLE_DATA))
187 .Times(1).WillOnce(Return(true)); 187 .Times(1).WillOnce(Return(true));
188 SerializedPacket packet(CreateDataPacket(sequence_number)); 188 SerializedPacket packet(CreateDataPacket(sequence_number));
189 packet.retransmittable_frames->AddStreamFrame( 189 packet.retransmittable_frames->AddStreamFrame(
190 new QuicStreamFrame(1, false, 0, IOVector())); 190 new QuicStreamFrame(1, false, 0, IOVector()));
191 packet.retransmittable_frames->set_encryption_level(ENCRYPTION_NONE);
192 manager_.OnSerializedPacket(packet); 191 manager_.OnSerializedPacket(packet);
193 manager_.OnPacketSent(sequence_number, clock_.ApproximateNow(), 192 manager_.OnPacketSent(sequence_number, clock_.ApproximateNow(),
194 packet.packet->length(), NOT_RETRANSMISSION, 193 packet.packet->length(), NOT_RETRANSMISSION,
195 HAS_RETRANSMITTABLE_DATA); 194 HAS_RETRANSMITTABLE_DATA);
196 } 195 }
197 196
198 void SendFecPacket(QuicPacketSequenceNumber sequence_number) { 197 void SendFecPacket(QuicPacketSequenceNumber sequence_number) {
199 EXPECT_CALL(*send_algorithm_, 198 EXPECT_CALL(*send_algorithm_,
200 OnPacketSent(_, BytesInFlight(), sequence_number, 199 OnPacketSent(_, BytesInFlight(), sequence_number,
201 kDefaultLength, NO_RETRANSMITTABLE_DATA)) 200 kDefaultLength, NO_RETRANSMITTABLE_DATA))
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 // Now retransmit all the unacked packets, which occurs when there is a 971 // Now retransmit all the unacked packets, which occurs when there is a
973 // version negotiation. 972 // version negotiation.
974 manager_.RetransmitUnackedPackets(ALL_PACKETS); 973 manager_.RetransmitUnackedPackets(ALL_PACKETS);
975 QuicPacketSequenceNumber unacked[] = { 1, 2 }; 974 QuicPacketSequenceNumber unacked[] = { 1, 2 };
976 VerifyUnackedPackets(unacked, arraysize(unacked)); 975 VerifyUnackedPackets(unacked, arraysize(unacked));
977 EXPECT_TRUE(manager_.HasPendingRetransmissions()); 976 EXPECT_TRUE(manager_.HasPendingRetransmissions());
978 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_)); 977 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
979 EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_)); 978 EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
980 } 979 }
981 980
982 TEST_F(QuicSentPacketManagerTest,
983 CryptoHandshakeRetransmissionThenAbandonAll) {
984 // Send 1 crypto packet.
985 SendCryptoPacket(1);
986 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
987
988 // Retransmit the crypto packet as 2.
989 manager_.OnRetransmissionTimeout();
990 RetransmitNextPacket(2);
991
992 // Now discard all unacked unencrypted packets, which occurs when the
993 // connection goes forward secure.
994 manager_.DiscardUnencryptedPackets();
995 VerifyUnackedPackets(NULL, 0);
996 EXPECT_FALSE(manager_.HasPendingRetransmissions());
997 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
998 EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
999 }
1000
1001 TEST_F(QuicSentPacketManagerTest, TailLossProbeTimeoutUnsentDataPacket) { 981 TEST_F(QuicSentPacketManagerTest, TailLossProbeTimeoutUnsentDataPacket) {
1002 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); 982 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
1003 // Serialize two data packets and send the latter. 983 // Serialize two data packets and send the latter.
1004 SerializedPacket packet(CreateDataPacket(1)); 984 SerializedPacket packet(CreateDataPacket(1));
1005 manager_.OnSerializedPacket(packet); 985 manager_.OnSerializedPacket(packet);
1006 SendDataPacket(2); 986 SendDataPacket(2);
1007 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_)); 987 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1008 EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_)); 988 EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
1009 989
1010 // Retransmit 1 unacked packets, but not the first serialized packet. 990 // Retransmit 1 unacked packets, but not the first serialized packet.
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 1190
1211 EXPECT_EQ(kTime, 1191 EXPECT_EQ(kTime,
1212 QuicSentPacketManagerPeer::GetLossAlgorithm( 1192 QuicSentPacketManagerPeer::GetLossAlgorithm(
1213 &manager_)->GetLossDetectionType()); 1193 &manager_)->GetLossDetectionType());
1214 } 1194 }
1215 1195
1216 1196
1217 } // namespace 1197 } // namespace
1218 } // namespace test 1198 } // namespace test
1219 } // namespace net 1199 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698