Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: webrtc/p2p/base/p2ptransportchannel_unittest.cc

Issue 2009763002: Ping connections with the fast rate until each connection is pinged at least three times. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Address comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/base/p2ptransportchannel.cc ('k') | webrtc/p2p/base/port.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/base/p2ptransportchannel_unittest.cc
diff --git a/webrtc/p2p/base/p2ptransportchannel_unittest.cc b/webrtc/p2p/base/p2ptransportchannel_unittest.cc
index e2c50031268a8dd5025bc252a8b532317dfc5ced..7823ada66e11d6b1864e91128684f6ab58a560f3 100644
--- a/webrtc/p2p/base/p2ptransportchannel_unittest.cc
+++ b/webrtc/p2p/base/p2ptransportchannel_unittest.cc
@@ -37,6 +37,7 @@ using cricket::kMinimumStepDelay;
using cricket::kDefaultStepDelay;
using cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET;
using cricket::ServerAddresses;
+using cricket::MIN_PINGS_AT_WEAK_PING_INTERVAL;
using rtc::SocketAddress;
static const int kDefaultTimeout = 1000;
@@ -2126,6 +2127,29 @@ TEST_F(P2PTransportChannelPingTest, TestTriggeredChecks) {
EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch));
}
+TEST_F(P2PTransportChannelPingTest, TestAllConnectionsPingedSufficiently) {
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr);
+ cricket::P2PTransportChannel ch("ping sufficiently", 1, &pa);
+ PrepareChannel(&ch);
+ ch.Connect();
+ ch.MaybeStartGathering();
+ ch.AddRemoteCandidate(CreateHostCandidate("1.1.1.1", 1, 1));
+ ch.AddRemoteCandidate(CreateHostCandidate("2.2.2.2", 2, 2));
+
+ cricket::Connection* conn1 = WaitForConnectionTo(&ch, "1.1.1.1", 1);
+ cricket::Connection* conn2 = WaitForConnectionTo(&ch, "2.2.2.2", 2);
+ ASSERT_TRUE(conn1 != nullptr);
+ ASSERT_TRUE(conn2 != nullptr);
+
+ // Low-priority connection becomes writable so that the other connection
+ // is not pruned.
+ conn1->ReceivedPingResponse();
+ EXPECT_TRUE_WAIT(
+ conn1->num_pings_sent() >= MIN_PINGS_AT_WEAK_PING_INTERVAL &&
+ conn2->num_pings_sent() >= MIN_PINGS_AT_WEAK_PING_INTERVAL,
+ kDefaultTimeout);
+}
+
TEST_F(P2PTransportChannelPingTest, TestNoTriggeredChecksWhenWritable) {
cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr);
cricket::P2PTransportChannel ch("trigger checks", 1, &pa);
@@ -2804,6 +2828,14 @@ TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest,
ASSERT_TRUE(conn3->writable());
conn3->ReceivedPing();
+ /*
+
+ TODO(honghaiz): Re-enable this once we use fake clock for this test to fix
+ the flakiness. The following test becomes flaky because we now ping the
+ connections with fast rates until every connection is pinged at least three
+ times. The best connection may have been pinged before |max_strong_interval|,
+ so it may not be the next connection to be pinged as expected in the test.
+
// Verify that conn3 will be the "best connection" since it is readable and
// writable. After |MAX_CURRENT_STRONG_INTERVAL|, it should be the next
// pingable connection.
@@ -2812,6 +2844,8 @@ TEST_F(P2PTransportChannelMostLikelyToWorkFirstTest,
conn3->ReceivedPingResponse();
ASSERT_TRUE(conn3->writable());
EXPECT_EQ(conn3, FindNextPingableConnectionAndPingIt(&ch));
+
+ */
}
// Test that Relay/Relay connections will be pinged first when everything has
« no previous file with comments | « webrtc/p2p/base/p2ptransportchannel.cc ('k') | webrtc/p2p/base/port.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698