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..074964a0622d9f44ed284a2b9d3cbaea158d4b4d 100644 |
--- a/webrtc/modules/pacing/bitrate_prober_unittest.cc |
+++ b/webrtc/modules/pacing/bitrate_prober_unittest.cc |
@@ -27,6 +27,7 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) { |
prober.MaybeInitializeProbe(300000); |
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,28 @@ 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.MaybeInitializeProbe(300000); |
+ 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.PacketSent(now_ms, 100); |
+ EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms)); |
+ // Insert a large-enough packet. |
+ prober.PacketSent(now_ms, 1000); |
+ EXPECT_EQ(8, prober.TimeUntilNextProbe(now_ms)); |
+} |
+ |
} // namespace webrtc |