#include "quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h"
#include <algorithm>
#include <cstdint>
#include <memory>
#include <utility>
#include "quiche/quic/core/congestion_control/rtt_stats.h"
#include "quiche/quic/core/congestion_control/send_algorithm_interface.h"
#include "quiche/quic/core/crypto/crypto_protocol.h"
#include "quiche/quic/core/quic_packets.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/mock_clock.h"
#include "quiche/quic/test_tools/quic_config_peer.h"
namespace quic {
namespace test {
const uint32_t kInitialCongestionWindowPackets = …;
const uint32_t kMaxCongestionWindowPackets = …;
const uint32_t kDefaultWindowTCP = …;
const float kRenoBeta = …;
class TcpCubicSenderBytesPeer : public TcpCubicSenderBytes { … };
class TcpCubicSenderBytesTest : public QuicTest { … };
TEST_F(TcpCubicSenderBytesTest, SimpleSender) { … }
TEST_F(TcpCubicSenderBytesTest, ApplicationLimitedSlowStart) { … }
TEST_F(TcpCubicSenderBytesTest, ExponentialSlowStart) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartPacketLoss) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartPacketLossWithLargeReduction) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartHalfPacketLossWithLargeReduction) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartPacketLossWithMaxHalfReduction) { … }
TEST_F(TcpCubicSenderBytesTest, NoPRRWhenLessThanOnePacketInFlight) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartPacketLossPRR) { … }
TEST_F(TcpCubicSenderBytesTest, SlowStartBurstPacketLossPRR) { … }
TEST_F(TcpCubicSenderBytesTest, RTOCongestionWindow) { … }
TEST_F(TcpCubicSenderBytesTest, RTOCongestionWindowNoRetransmission) { … }
TEST_F(TcpCubicSenderBytesTest, TcpCubicResetEpochOnQuiescence) { … }
TEST_F(TcpCubicSenderBytesTest, MultipleLossesInOneWindow) { … }
TEST_F(TcpCubicSenderBytesTest, ConfigureMaxInitialWindow) { … }
TEST_F(TcpCubicSenderBytesTest, SetInitialCongestionWindow) { … }
TEST_F(TcpCubicSenderBytesTest, 2ConnectionCongestionAvoidanceAtEndOfRecovery) { … }
TEST_F(TcpCubicSenderBytesTest, 1ConnectionCongestionAvoidanceAtEndOfRecovery) { … }
TEST_F(TcpCubicSenderBytesTest, BandwidthResumption) { … }
TEST_F(TcpCubicSenderBytesTest, PaceBelowCWND) { … }
TEST_F(TcpCubicSenderBytesTest, NoPRR) { … }
TEST_F(TcpCubicSenderBytesTest, ResetAfterConnectionMigration) { … }
TEST_F(TcpCubicSenderBytesTest, DefaultMaxCwnd) { … }
TEST_F(TcpCubicSenderBytesTest, LimitCwndIncreaseInCongestionAvoidance) { … }
}
}