| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_connection.h" | 5 #include "net/quic/quic_connection.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <ostream> | 9 #include <ostream> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1604 | 1604 |
| 1605 TEST_P(QuicConnectionTest, AckAll) { | 1605 TEST_P(QuicConnectionTest, AckAll) { |
| 1606 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); | 1606 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
| 1607 ProcessPacket(kDefaultPathId, 1); | 1607 ProcessPacket(kDefaultPathId, 1); |
| 1608 | 1608 |
| 1609 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 1); | 1609 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 1); |
| 1610 QuicAckFrame frame1 = InitAckFrame(0); | 1610 QuicAckFrame frame1 = InitAckFrame(0); |
| 1611 ProcessAckPacket(&frame1); | 1611 ProcessAckPacket(&frame1); |
| 1612 } | 1612 } |
| 1613 | 1613 |
| 1614 TEST_P(QuicConnectionTest, SendingDifferentSequenceNumberLengthsBandwidth) { | |
| 1615 QuicPacketNumber last_packet; | |
| 1616 SendStreamDataToPeer(1, "foo", 0, !kFin, &last_packet); | |
| 1617 EXPECT_EQ(1u, last_packet); | |
| 1618 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1619 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1620 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1621 writer_->header().public_header.packet_number_length); | |
| 1622 | |
| 1623 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()) | |
| 1624 .WillRepeatedly(Return(kMaxPacketSize * 256)); | |
| 1625 | |
| 1626 SendStreamDataToPeer(1, "bar", 3, !kFin, &last_packet); | |
| 1627 EXPECT_EQ(2u, last_packet); | |
| 1628 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | |
| 1629 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1630 // The 1 packet lag is due to the packet number length being recalculated in | |
| 1631 // QuicConnection after a packet is sent. | |
| 1632 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1633 writer_->header().public_header.packet_number_length); | |
| 1634 | |
| 1635 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()) | |
| 1636 .WillRepeatedly(Return(kMaxPacketSize * 256 * 256)); | |
| 1637 | |
| 1638 SendStreamDataToPeer(1, "foo", 6, !kFin, &last_packet); | |
| 1639 EXPECT_EQ(3u, last_packet); | |
| 1640 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1641 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1642 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | |
| 1643 writer_->header().public_header.packet_number_length); | |
| 1644 | |
| 1645 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()) | |
| 1646 .WillRepeatedly(Return(kMaxPacketSize * 256 * 256 * 256)); | |
| 1647 | |
| 1648 SendStreamDataToPeer(1, "bar", 9, !kFin, &last_packet); | |
| 1649 EXPECT_EQ(4u, last_packet); | |
| 1650 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1651 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1652 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1653 writer_->header().public_header.packet_number_length); | |
| 1654 | |
| 1655 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()) | |
| 1656 .WillRepeatedly(Return(kMaxPacketSize * 256 * 256 * 256 * 256)); | |
| 1657 | |
| 1658 SendStreamDataToPeer(1, "foo", 12, !kFin, &last_packet); | |
| 1659 EXPECT_EQ(5u, last_packet); | |
| 1660 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER, | |
| 1661 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1662 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1663 writer_->header().public_header.packet_number_length); | |
| 1664 } | |
| 1665 | |
| 1666 // TODO(ianswett): Re-enable this test by finding a good way to test different | |
| 1667 // packet number lengths without sending packets with giant gaps. | |
| 1668 TEST_P(QuicConnectionTest, | |
| 1669 DISABLED_SendingDifferentSequenceNumberLengthsUnackedDelta) { | |
| 1670 QuicPacketNumber last_packet; | |
| 1671 SendStreamDataToPeer(1, "foo", 0, !kFin, &last_packet); | |
| 1672 EXPECT_EQ(1u, last_packet); | |
| 1673 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1674 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1675 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1676 writer_->header().public_header.packet_number_length); | |
| 1677 | |
| 1678 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 100); | |
| 1679 | |
| 1680 SendStreamDataToPeer(1, "bar", 3, !kFin, &last_packet); | |
| 1681 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | |
| 1682 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1683 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | |
| 1684 writer_->header().public_header.packet_number_length); | |
| 1685 | |
| 1686 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 100 * 256); | |
| 1687 | |
| 1688 SendStreamDataToPeer(1, "foo", 6, !kFin, &last_packet); | |
| 1689 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1690 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1691 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | |
| 1692 writer_->header().public_header.packet_number_length); | |
| 1693 | |
| 1694 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 100 * 256 * 256); | |
| 1695 | |
| 1696 SendStreamDataToPeer(1, "bar", 9, !kFin, &last_packet); | |
| 1697 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1698 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1699 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1700 writer_->header().public_header.packet_number_length); | |
| 1701 | |
| 1702 QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 100 * 256 * 256 * 256); | |
| 1703 | |
| 1704 SendStreamDataToPeer(1, "foo", 12, !kFin, &last_packet); | |
| 1705 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER, | |
| 1706 QuicPacketCreatorPeer::NextPacketNumberLength(creator_)); | |
| 1707 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, | |
| 1708 writer_->header().public_header.packet_number_length); | |
| 1709 } | |
| 1710 | |
| 1711 TEST_P(QuicConnectionTest, BasicSending) { | 1614 TEST_P(QuicConnectionTest, BasicSending) { |
| 1712 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); | 1615 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
| 1713 QuicPacketNumber last_packet; | 1616 QuicPacketNumber last_packet; |
| 1714 SendStreamDataToPeer(1, "foo", 0, !kFin, &last_packet); // Packet 1 | 1617 SendStreamDataToPeer(1, "foo", 0, !kFin, &last_packet); // Packet 1 |
| 1715 EXPECT_EQ(1u, last_packet); | 1618 EXPECT_EQ(1u, last_packet); |
| 1716 SendAckPacketToPeer(); // Packet 2 | 1619 SendAckPacketToPeer(); // Packet 2 |
| 1717 | 1620 |
| 1718 EXPECT_EQ(1u, least_unacked()); | 1621 EXPECT_EQ(1u, least_unacked()); |
| 1719 | 1622 |
| 1720 SendAckPacketToPeer(); // Packet 3 | 1623 SendAckPacketToPeer(); // Packet 3 |
| (...skipping 3351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5072 frame1_.data_length = data->length(); | 4975 frame1_.data_length = data->length(); |
| 5073 | 4976 |
| 5074 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_MAYBE_CORRUPTED_MEMORY, _, | 4977 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_MAYBE_CORRUPTED_MEMORY, _, |
| 5075 ConnectionCloseSource::FROM_SELF)); | 4978 ConnectionCloseSource::FROM_SELF)); |
| 5076 ProcessFramePacket(QuicFrame(&frame1_)); | 4979 ProcessFramePacket(QuicFrame(&frame1_)); |
| 5077 } | 4980 } |
| 5078 | 4981 |
| 5079 } // namespace | 4982 } // namespace |
| 5080 } // namespace test | 4983 } // namespace test |
| 5081 } // namespace net | 4984 } // namespace net |
| OLD | NEW |