Index: net/quic/quic_connection_test.cc |
diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc |
index b002230e5c81d4f4a3eb0550f258512807a7665b..986cf45ada1f5609321354cc1a5e4c1ca65ae181 100644 |
--- a/net/quic/quic_connection_test.cc |
+++ b/net/quic/quic_connection_test.cc |
@@ -2742,162 +2742,21 @@ TEST_P(QuicConnectionTest, TimeoutAfterSend) { |
TEST_P(QuicConnectionTest, SendScheduler) { |
// Test that if we send a packet without delay, it is not queued. |
QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::Zero())); |
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)); |
connection_.SendPacket( |
ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
} |
-TEST_P(QuicConnectionTest, SendSchedulerDelay) { |
- // Test that if we send a packet with a delay, it ends up queued. |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(1))); |
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)).Times(0); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
-} |
- |
TEST_P(QuicConnectionTest, SendSchedulerEAGAIN) { |
QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
BlockOnNextWrite(); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::Zero())); |
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)).Times(0); |
connection_.SendPacket( |
ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
} |
-TEST_P(QuicConnectionTest, SendSchedulerDelayThenSend) { |
- // Test that if we send a packet with a delay, it ends up queued. |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(1))); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
- |
- // Advance the clock to fire the alarm, and configure the scheduler |
- // to permit the packet to be sent. |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillRepeatedly( |
- testing::Return(QuicTime::Delta::Zero())); |
- clock_.AdvanceTime(QuicTime::Delta::FromMicroseconds(1)); |
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)); |
- connection_.GetSendAlarm()->Fire(); |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
-} |
- |
-TEST_P(QuicConnectionTest, SendSchedulerDelayThenRetransmit) { |
- CongestionUnblockWrites(); |
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)); |
- connection_.SendStreamDataWithString(3, "foo", 0, !kFin, NULL); |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
- // Advance the time for retransmission of lost packet. |
- clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(501)); |
- // Test that if we send a retransmit with a delay, it ends up queued in the |
- // sent packet manager, but not yet serialized. |
- EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true)); |
- CongestionBlockWrites(); |
- connection_.GetRetransmissionAlarm()->Fire(); |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
- |
- // Advance the clock to fire the alarm, and configure the scheduler |
- // to permit the packet to be sent. |
- CongestionUnblockWrites(); |
- |
- // Ensure the scheduler is notified this is a retransmit. |
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)); |
- clock_.AdvanceTime(QuicTime::Delta::FromMicroseconds(1)); |
- connection_.GetSendAlarm()->Fire(); |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
-} |
- |
-TEST_P(QuicConnectionTest, SendSchedulerDelayAndQueue) { |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(1))); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
- |
- // Attempt to send another packet and make sure that it gets queued. |
- packet = ConstructDataPacket(2, 0, !kEntropyFlag); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 2, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(2u, connection_.NumQueuedPackets()); |
-} |
- |
-TEST_P(QuicConnectionTest, SendSchedulerDelayThenAckAndSend) { |
- EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(10))); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
- |
- // Now send non-retransmitting information, that we're not going to |
- // retransmit 3. The far end should stop waiting for it. |
- QuicAckFrame frame = InitAckFrame(0); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillRepeatedly( |
- testing::Return(QuicTime::Delta::Zero())); |
- EXPECT_CALL(*send_algorithm_, |
- OnPacketSent(_, _, _, _, _)); |
- ProcessAckPacket(&frame); |
- |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
- // Ensure alarm is not set |
- EXPECT_FALSE(connection_.GetSendAlarm()->IsSet()); |
-} |
- |
-TEST_P(QuicConnectionTest, SendSchedulerDelayThenAckAndHold) { |
- EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(10))); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
- |
- // Now send non-retransmitting information, that we're not going to |
- // retransmit 3. The far end should stop waiting for it. |
- QuicAckFrame frame = InitAckFrame(0); |
- EXPECT_CALL(*send_algorithm_, |
- TimeUntilSend(_, _, _)).WillOnce( |
- testing::Return(QuicTime::Delta::FromMicroseconds(1))); |
- ProcessAckPacket(&frame); |
- |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
-} |
- |
-TEST_P(QuicConnectionTest, SendSchedulerDelayThenOnCanWrite) { |
- // TODO(ianswett): This test is unrealistic, because we would not serialize |
- // new data if the send algorithm said not to. |
- QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); |
- CongestionBlockWrites(); |
- connection_.SendPacket( |
- ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); |
- EXPECT_EQ(1u, connection_.NumQueuedPackets()); |
- |
- // OnCanWrite should send the packet, because it won't consult the send |
- // algorithm for queued packets. |
- connection_.OnCanWrite(); |
- EXPECT_EQ(0u, connection_.NumQueuedPackets()); |
-} |
- |
TEST_P(QuicConnectionTest, TestQueueLimitsOnSendStreamData) { |
// All packets carry version info till version is negotiated. |
size_t payload_length; |