| 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 bf00a052379bce02945bd2996431d05c8cf97307..588bf3b669976042e9de5011778b8be2d8e0c7ed 100644
|
| --- a/webrtc/modules/pacing/paced_sender_unittest.cc
|
| +++ b/webrtc/modules/pacing/paced_sender_unittest.cc
|
| @@ -471,13 +471,15 @@ TEST_F(PacedSenderTest, Priority) {
|
| sequence_number++, capture_time_ms, 250, false);
|
| send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
|
| sequence_number++, capture_time_ms, 250, false);
|
| + send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
|
| + sequence_number++, capture_time_ms, 250, false);
|
| send_bucket_->InsertPacket(PacedSender::kHighPriority, ssrc,
|
| sequence_number++, capture_time_ms, 250, false);
|
|
|
| // Expect all high and normal priority to be sent out first.
|
| EXPECT_CALL(callback_, TimeToSendPadding(_)).Times(0);
|
| EXPECT_CALL(callback_, TimeToSendPacket(ssrc, _, capture_time_ms, false))
|
| - .Times(3)
|
| + .Times(4)
|
| .WillRepeatedly(Return(true));
|
|
|
| EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
|
| @@ -497,6 +499,37 @@ TEST_F(PacedSenderTest, Priority) {
|
| EXPECT_EQ(0, send_bucket_->Process());
|
| }
|
|
|
| +TEST_F(PacedSenderTest, HighPrioDoesntAffectBudget) {
|
| + uint32_t ssrc = 12346;
|
| + uint16_t sequence_number = 1234;
|
| + int64_t capture_time_ms = 56789;
|
| +
|
| + // As high prio packets doesn't affect the budget, we should be able to send
|
| + // a high number of them at once.
|
| + for (int i = 0; i < 25; ++i) {
|
| + SendAndExpectPacket(PacedSender::kHighPriority, ssrc, sequence_number++,
|
| + capture_time_ms, 250, false);
|
| + }
|
| + send_bucket_->Process();
|
| + // Low prio packets does affect the budget, so we should only be able to send
|
| + // 3 at once, the 4th should be queued.
|
| + for (int i = 0; i < 3; ++i) {
|
| + SendAndExpectPacket(PacedSender::kLowPriority, ssrc, sequence_number++,
|
| + capture_time_ms, 250, false);
|
| + }
|
| + send_bucket_->InsertPacket(PacedSender::kLowPriority, ssrc, sequence_number,
|
| + capture_time_ms, 250, false);
|
| + EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
|
| + clock_.AdvanceTimeMilliseconds(5);
|
| + send_bucket_->Process();
|
| + EXPECT_CALL(callback_,
|
| + TimeToSendPacket(ssrc, sequence_number++, capture_time_ms, false))
|
| + .Times(1);
|
| + EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
|
| + clock_.AdvanceTimeMilliseconds(5);
|
| + send_bucket_->Process();
|
| +}
|
| +
|
| TEST_F(PacedSenderTest, Pause) {
|
| uint32_t ssrc_low_priority = 12345;
|
| uint32_t ssrc = 12346;
|
| @@ -837,10 +870,11 @@ TEST_F(PacedSenderTest, AverageQueueTime) {
|
| EXPECT_EQ(0, send_bucket_->AverageQueueTimeMs());
|
|
|
| int64_t first_capture_time = clock_.TimeInMilliseconds();
|
| - send_bucket_->InsertPacket(PacedSender::kHighPriority, ssrc, sequence_number,
|
| - first_capture_time, kPacketSize, false);
|
| + send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
|
| + sequence_number, first_capture_time, kPacketSize,
|
| + false);
|
| clock_.AdvanceTimeMilliseconds(10);
|
| - send_bucket_->InsertPacket(PacedSender::kHighPriority, ssrc,
|
| + send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
|
| sequence_number + 1, clock_.TimeInMilliseconds(),
|
| kPacketSize, false);
|
| clock_.AdvanceTimeMilliseconds(10);
|
|
|