| 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 b5bc889014382e4581ca088a4ba9e86689ed5b02..d36d8108b946427f8c155dfe6eeda0b9f3650367 100644
|
| --- a/webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| +++ b/webrtc/modules/pacing/bitrate_prober_unittest.cc
|
| @@ -27,8 +27,8 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) {
|
| const int kProbeSize = 1000;
|
| const int kMinProbeDurationMs = 15;
|
|
|
| - prober.CreateProbeCluster(kTestBitrate1);
|
| - prober.CreateProbeCluster(kTestBitrate2);
|
| + prober.CreateProbeCluster(kTestBitrate1, now_ms);
|
| + prober.CreateProbeCluster(kTestBitrate2, now_ms);
|
| EXPECT_FALSE(prober.IsProbing());
|
|
|
| prober.OnIncomingPacket(kProbeSize);
|
| @@ -78,7 +78,7 @@ TEST(BitrateProberTest, DoesntProbeWithoutRecentPackets) {
|
| int64_t now_ms = 0;
|
| EXPECT_EQ(-1, prober.TimeUntilNextProbe(now_ms));
|
|
|
| - prober.CreateProbeCluster(900000);
|
| + prober.CreateProbeCluster(900000, now_ms);
|
| EXPECT_FALSE(prober.IsProbing());
|
|
|
| prober.OnIncomingPacket(1000);
|
| @@ -111,7 +111,7 @@ TEST(BitrateProberTest, VerifyProbeSizeOnHighBitrate) {
|
| BitrateProber prober;
|
| constexpr unsigned kHighBitrateBps = 10000000; // 10 Mbps
|
|
|
| - prober.CreateProbeCluster(kHighBitrateBps);
|
| + prober.CreateProbeCluster(kHighBitrateBps, 0);
|
| // Probe size should ensure a minimum of 1 ms interval.
|
| EXPECT_GT(prober.RecommendedMinProbeSize(), kHighBitrateBps / 8000);
|
| }
|
| @@ -123,7 +123,7 @@ TEST(BitrateProberTest, MinumumNumberOfProbingPackets) {
|
| constexpr int kBitrateBps = 100000; // 100 kbps
|
| constexpr int kPacketSizeBytes = 1000;
|
|
|
| - prober.CreateProbeCluster(kBitrateBps);
|
| + prober.CreateProbeCluster(kBitrateBps, 0);
|
| prober.OnIncomingPacket(kPacketSizeBytes);
|
| for (int i = 0; i < 5; ++i) {
|
| EXPECT_TRUE(prober.IsProbing());
|
| @@ -139,7 +139,7 @@ TEST(BitrateProberTest, ScaleBytesUsedForProbing) {
|
| constexpr int kPacketSizeBytes = 1000;
|
| constexpr int kExpectedBytesSent = kBitrateBps * 15 / 8000;
|
|
|
| - prober.CreateProbeCluster(kBitrateBps);
|
| + prober.CreateProbeCluster(kBitrateBps, 0);
|
| prober.OnIncomingPacket(kPacketSizeBytes);
|
| int bytes_sent = 0;
|
| while (bytes_sent < kExpectedBytesSent) {
|
| @@ -151,4 +151,33 @@ TEST(BitrateProberTest, ScaleBytesUsedForProbing) {
|
| EXPECT_FALSE(prober.IsProbing());
|
| }
|
|
|
| +TEST(BitrateProberTest, ProbeClusterTimeout) {
|
| + BitrateProber prober;
|
| + constexpr int kBitrateBps = 300000; // 300 kbps
|
| + constexpr int kSmallPacketSize = 20;
|
| + // Expecting two probe clusters of 5 packets each.
|
| + constexpr int kExpectedBytesSent = 20 * 2 * 5;
|
| + constexpr int64_t kTimeoutMs = 5000;
|
| +
|
| + int64_t now_ms = 0;
|
| + prober.CreateProbeCluster(kBitrateBps, now_ms);
|
| + prober.OnIncomingPacket(kSmallPacketSize);
|
| + EXPECT_FALSE(prober.IsProbing());
|
| + now_ms += kTimeoutMs;
|
| + prober.CreateProbeCluster(kBitrateBps / 10, now_ms);
|
| + prober.OnIncomingPacket(kSmallPacketSize);
|
| + EXPECT_FALSE(prober.IsProbing());
|
| + now_ms += 1;
|
| + prober.CreateProbeCluster(kBitrateBps / 10, now_ms);
|
| + prober.OnIncomingPacket(kSmallPacketSize);
|
| + EXPECT_TRUE(prober.IsProbing());
|
| + int bytes_sent = 0;
|
| + while (bytes_sent < kExpectedBytesSent) {
|
| + ASSERT_TRUE(prober.IsProbing());
|
| + prober.ProbeSent(0, kSmallPacketSize);
|
| + bytes_sent += kSmallPacketSize;
|
| + }
|
| +
|
| + EXPECT_FALSE(prober.IsProbing());
|
| +}
|
| } // namespace webrtc
|
|
|