Index: webrtc/p2p/base/p2ptransportchannel_unittest.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel_unittest.cc b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
index cbf5e76a7ae23a13376e6f8aa76ad10559978fbe..72f72f82ed419f54e476ebe6e01b2bec71f37e0a 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
@@ -2054,6 +2054,32 @@ TEST_F(P2PTransportChannelPingTest, TestTriggeredChecks) { |
EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch)); |
} |
+TEST_F(P2PTransportChannelPingTest, TestNoTriggeredChecksWhenWritable) { |
+ cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
+ cricket::P2PTransportChannel ch("trigger checks", 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); |
+ |
+ EXPECT_EQ(conn2, FindNextPingableConnectionAndPingIt(&ch)); |
+ EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch)); |
+ conn1->ReceivedPingResponse(); |
+ ASSERT_TRUE(conn1->writable()); |
+ conn1->ReceivedPing(); |
+ |
+ // Ping received, but the connection is already writable, so no |
+ // "triggered check" and conn2 is pinged before conn1 because it has |
+ // a higher priority. |
+ EXPECT_EQ(conn2, FindNextPingableConnectionAndPingIt(&ch)); |
honghaiz3
2016/06/16 00:59:57
I only moved this test up so that two tests on tig
|
+} |
+ |
TEST_F(P2PTransportChannelPingTest, TestAllConnectionsPingedSufficiently) { |
cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
cricket::P2PTransportChannel ch("ping sufficiently", 1, &pa); |
@@ -2077,30 +2103,22 @@ TEST_F(P2PTransportChannelPingTest, TestAllConnectionsPingedSufficiently) { |
kDefaultTimeout); |
} |
-TEST_F(P2PTransportChannelPingTest, TestNoTriggeredChecksWhenWritable) { |
+TEST_F(P2PTransportChannelPingTest, TestFailedConnectionNotPingable) { |
cricket::FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
- cricket::P2PTransportChannel ch("trigger checks", 1, &pa); |
+ cricket::P2PTransportChannel ch("do not ping failed connection", 1, &pa); |
pthatcher1
2016/06/16 22:34:21
do not => Do not
failed connection => failed conne
honghaiz3
2016/06/16 23:22:53
Done.
|
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); |
- EXPECT_EQ(conn2, FindNextPingableConnectionAndPingIt(&ch)); |
- EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch)); |
- conn1->ReceivedPingResponse(); |
- ASSERT_TRUE(conn1->writable()); |
- conn1->ReceivedPing(); |
- |
- // Ping received, but the connection is already writable, so no |
- // "triggered check" and conn2 is pinged before conn1 because it has |
- // a higher priority. |
- EXPECT_EQ(conn2, FindNextPingableConnectionAndPingIt(&ch)); |
+ EXPECT_EQ(conn1, ch.FindNextPingableConnection()); |
+ conn1->Prune(); // A pruned connection may still be pingable. |
+ EXPECT_EQ(conn1, ch.FindNextPingableConnection()); |
+ conn1->FailAndPrune(); |
+ EXPECT_TRUE(nullptr == ch.FindNextPingableConnection()); |
} |
TEST_F(P2PTransportChannelPingTest, TestSignalStateChanged) { |