| Index: webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| diff --git a/webrtc/modules/pacing/bitrate_prober_unittest.cc b/webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| index c966f5cfa8deefb9abed4f977d4c91d0a400d47b..59ee479973d30bcc5e8fc6b161105dc60c60a50c 100644
|
| --- a/webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| +++ b/webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| @@ -24,9 +24,10 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) {
|
| prober.SetEnabled(true);
|
| EXPECT_FALSE(prober.IsProbing());
|
|
|
| - prober.MaybeInitializeProbe(300000);
|
| + prober.OnIncomingPacket(300000, 1000, now_ms);
|
| EXPECT_TRUE(prober.IsProbing());
|
|
|
| + // First packet should probe as soon as possible.
|
| EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
| prober.PacketSent(now_ms, 1000);
|
|
|
| @@ -48,4 +49,43 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) {
|
| EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms));
|
| EXPECT_FALSE(prober.IsProbing());
|
| }
|
| +
|
| +TEST(BitrateProberTest, DoesntProbeWithoutRecentPackets) {
|
| + BitrateProber prober;
|
| + EXPECT_FALSE(prober.IsProbing());
|
| + int64_t now_ms = 0;
|
| + EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms));
|
| +
|
| + prober.SetEnabled(true);
|
| + EXPECT_FALSE(prober.IsProbing());
|
| +
|
| + prober.OnIncomingPacket(300000, 1000, now_ms);
|
| + EXPECT_TRUE(prober.IsProbing());
|
| + EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
| + // Let time pass, no large enough packets put into prober.
|
| + now_ms += 6000;
|
| + EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms));
|
| + // Insert a small packet, not a candidate for probing.
|
| + prober.OnIncomingPacket(300000, 100, now_ms);
|
| + prober.PacketSent(now_ms, 100);
|
| + EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms));
|
| + // Insert a large-enough packet after downtime while probing should reset to
|
| + // perform a new probe since the requested one didn't finish.
|
| + prober.OnIncomingPacket(300000, 1000, now_ms);
|
| + EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
| + prober.PacketSent(now_ms, 1000);
|
| + // Next packet should be part of new probe and be sent with non-zero delay.
|
| + prober.OnIncomingPacket(300000, 1000, now_ms);
|
| + EXPECT_GT(prober.TimeUntilNextProbe(now_ms), 0);
|
| +}
|
| +
|
| +TEST(BitrateProberTest, DoesntInitializeProbingForSmallPackets) {
|
| + BitrateProber prober;
|
| + prober.SetEnabled(true);
|
| + EXPECT_FALSE(prober.IsProbing());
|
| +
|
| + prober.OnIncomingPacket(300000, 100, 0);
|
| + EXPECT_FALSE(prober.IsProbing());
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|