Reduce flakiness of NetworkEmulationManagerTest.ThroughputStats
Bug: webrtc:10138, webrtc:10553
Change-Id: Id7027b94b3a6c072ee48c1291b638f2dc8b8b095
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133164
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27949}
diff --git a/test/scenario/network/BUILD.gn b/test/scenario/network/BUILD.gn
index 1f690c5..7b4b504 100644
--- a/test/scenario/network/BUILD.gn
+++ b/test/scenario/network/BUILD.gn
@@ -64,6 +64,7 @@
deps = [
":emulated_network",
"../../../api:simulated_network_api",
+ "../../../api/units:time_delta",
"../../../call:simulated_network",
"../../../rtc_base:gunit_helpers",
"../../../rtc_base:logging",
diff --git a/test/scenario/network/network_emulation_unittest.cc b/test/scenario/network/network_emulation_unittest.cc
index 6abd40d..87b2b22 100644
--- a/test/scenario/network/network_emulation_unittest.cc
+++ b/test/scenario/network/network_emulation_unittest.cc
@@ -13,6 +13,7 @@
#include "absl/memory/memory.h"
#include "api/test/simulated_network.h"
+#include "api/units/time_delta.h"
#include "call/simulated_network.h"
#include "rtc_base/event.h"
#include "rtc_base/gunit.h"
@@ -252,7 +253,7 @@
ASSERT_EQ_WAIT(received_stats_count.load(), 2, kStatsWaitTimeoutMs);
}
-TEST(NetworkEmulationManagerTest, ThoughputStats) {
+TEST(NetworkEmulationManagerTest, ThroughputStats) {
NetworkEmulationManagerImpl network_manager;
EmulatedNetworkNode* alice_node = network_manager.CreateEmulatedNode(
@@ -297,8 +298,6 @@
s2->Send(data.data(), data.size());
wait.Wait(100);
}
- EXPECT_EQ(r1.ReceivedCount(), 11);
- EXPECT_EQ(r2.ReceivedCount(), 11);
delete s1;
delete s2;
@@ -307,11 +306,14 @@
nt1->GetStats([&](EmulatedNetworkStats st) {
EXPECT_EQ(st.packets_sent, 11l);
EXPECT_EQ(st.bytes_sent.bytes(), single_packet_size * 11l);
- EXPECT_NEAR(st.AverageSendRate().bps(), DataRate::bytes_per_sec(1000).bps(),
- 1000);
+ EXPECT_GE(st.last_packet_sent_time - st.first_packet_sent_time,
+ TimeDelta::seconds(1));
+ EXPECT_GT(st.AverageSendRate().bps(), 0);
received_stats_count++;
});
ASSERT_EQ_WAIT(received_stats_count.load(), 1, kStatsWaitTimeoutMs);
+ EXPECT_EQ(r1.ReceivedCount(), 11);
+ EXPECT_EQ(r2.ReceivedCount(), 11);
}
// Testing that packets are delivered via all routes using a routing scheme as