#include "quiche/quic/core/congestion_control/bbr_sender.h"
#include <algorithm>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include "quiche/quic/core/congestion_control/rtt_stats.h"
#include "quiche/quic/core/crypto/crypto_protocol.h"
#include "quiche/quic/core/quic_bandwidth.h"
#include "quiche/quic/core/quic_packets.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/platform/api/quic_flags.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"
#include "quiche/quic/test_tools/quic_connection_peer.h"
#include "quiche/quic/test_tools/quic_sent_packet_manager_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/test_tools/send_algorithm_test_result.pb.h"
#include "quiche/quic/test_tools/send_algorithm_test_utils.h"
#include "quiche/quic/test_tools/simulator/quic_endpoint.h"
#include "quiche/quic/test_tools/simulator/simulator.h"
#include "quiche/quic/test_tools/simulator/switch.h"
#include "quiche/common/platform/api/quiche_command_line_flags.h"
AllOf;
Ge;
Le;
DEFINE_QUICHE_COMMAND_LINE_FLAG(…);
namespace quic {
namespace test {
const uint32_t kInitialCongestionWindowPackets = …;
const uint32_t kDefaultWindowTCP = …;
const QuicBandwidth kTestLinkBandwidth = …;
const QuicBandwidth kLocalLinkBandwidth = …;
const QuicTime::Delta kTestPropagationDelay = …;
const QuicTime::Delta kLocalPropagationDelay = …;
const QuicTime::Delta kTestTransferTime = …;
const QuicTime::Delta kTestRtt = …;
const QuicByteCount kTestBdp = …;
class BbrSenderTest : public QuicTest { … };
TEST_F(BbrSenderTest, SetInitialCongestionWindow) { … }
TEST_F(BbrSenderTest, SimpleTransfer) { … }
TEST_F(BbrSenderTest, SimpleTransferBBRB) { … }
TEST_F(BbrSenderTest, SimpleTransferSmallBuffer) { … }
TEST_F(BbrSenderTest, RemoveBytesLostInRecovery) { … }
TEST_F(BbrSenderTest, SimpleTransfer2RTTAggregationBytes) { … }
TEST_F(BbrSenderTest, SimpleTransferAckDecimation) { … }
TEST_F(BbrSenderTest, QUIC_TEST_DISABLED_IN_CHROME(
SimpleTransfer2RTTAggregationBytes20RTTWindow)) { … }
TEST_F(BbrSenderTest, SimpleTransfer2RTTAggregationBytes40RTTWindow) { … }
TEST_F(BbrSenderTest, PacketLossOnSmallBufferStartup) { … }
TEST_F(BbrSenderTest, PacketLossOnSmallBufferStartupDerivedCWNDGain) { … }
TEST_F(BbrSenderTest, RecoveryStates) { … }
TEST_F(BbrSenderTest, ApplicationLimitedBursts) { … }
TEST_F(BbrSenderTest, ApplicationLimitedBurstsWithoutPrior) { … }
TEST_F(BbrSenderTest, Drain) { … }
TEST_F(BbrSenderTest, DISABLED_ShallowDrain) { … }
TEST_F(BbrSenderTest, ProbeRtt) { … }
TEST_F(BbrSenderTest, QUIC_TEST_DISABLED_IN_CHROME(InFlightAwareGainCycling)) { … }
TEST_F(BbrSenderTest, NoBandwidthDropOnStartup) { … }
TEST_F(BbrSenderTest, SimpleTransfer1RTTStartup) { … }
TEST_F(BbrSenderTest, SimpleTransfer2RTTStartup) { … }
TEST_F(BbrSenderTest, SimpleTransferExitStartupOnLoss) { … }
TEST_F(BbrSenderTest, SimpleTransferExitStartupOnLossSmallBuffer) { … }
TEST_F(BbrSenderTest, DerivedPacingGainStartup) { … }
TEST_F(BbrSenderTest, DerivedCWNDGainStartup) { … }
TEST_F(BbrSenderTest, AckAggregationInStartup) { … }
TEST_F(BbrSenderTest, SimpleCompetition) { … }
TEST_F(BbrSenderTest, ResumeConnectionState) { … }
TEST_F(BbrSenderTest, ProbeRTTMinCWND1) { … }
TEST_F(BbrSenderTest, StartupStats) { … }
TEST_F(BbrSenderTest, RecalculatePacingRateOnCwndChange1RTT) { … }
TEST_F(BbrSenderTest, RecalculatePacingRateOnCwndChange0RTT) { … }
TEST_F(BbrSenderTest, MitigateCwndBootstrappingOvershoot) { … }
TEST_F(BbrSenderTest, 200InitialCongestionWindowWithNetworkParameterAdjusted) { … }
TEST_F(BbrSenderTest, 100InitialCongestionWindowFromNetworkParameter) { … }
TEST_F(BbrSenderTest, 100InitialCongestionWindowWithNetworkParameterAdjusted) { … }
TEST_F(BbrSenderTest, LossOnlyCongestionEvent) { … }
TEST_F(BbrSenderTest, EnableOvershootingDetection) { … }
}
}