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 |