Fixing P2PTransportChannelTest.TestIceConfigWillPassDownToPort.
Was flaky because it was checking the role of a port, but a role
conflict could occur before this happened which would swap the
role.
BUG=webrtc:6019
R=honghaiz@webrtc.org, pthatcher@webrtc.org
TBR=honghaiz@webrtc.org
Review URL: https://codereview.webrtc.org/2108493003 .
Cr-Original-Commit-Position: refs/heads/master@{#13327}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: f3d8d32c5f87a3a3a01bcd77809041daff9ba48d
diff --git a/p2p/base/p2ptransportchannel_unittest.cc b/p2p/base/p2ptransportchannel_unittest.cc
index c51098a..c55485a 100644
--- a/p2p/base/p2ptransportchannel_unittest.cc
+++ b/p2p/base/p2ptransportchannel_unittest.cc
@@ -100,8 +100,8 @@
"TESTICEPWD00000000000002",
"TESTICEPWD00000000000003"};
-static const uint64_t kTiebreaker1 = 11111;
-static const uint64_t kTiebreaker2 = 22222;
+static const uint64_t kLowTiebreaker = 11111;
+static const uint64_t kHighTiebreaker = 22222;
enum { MSG_ADD_CANDIDATES, MSG_REMOVE_CANDIDATES };
@@ -643,10 +643,11 @@
}
void TestSignalRoleConflict() {
- SetIceTiebreaker(0, kTiebreaker1); // Default EP1 is in controlling state.
+ SetIceTiebreaker(0,
+ kLowTiebreaker); // Default EP1 is in controlling state.
SetIceRole(1, ICEROLE_CONTROLLING);
- SetIceTiebreaker(1, kTiebreaker2);
+ SetIceTiebreaker(1, kHighTiebreaker);
// Creating channels with both channels role set to CONTROLLING.
CreateChannels(1);
@@ -1417,22 +1418,16 @@
// Tests that the ice configs (protocol, tiebreaker and role) can be passed
// down to ports.
-// Disable on Windows because it is flaky.
-// https://bugs.chromium.org/p/webrtc/issues/detail?id=6019
-#if defined(WEBRTC_WIN)
-#define MAYBE_TestIceConfigWillPassDownToPort \
- DISABLED_TestIceConfigWillPassDownToPort
-#else
-#define MAYBE_TestIceConfigWillPassDownToPort TestIceConfigWillPassDownToPort
-#endif
-TEST_F(P2PTransportChannelTest, MAYBE_TestIceConfigWillPassDownToPort) {
+TEST_F(P2PTransportChannelTest, TestIceConfigWillPassDownToPort) {
AddAddress(0, kPublicAddrs[0]);
AddAddress(1, kPublicAddrs[1]);
+ // Give the first connection the higher tiebreaker so its role won't
+ // change unless we tell it to.
SetIceRole(0, ICEROLE_CONTROLLING);
- SetIceTiebreaker(0, kTiebreaker1);
+ SetIceTiebreaker(0, kHighTiebreaker);
SetIceRole(1, ICEROLE_CONTROLLING);
- SetIceTiebreaker(1, kTiebreaker2);
+ SetIceTiebreaker(1, kLowTiebreaker);
CreateChannels(1);
@@ -1441,18 +1436,18 @@
const std::vector<PortInterface*> ports_before = ep1_ch1()->ports();
for (size_t i = 0; i < ports_before.size(); ++i) {
EXPECT_EQ(ICEROLE_CONTROLLING, ports_before[i]->GetIceRole());
- EXPECT_EQ(kTiebreaker1, ports_before[i]->IceTiebreaker());
+ EXPECT_EQ(kHighTiebreaker, ports_before[i]->IceTiebreaker());
}
ep1_ch1()->SetIceRole(ICEROLE_CONTROLLED);
- ep1_ch1()->SetIceTiebreaker(kTiebreaker2);
+ ep1_ch1()->SetIceTiebreaker(kLowTiebreaker);
const std::vector<PortInterface*> ports_after = ep1_ch1()->ports();
for (size_t i = 0; i < ports_after.size(); ++i) {
EXPECT_EQ(ICEROLE_CONTROLLED, ports_before[i]->GetIceRole());
// SetIceTiebreaker after Connect() has been called will fail. So expect the
// original value.
- EXPECT_EQ(kTiebreaker1, ports_before[i]->IceTiebreaker());
+ EXPECT_EQ(kHighTiebreaker, ports_before[i]->IceTiebreaker());
}
EXPECT_TRUE_WAIT(ep1_ch1()->receiving() &&