| Index: webrtc/modules/pacing/paced_sender_unittest.cc
|
| diff --git a/webrtc/modules/pacing/paced_sender_unittest.cc b/webrtc/modules/pacing/paced_sender_unittest.cc
|
| index cc4769e66761170e879200ba6ad360cb6afe78a7..6c5e3df2809733d967f5b6124ad3b4802ab4ae81 100644
|
| --- a/webrtc/modules/pacing/paced_sender_unittest.cc
|
| +++ b/webrtc/modules/pacing/paced_sender_unittest.cc
|
| @@ -1046,5 +1046,32 @@ TEST_F(PacedSenderTest, ProbeClusterId) {
|
| send_bucket_->Process();
|
| }
|
|
|
| +TEST_F(PacedSenderTest, AvoidBusyLoopOnSendFailure) {
|
| + uint32_t ssrc = 12346;
|
| + uint16_t sequence_number = 1234;
|
| + const size_t kPacketSize = kFirstClusterBps / (8000 / 10);
|
| +
|
| + send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
|
| + send_bucket_->SetProbingEnabled(true);
|
| + send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
|
| + sequence_number, clock_.TimeInMilliseconds(),
|
| + kPacketSize, false);
|
| +
|
| + EXPECT_CALL(callback_, TimeToSendPacket(_, _, _, _, _))
|
| + .WillOnce(Return(true));
|
| + send_bucket_->Process();
|
| + EXPECT_EQ(10, send_bucket_->TimeUntilNextProcess());
|
| + clock_.AdvanceTimeMilliseconds(9);
|
| +
|
| + EXPECT_CALL(callback_, TimeToSendPadding(_, _))
|
| + .Times(2)
|
| + .WillRepeatedly(Return(0));
|
| + send_bucket_->Process();
|
| + EXPECT_EQ(1, send_bucket_->TimeUntilNextProcess());
|
| + clock_.AdvanceTimeMilliseconds(1);
|
| + send_bucket_->Process();
|
| + EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
|
| +}
|
| +
|
| } // namespace test
|
| } // namespace webrtc
|
|
|