| Index: net/quic/quic_connection_test.cc
|
| diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
|
| index fddf22a32127c84de4f2434fcc69822ea528caea..4f1e97a13496fc1c424015944173dd4d06335ffe 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -1314,6 +1314,49 @@ TEST_P(QuicConnectionTest, LeastUnackedLower) {
|
| ProcessStopWaitingPacket(&frame3);
|
| }
|
|
|
| +TEST_P(QuicConnectionTest, TooManySentPackets) {
|
| + EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| +
|
| + for (int i = 0; i < 1100; ++i) {
|
| + SendStreamDataToPeer(1, "foo", 3 * i, !kFin, nullptr);
|
| + }
|
| +
|
| + // Ack packet 1, which leaves more than the limit outstanding.
|
| + EXPECT_CALL(*send_algorithm_, OnCongestionEvent(true, _, _, _));
|
| + if (FLAGS_quic_too_many_outstanding_packets) {
|
| + EXPECT_CALL(visitor_,
|
| + OnConnectionClosed(QUIC_TOO_MANY_OUTSTANDING_SENT_PACKETS,
|
| + false));
|
| + EXPECT_CALL(visitor_, OnCanWrite()).Times(0);
|
| + } else {
|
| + EXPECT_CALL(visitor_, OnCanWrite()).Times(1);
|
| + }
|
| + // Nack every packet except the last one, leaving a huge gap.
|
| + QuicAckFrame frame1 = InitAckFrame(1100);
|
| + for (QuicPacketSequenceNumber i = 1; i < 1100; ++i) {
|
| + NackPacket(i, &frame1);
|
| + }
|
| + ProcessAckPacket(&frame1);
|
| +}
|
| +
|
| +TEST_P(QuicConnectionTest, TooManyReceivedPackets) {
|
| + EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| +
|
| + if (FLAGS_quic_too_many_outstanding_packets) {
|
| + EXPECT_CALL(visitor_,
|
| + OnConnectionClosed(QUIC_TOO_MANY_OUTSTANDING_RECEIVED_PACKETS,
|
| + false));
|
| + }
|
| +
|
| + // Miss every other packet for 1000 packets.
|
| + for (QuicPacketSequenceNumber i = 1; i < 1000; ++i) {
|
| + ProcessPacket(i * 2);
|
| + if (!connection_.connected()) {
|
| + break;
|
| + }
|
| + }
|
| +}
|
| +
|
| TEST_P(QuicConnectionTest, LargestObservedLower) {
|
| EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
|
|
|
|