Index: webrtc/p2p/client/basicportallocator_unittest.cc |
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/basicportallocator_unittest.cc |
similarity index 79% |
rename from webrtc/p2p/client/portallocator_unittest.cc |
rename to webrtc/p2p/client/basicportallocator_unittest.cc |
index 21819033778c0d6b7e2bb89a15327c72a2bbf15f..2c8a5e5a6145149bef3348ccbc5e7d72b685d59c 100644 |
--- a/webrtc/p2p/client/portallocator_unittest.cc |
+++ b/webrtc/p2p/client/basicportallocator_unittest.cc |
@@ -8,6 +8,7 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
Taylor Brandstetter
2016/05/05 19:56:23
Aside from OnPortReady, OnCandidatesReady, OnCandi
|
+#include <algorithm> |
#include <memory> |
#include "webrtc/p2p/base/basicpacketsocketfactory.h" |
@@ -42,8 +43,8 @@ static const SocketAddress kClientAddr("11.11.11.11", 0); |
static const SocketAddress kLoopbackAddr("127.0.0.1", 0); |
static const SocketAddress kPrivateAddr("192.168.1.11", 0); |
static const SocketAddress kPrivateAddr2("192.168.1.12", 0); |
-static const SocketAddress kClientIPv6Addr( |
- "2401:fa00:4:1000:be30:5bff:fee5:c3", 0); |
+static const SocketAddress kClientIPv6Addr("2401:fa00:4:1000:be30:5bff:fee5:c3", |
+ 0); |
static const SocketAddress kClientAddr2("22.22.22.22", 0); |
static const SocketAddress kNatUdpAddr("77.77.77.77", rtc::NAT_SERVER_UDP_PORT); |
static const SocketAddress kNatTcpAddr("77.77.77.77", rtc::NAT_SERVER_TCP_PORT); |
@@ -84,20 +85,25 @@ std::ostream& operator<<(std::ostream& os, const cricket::Candidate& c) { |
} // namespace cricket |
-class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
+class BasicPortAllocatorTest : public testing::Test, |
+ public sigslot::has_slots<> { |
public: |
- PortAllocatorTest() |
+ BasicPortAllocatorTest() |
: pss_(new rtc::PhysicalSocketServer), |
vss_(new rtc::VirtualSocketServer(pss_.get())), |
fss_(new rtc::FirewallSocketServer(vss_.get())), |
ss_scope_(fss_.get()), |
nat_factory_(vss_.get(), kNatUdpAddr, kNatTcpAddr), |
nat_socket_factory_(new rtc::BasicPacketSocketFactory(&nat_factory_)), |
- stun_server_(cricket::TestStunServer::Create(Thread::Current(), |
- kStunAddr)), |
- relay_server_(Thread::Current(), kRelayUdpIntAddr, kRelayUdpExtAddr, |
- kRelayTcpIntAddr, kRelayTcpExtAddr, |
- kRelaySslTcpIntAddr, kRelaySslTcpExtAddr), |
+ stun_server_( |
+ cricket::TestStunServer::Create(Thread::Current(), kStunAddr)), |
+ relay_server_(Thread::Current(), |
+ kRelayUdpIntAddr, |
+ kRelayUdpExtAddr, |
+ kRelayTcpIntAddr, |
+ kRelayTcpExtAddr, |
+ kRelaySslTcpIntAddr, |
+ kRelaySslTcpExtAddr), |
turn_server_(Thread::Current(), kTurnUdpIntAddr, kTurnUdpExtAddr), |
candidate_allocation_done_(false) { |
cricket::ServerAddresses stun_servers; |
@@ -105,9 +111,8 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
// Passing the addresses of GTURN servers will enable GTURN in |
// Basicportallocator. |
allocator_.reset(new cricket::BasicPortAllocator( |
- &network_manager_, |
- stun_servers, |
- kRelayUdpIntAddr, kRelayTcpIntAddr, kRelaySslTcpIntAddr)); |
+ &network_manager_, stun_servers, kRelayUdpIntAddr, kRelayTcpIntAddr, |
+ kRelaySslTcpIntAddr)); |
allocator_->set_step_delay(cricket::kMinimumStepDelay); |
} |
@@ -191,42 +196,46 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
return true; |
} |
- cricket::PortAllocatorSession* CreateSession( |
- const std::string& sid, int component) { |
+ cricket::PortAllocatorSession* CreateSession(const std::string& sid, |
+ int component) { |
return CreateSession(sid, kContentName, component); |
} |
- cricket::PortAllocatorSession* CreateSession( |
- const std::string& sid, const std::string& content_name, int component) { |
+ cricket::PortAllocatorSession* CreateSession(const std::string& sid, |
+ const std::string& content_name, |
+ int component) { |
return CreateSession(sid, content_name, component, kIceUfrag0, kIcePwd0); |
} |
- cricket::PortAllocatorSession* CreateSession( |
- const std::string& sid, const std::string& content_name, int component, |
- const std::string& ice_ufrag, const std::string& ice_pwd) { |
- cricket::PortAllocatorSession* session = |
- allocator_->CreateSession( |
- sid, content_name, component, ice_ufrag, ice_pwd); |
+ cricket::PortAllocatorSession* CreateSession(const std::string& sid, |
+ const std::string& content_name, |
+ int component, |
+ const std::string& ice_ufrag, |
+ const std::string& ice_pwd) { |
+ cricket::PortAllocatorSession* session = allocator_->CreateSession( |
+ sid, content_name, component, ice_ufrag, ice_pwd); |
session->SignalPortReady.connect(this, |
- &PortAllocatorTest::OnPortReady); |
- session->SignalCandidatesReady.connect(this, |
- &PortAllocatorTest::OnCandidatesReady); |
- session->SignalCandidatesAllocationDone.connect(this, |
- &PortAllocatorTest::OnCandidatesAllocationDone); |
+ &BasicPortAllocatorTest::OnPortReady); |
+ session->SignalCandidatesReady.connect( |
+ this, &BasicPortAllocatorTest::OnCandidatesReady); |
+ session->SignalCandidatesAllocationDone.connect( |
+ this, &BasicPortAllocatorTest::OnCandidatesAllocationDone); |
return session; |
} |
static bool CheckCandidate(const cricket::Candidate& c, |
- int component, const std::string& type, |
+ int component, |
+ const std::string& type, |
const std::string& proto, |
const SocketAddress& addr) { |
return (c.component() == component && c.type() == type && |
- c.protocol() == proto && c.address().ipaddr() == addr.ipaddr() && |
- ((addr.port() == 0 && (c.address().port() != 0)) || |
- (c.address().port() == addr.port()))); |
+ c.protocol() == proto && c.address().ipaddr() == addr.ipaddr() && |
+ ((addr.port() == 0 && (c.address().port() != 0)) || |
+ (c.address().port() == addr.port()))); |
} |
static bool CheckPort(const rtc::SocketAddress& addr, |
- int min_port, int max_port) { |
+ int min_port, |
+ int max_port) { |
return (addr.port() >= min_port && addr.port() <= max_port); |
} |
@@ -237,6 +246,7 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
ASSERT_FALSE(candidate_allocation_done_); |
candidate_allocation_done_ = true; |
} |
+ EXPECT_TRUE(session->CandidatesAllocationDone()); |
} |
// Check if all ports allocated have send-buffer size |expected|. If |
@@ -247,11 +257,10 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
int send_buffer_size; |
if (expected == -1) { |
EXPECT_EQ(SOCKET_ERROR, |
- (*it)->GetOption(rtc::Socket::OPT_SNDBUF, |
- &send_buffer_size)); |
+ (*it)->GetOption(rtc::Socket::OPT_SNDBUF, &send_buffer_size)); |
} else { |
- EXPECT_EQ(0, (*it)->GetOption(rtc::Socket::OPT_SNDBUF, |
- &send_buffer_size)); |
+ EXPECT_EQ(0, |
+ (*it)->GetOption(rtc::Socket::OPT_SNDBUF, &send_buffer_size)); |
ASSERT_EQ(expected, send_buffer_size); |
} |
} |
@@ -322,14 +331,16 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
} |
protected: |
- cricket::BasicPortAllocator& allocator() { |
- return *allocator_; |
- } |
+ cricket::BasicPortAllocator& allocator() { return *allocator_; } |
void OnPortReady(cricket::PortAllocatorSession* ses, |
cricket::PortInterface* port) { |
LOG(LS_INFO) << "OnPortReady: " << port->ToString(); |
ports_.push_back(port); |
+ // Make sure the new port is added to ReadyPorts. |
+ auto ready_ports = ses->ReadyPorts(); |
+ EXPECT_NE(ready_ports.end(), |
+ std::find(ready_ports.begin(), ready_ports.end(), port)); |
} |
void OnCandidatesReady(cricket::PortAllocatorSession* ses, |
const std::vector<cricket::Candidate>& candidates) { |
@@ -337,6 +348,13 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
LOG(LS_INFO) << "OnCandidatesReady: " << candidates[i].ToString(); |
candidates_.push_back(candidates[i]); |
} |
+ // Make sure the new candidates are added to Candidates. |
+ auto ses_candidates = ses->ReadyCandidates(); |
+ for (const cricket::Candidate& candidate : candidates) { |
+ EXPECT_NE( |
+ ses_candidates.end(), |
+ std::find(ses_candidates.begin(), ses_candidates.end(), candidate)); |
+ } |
} |
bool HasRelayAddress(const cricket::ProtocolAddress& proto_addr) { |
@@ -344,7 +362,7 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
cricket::RelayServerConfig server_config = allocator_->turn_servers()[i]; |
cricket::PortList::const_iterator relay_port; |
for (relay_port = server_config.ports.begin(); |
- relay_port != server_config.ports.end(); ++relay_port) { |
+ relay_port != server_config.ports.end(); ++relay_port) { |
if (proto_addr.address == relay_port->address && |
proto_addr.proto == relay_port->proto) |
return true; |
@@ -391,7 +409,7 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
}; |
// Tests that we can init the port allocator and create a session. |
-TEST_F(PortAllocatorTest, TestBasic) { |
+TEST_F(BasicPortAllocatorTest, TestBasic) { |
EXPECT_EQ(&network_manager_, allocator().network_manager()); |
EXPECT_EQ(kStunAddr, *allocator().stun_servers().begin()); |
ASSERT_EQ(1u, allocator().turn_servers().size()); |
@@ -399,17 +417,18 @@ TEST_F(PortAllocatorTest, TestBasic) { |
// Empty relay credentials are used for GTURN. |
EXPECT_TRUE(allocator().turn_servers()[0].credentials.username.empty()); |
EXPECT_TRUE(allocator().turn_servers()[0].credentials.password.empty()); |
- EXPECT_TRUE(HasRelayAddress(cricket::ProtocolAddress( |
- kRelayUdpIntAddr, cricket::PROTO_UDP))); |
- EXPECT_TRUE(HasRelayAddress(cricket::ProtocolAddress( |
- kRelayTcpIntAddr, cricket::PROTO_TCP))); |
- EXPECT_TRUE(HasRelayAddress(cricket::ProtocolAddress( |
- kRelaySslTcpIntAddr, cricket::PROTO_SSLTCP))); |
+ EXPECT_TRUE(HasRelayAddress( |
+ cricket::ProtocolAddress(kRelayUdpIntAddr, cricket::PROTO_UDP))); |
+ EXPECT_TRUE(HasRelayAddress( |
+ cricket::ProtocolAddress(kRelayTcpIntAddr, cricket::PROTO_TCP))); |
+ EXPECT_TRUE(HasRelayAddress( |
+ cricket::ProtocolAddress(kRelaySslTcpIntAddr, cricket::PROTO_SSLTCP))); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
+ EXPECT_FALSE(session_->CandidatesAllocationDone()); |
} |
// Tests that our network filtering works properly. |
-TEST_F(PortAllocatorTest, TestIgnoreOnlyLoopbackNetworkByDefault) { |
+TEST_F(BasicPortAllocatorTest, TestIgnoreOnlyLoopbackNetworkByDefault) { |
AddInterface(SocketAddress(IPAddress(0x12345600U), 0), "test_eth0", |
rtc::ADAPTER_TYPE_ETHERNET); |
AddInterface(SocketAddress(IPAddress(0x12345601U), 0), "test_wlan0", |
@@ -432,7 +451,7 @@ TEST_F(PortAllocatorTest, TestIgnoreOnlyLoopbackNetworkByDefault) { |
} |
} |
-TEST_F(PortAllocatorTest, TestIgnoreNetworksAccordingToIgnoreMask) { |
+TEST_F(BasicPortAllocatorTest, TestIgnoreNetworksAccordingToIgnoreMask) { |
AddInterface(SocketAddress(IPAddress(0x12345600U), 0), "test_eth0", |
rtc::ADAPTER_TYPE_ETHERNET); |
AddInterface(SocketAddress(IPAddress(0x12345601U), 0), "test_wlan0", |
@@ -453,7 +472,7 @@ TEST_F(PortAllocatorTest, TestIgnoreNetworksAccordingToIgnoreMask) { |
} |
// Tests that we allocator session not trying to allocate ports for every 250ms. |
-TEST_F(PortAllocatorTest, TestNoNetworkInterface) { |
+TEST_F(BasicPortAllocatorTest, TestNoNetworkInterface) { |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
// Waiting for one second to make sure BasicPortAllocatorSession has not |
@@ -466,7 +485,7 @@ TEST_F(PortAllocatorTest, TestNoNetworkInterface) { |
} |
// Test that we could use loopback interface as host candidate. |
-TEST_F(PortAllocatorTest, TestLoopbackNetworkInterface) { |
+TEST_F(BasicPortAllocatorTest, TestLoopbackNetworkInterface) { |
AddInterface(kLoopbackAddr, "test_loopback", rtc::ADAPTER_TYPE_LOOPBACK); |
allocator_->SetNetworkIgnoreMask(0); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -479,34 +498,40 @@ TEST_F(PortAllocatorTest, TestLoopbackNetworkInterface) { |
} |
// Tests that we can get all the desired addresses successfully. |
-TEST_F(PortAllocatorTest, TestGetAllPortsWithMinimumStepDelay) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsWithMinimumStepDelay) { |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(4U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[3], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpExtAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpExtAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[4], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", kRelayTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", |
+ kRelayTcpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[5], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[6], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, |
- "relay", "ssltcp", kRelaySslTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "ssltcp", |
+ kRelaySslTcpIntAddr); |
EXPECT_TRUE(candidate_allocation_done_); |
} |
// Test that when the same network interface is brought down and up, the |
// port allocator session will restart a new allocation sequence if |
// it is not stopped. |
-TEST_F(PortAllocatorTest, TestSameNetworkDownAndUpWhenSessionNotStopped) { |
+TEST_F(BasicPortAllocatorTest, TestSameNetworkDownAndUpWhenSessionNotStopped) { |
std::string if_name("test_net0"); |
AddInterface(kClientAddr, if_name); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -534,7 +559,7 @@ TEST_F(PortAllocatorTest, TestSameNetworkDownAndUpWhenSessionNotStopped) { |
// Test that when the same network interface is brought down and up, the |
// port allocator session will not restart a new allocation sequence if |
// it is stopped. |
-TEST_F(PortAllocatorTest, TestSameNetworkDownAndUpWhenSessionStopped) { |
+TEST_F(BasicPortAllocatorTest, TestSameNetworkDownAndUpWhenSessionStopped) { |
std::string if_name("test_net0"); |
AddInterface(kClientAddr, if_name); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -559,7 +584,7 @@ TEST_F(PortAllocatorTest, TestSameNetworkDownAndUpWhenSessionStopped) { |
} |
// Verify candidates with default step delay of 1sec. |
-TEST_F(PortAllocatorTest, TestGetAllPortsWithOneSecondStepDelay) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsWithOneSecondStepDelay) { |
AddInterface(kClientAddr); |
allocator_->set_step_delay(cricket::kDefaultStepDelay); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -569,29 +594,33 @@ TEST_F(PortAllocatorTest, TestGetAllPortsWithOneSecondStepDelay) { |
ASSERT_EQ_WAIT(4U, candidates_.size(), 2000); |
EXPECT_EQ(3U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[3], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpExtAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpExtAddr); |
ASSERT_EQ_WAIT(6U, candidates_.size(), 1500); |
EXPECT_PRED5(CheckCandidate, candidates_[4], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", kRelayTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", |
+ kRelayTcpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[5], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
EXPECT_EQ(4U, ports_.size()); |
ASSERT_EQ_WAIT(7U, candidates_.size(), 2000); |
EXPECT_PRED5(CheckCandidate, candidates_[6], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, |
- "relay", "ssltcp", kRelaySslTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "ssltcp", |
+ kRelaySslTcpIntAddr); |
EXPECT_EQ(4U, ports_.size()); |
EXPECT_TRUE(candidate_allocation_done_); |
// If we Stop gathering now, we shouldn't get a second "done" callback. |
session_->StopGettingPorts(); |
} |
-TEST_F(PortAllocatorTest, TestSetupVideoRtpPortsWithNormalSendBuffers) { |
+TEST_F(BasicPortAllocatorTest, TestSetupVideoRtpPortsWithNormalSendBuffers) { |
AddInterface(kClientAddr); |
- EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP, |
- cricket::CN_VIDEO)); |
+ EXPECT_TRUE( |
+ CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP, cricket::CN_VIDEO)); |
session_->StartGettingPorts(); |
ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_TRUE(candidate_allocation_done_); |
@@ -603,7 +632,7 @@ TEST_F(PortAllocatorTest, TestSetupVideoRtpPortsWithNormalSendBuffers) { |
} |
// Tests that we can get callback after StopGetAllPorts. |
-TEST_F(PortAllocatorTest, TestStopGetAllPorts) { |
+TEST_F(BasicPortAllocatorTest, TestStopGetAllPorts) { |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
@@ -616,7 +645,7 @@ TEST_F(PortAllocatorTest, TestStopGetAllPorts) { |
// Test that we restrict client ports appropriately when a port range is set. |
// We check the candidates for udp/stun/tcp ports, and the from address |
// for relay ports. |
-TEST_F(PortAllocatorTest, TestGetAllPortsPortRange) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsPortRange) { |
AddInterface(kClientAddr); |
// Check that an invalid port range fails. |
EXPECT_FALSE(SetPortRange(kMaxPort, kMinPort)); |
@@ -633,15 +662,15 @@ TEST_F(PortAllocatorTest, TestGetAllPortsPortRange) { |
// Check the port number for the STUN port object. |
EXPECT_PRED3(CheckPort, candidates_[1].address(), kMinPort, kMaxPort); |
// Check the port number used to connect to the relay server. |
- EXPECT_PRED3(CheckPort, relay_server_.GetConnection(0).source(), |
- kMinPort, kMaxPort); |
+ EXPECT_PRED3(CheckPort, relay_server_.GetConnection(0).source(), kMinPort, |
+ kMaxPort); |
// Check the port number for the TCP port object. |
EXPECT_PRED3(CheckPort, candidates_[5].address(), kMinPort, kMaxPort); |
EXPECT_TRUE(candidate_allocation_done_); |
} |
// Test that we don't crash or malfunction if we have no network adapters. |
-TEST_F(PortAllocatorTest, TestGetAllPortsNoAdapters) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsNoAdapters) { |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
rtc::Thread::Current()->ProcessMessages(100); |
@@ -652,7 +681,7 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoAdapters) { |
// Test that when enumeration is disabled, we should not have any ports when |
// candidate_filter() is set to CF_RELAY and no relay is specified. |
-TEST_F(PortAllocatorTest, |
+TEST_F(BasicPortAllocatorTest, |
TestDisableAdapterEnumerationWithoutNatRelayTransportOnly) { |
ResetWithStunServerNoNat(kStunAddr); |
allocator().set_candidate_filter(cricket::CF_RELAY); |
@@ -664,7 +693,7 @@ TEST_F(PortAllocatorTest, |
// Test that even with multiple interfaces, the result should still be a single |
// default private, one STUN and one TURN candidate since we bind to any address |
// (i.e. all 0s). |
-TEST_F(PortAllocatorTest, |
+TEST_F(BasicPortAllocatorTest, |
TestDisableAdapterEnumerationBehindNatMultipleInterfaces) { |
AddInterface(kPrivateAddr); |
AddInterface(kPrivateAddr2); |
@@ -687,7 +716,7 @@ TEST_F(PortAllocatorTest, |
// Test that we should get a default private, STUN, TURN/UDP and TURN/TCP |
// candidates when both TURN/UDP and TURN/TCP servers are specified. |
-TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { |
+TEST_F(BasicPortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kPrivateAddr); |
ResetWithStunServerAndNat(kStunAddr); |
@@ -701,7 +730,8 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { |
// Test that when adapter enumeration is disabled, for endpoints without |
// STUN/TURN specified, a default private candidate is still generated. |
-TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) { |
+TEST_F(BasicPortAllocatorTest, |
+ TestDisableAdapterEnumerationWithoutNatOrServers) { |
ResetWithNoServersOrNat(); |
// Expect to see 2 ports: STUN and TCP ports, one default private candidate. |
CheckDisableAdapterEnumeration(2U, kPrivateAddr.ipaddr(), rtc::IPAddress(), |
@@ -711,7 +741,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) { |
// Test that when adapter enumeration is disabled, with |
// PORTALLOCATOR_DISABLE_LOCALHOST_CANDIDATE specified, for endpoints not behind |
// a NAT, there is no local candidate. |
-TEST_F(PortAllocatorTest, |
+TEST_F(BasicPortAllocatorTest, |
TestDisableAdapterEnumerationWithoutNatLocalhostCandidateDisabled) { |
ResetWithStunServerNoNat(kStunAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -728,7 +758,7 @@ TEST_F(PortAllocatorTest, |
// (kClientAddr) which was discovered when sending STUN requests, will become |
// the srflx addresses. |
TEST_F( |
- PortAllocatorTest, |
+ BasicPortAllocatorTest, |
TestDisableAdapterEnumerationWithoutNatLocalhostCandidateDisabledWithDifferentDefaultRoute) { |
ResetWithStunServerNoNat(kStunAddr); |
AddInterfaceAsDefaultRoute(kClientAddr); |
@@ -743,7 +773,7 @@ TEST_F( |
// Test that when adapter enumeration is disabled, with |
// PORTALLOCATOR_DISABLE_LOCALHOST_CANDIDATE specified, for endpoints behind a |
// NAT, there is only one STUN candidate. |
-TEST_F(PortAllocatorTest, |
+TEST_F(BasicPortAllocatorTest, |
TestDisableAdapterEnumerationWithNatLocalhostCandidateDisabled) { |
ResetWithStunServerAndNat(kStunAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -755,7 +785,7 @@ TEST_F(PortAllocatorTest, |
// Test that we disable relay over UDP, and only TCP is used when connecting to |
// the relay server. |
-TEST_F(PortAllocatorTest, TestDisableUdpTurn) { |
+TEST_F(BasicPortAllocatorTest, TestDisableUdpTurn) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kClientAddr); |
ResetWithStunServerAndNat(kStunAddr); |
@@ -789,7 +819,7 @@ TEST_F(PortAllocatorTest, TestDisableUdpTurn) { |
// Test that we can get OnCandidatesAllocationDone callback when all the ports |
// are disabled. |
-TEST_F(PortAllocatorTest, TestDisableAllPorts) { |
+TEST_F(BasicPortAllocatorTest, TestDisableAllPorts) { |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->set_flags(cricket::PORTALLOCATOR_DISABLE_UDP | |
@@ -803,7 +833,7 @@ TEST_F(PortAllocatorTest, TestDisableAllPorts) { |
} |
// Test that we don't crash or malfunction if we can't create UDP sockets. |
-TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpSockets) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsNoUdpSockets) { |
AddInterface(kClientAddr); |
fss_->set_udp_sockets_enabled(false); |
EXPECT_TRUE(CreateSession(1)); |
@@ -811,25 +841,29 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpSockets) { |
ASSERT_EQ_WAIT(5U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(2U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpExtAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpExtAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", kRelayTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", |
+ kRelayTcpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[3], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[4], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, |
- "relay", "ssltcp", kRelaySslTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "ssltcp", |
+ kRelaySslTcpIntAddr); |
EXPECT_TRUE(candidate_allocation_done_); |
} |
-#endif // if !defined(ADDRESS_SANITIZER) |
+#endif // if !defined(ADDRESS_SANITIZER) |
// Test that we don't crash or malfunction if we can't create UDP sockets or |
// listen on TCP sockets. We still give out a local TCP address, since |
// apparently this is needed for the remote side to accept our connection. |
-TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpSocketsNoTcpListen) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsNoUdpSocketsNoTcpListen) { |
AddInterface(kClientAddr); |
fss_->set_udp_sockets_enabled(false); |
fss_->set_tcp_listen_enabled(false); |
@@ -837,35 +871,34 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpSocketsNoTcpListen) { |
session_->StartGettingPorts(); |
ASSERT_EQ_WAIT(5U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(2U, ports_.size()); |
- EXPECT_PRED5(CheckCandidate, candidates_[0], |
- 1, "relay", "udp", kRelayUdpIntAddr); |
- EXPECT_PRED5(CheckCandidate, candidates_[1], |
- 1, "relay", "udp", kRelayUdpExtAddr); |
- EXPECT_PRED5(CheckCandidate, candidates_[2], |
- 1, "relay", "tcp", kRelayTcpIntAddr); |
- EXPECT_PRED5(CheckCandidate, candidates_[3], |
- 1, "local", "tcp", kClientAddr); |
- EXPECT_PRED5(CheckCandidate, candidates_[4], |
- 1, "relay", "ssltcp", kRelaySslTcpIntAddr); |
+ EXPECT_PRED5(CheckCandidate, candidates_[0], 1, "relay", "udp", |
+ kRelayUdpIntAddr); |
+ EXPECT_PRED5(CheckCandidate, candidates_[1], 1, "relay", "udp", |
+ kRelayUdpExtAddr); |
+ EXPECT_PRED5(CheckCandidate, candidates_[2], 1, "relay", "tcp", |
+ kRelayTcpIntAddr); |
+ EXPECT_PRED5(CheckCandidate, candidates_[3], 1, "local", "tcp", kClientAddr); |
+ EXPECT_PRED5(CheckCandidate, candidates_[4], 1, "relay", "ssltcp", |
+ kRelaySslTcpIntAddr); |
EXPECT_TRUE(candidate_allocation_done_); |
} |
// Test that we don't crash or malfunction if we can't create any sockets. |
-// TODO: Find a way to exit early here. |
-TEST_F(PortAllocatorTest, TestGetAllPortsNoSockets) { |
+// TODO(deadbeef): Find a way to exit early here. |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsNoSockets) { |
AddInterface(kClientAddr); |
fss_->set_tcp_sockets_enabled(false); |
fss_->set_udp_sockets_enabled(false); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
WAIT(candidates_.size() > 0, 2000); |
- // TODO - Check candidate_allocation_done signal. |
+ // TODO(deadbeef): Check candidate_allocation_done signal. |
// In case of Relay, ports creation will succeed but sockets will fail. |
// There is no error reporting from RelayEntry to handle this failure. |
} |
// Testing STUN timeout. |
-TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpAllowed) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsNoUdpAllowed) { |
fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -873,27 +906,32 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoUdpAllowed) { |
EXPECT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(2U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
// RelayPort connection timeout is 3sec. TCP connection with RelayServer |
// will be tried after 3 seconds. |
EXPECT_EQ_WAIT(6U, candidates_.size(), 4000); |
EXPECT_EQ(3U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[3], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", kRelayTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "tcp", |
+ kRelayTcpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[4], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "ssltcp", |
- kRelaySslTcpIntAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "ssltcp", |
+ kRelaySslTcpIntAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[5], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", kRelayUdpExtAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ kRelayUdpExtAddr); |
// Stun Timeout is 9sec. |
EXPECT_TRUE_WAIT(candidate_allocation_done_, 9000); |
} |
-TEST_F(PortAllocatorTest, TestCandidatePriorityOfMultipleInterfaces) { |
+TEST_F(BasicPortAllocatorTest, TestCandidatePriorityOfMultipleInterfaces) { |
AddInterface(kClientAddr); |
AddInterface(kClientAddr2); |
// Allocating only host UDP ports. This is done purely for testing |
@@ -911,14 +949,14 @@ TEST_F(PortAllocatorTest, TestCandidatePriorityOfMultipleInterfaces) { |
} |
// Test to verify ICE restart process. |
-TEST_F(PortAllocatorTest, TestGetAllPortsRestarts) { |
+TEST_F(BasicPortAllocatorTest, TestGetAllPortsRestarts) { |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
EXPECT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(4U, ports_.size()); |
EXPECT_TRUE(candidate_allocation_done_); |
- // TODO - Extend this to verify ICE restart. |
+ // TODO(deadbeef): Extend this to verify ICE restart. |
} |
// Test ICE candidate filter mechanism with options Relay/Host/Reflexive. |
@@ -926,7 +964,7 @@ TEST_F(PortAllocatorTest, TestGetAllPortsRestarts) { |
// relay (i.e. IceTransportsType is relay), the raddr is an empty |
// address with the correct family. This is to prevent any local |
// reflective address leakage in the sdp line. |
-TEST_F(PortAllocatorTest, TestCandidateFilterWithRelayOnly) { |
+TEST_F(BasicPortAllocatorTest, TestCandidateFilterWithRelayOnly) { |
AddInterface(kClientAddr); |
// GTURN is not configured here. |
ResetWithTurnServersNoNat(kTurnUdpIntAddr, rtc::SocketAddress()); |
@@ -934,11 +972,8 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithRelayOnly) { |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
- EXPECT_PRED5(CheckCandidate, |
- candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, |
- "relay", |
- "udp", |
+ EXPECT_PRED5(CheckCandidate, candidates_[0], |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
EXPECT_EQ(1U, candidates_.size()); |
@@ -951,22 +986,22 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithRelayOnly) { |
} |
} |
-TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { |
+TEST_F(BasicPortAllocatorTest, TestCandidateFilterWithHostOnly) { |
AddInterface(kClientAddr); |
allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
allocator().set_candidate_filter(cricket::CF_HOST); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
- EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. |
- EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. |
+ EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. |
+ EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. |
for (size_t i = 0; i < candidates_.size(); ++i) { |
EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
} |
} |
// Host is behind the NAT. |
-TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
+TEST_F(BasicPortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
AddInterface(kPrivateAddr); |
ResetWithStunServerAndNat(kStunAddr); |
@@ -977,8 +1012,8 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
// Host is behind NAT, no private address will be exposed. Hence only UDP |
// port with STUN candidate will be sent outside. |
- EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. |
- EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. |
+ EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. |
+ EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. |
for (size_t i = 0; i < candidates_.size(); ++i) { |
EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); |
EXPECT_EQ( |
@@ -988,7 +1023,7 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
} |
// Host is not behind the NAT. |
-TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
+TEST_F(BasicPortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
AddInterface(kClientAddr); |
allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
allocator().set_candidate_filter(cricket::CF_REFLEXIVE); |
@@ -996,7 +1031,7 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
session_->StartGettingPorts(); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
// Host has a public address, both UDP and TCP candidates will be exposed. |
- EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. |
+ EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. |
EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. |
for (size_t i = 0; i < candidates_.size(); ++i) { |
EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
@@ -1004,17 +1039,20 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
} |
// Test that we get the same ufrag and pwd for all candidates. |
-TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { |
+TEST_F(BasicPortAllocatorTest, TestEnableSharedUfrag) { |
AddInterface(kClientAddr); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[5], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
EXPECT_EQ(4U, ports_.size()); |
EXPECT_EQ(kIceUfrag0, candidates_[0].username()); |
EXPECT_EQ(kIceUfrag0, candidates_[1].username()); |
@@ -1028,7 +1066,7 @@ TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { |
// is allocated for udp and stun. Also verify there is only one candidate |
// (local) if stun candidate is same as local candidate, which will be the case |
// in a public network like the below test. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithoutNat) { |
AddInterface(kClientAddr); |
allocator_->set_flags(allocator().flags() | |
cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
@@ -1037,14 +1075,15 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { |
ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(3U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
} |
// Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port |
// is allocated for udp and stun. In this test we should expect both stun and |
// local candidates as client behind a nat. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithNat) { |
AddInterface(kClientAddr); |
ResetWithStunServerAndNat(kStunAddr); |
@@ -1055,16 +1094,17 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { |
ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
ASSERT_EQ(2U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
- rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
EXPECT_EQ(3U, candidates_.size()); |
} |
// Test TURN port in shared socket mode with UDP and TCP TURN server addresses. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kClientAddr); |
allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); |
@@ -1082,20 +1122,21 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { |
ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
ASSERT_EQ(3U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
- rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
- rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
EXPECT_EQ(3U, candidates_.size()); |
} |
// Testing DNS resolve for the TURN server, this will test AllocationSequence |
// handling the unresolved address signal from TurnPort. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithServerAddressResolve) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithServerAddressResolve) { |
turn_server_.AddInternalSocket(rtc::SocketAddress("127.0.0.1", 3478), |
cricket::PROTO_UDP); |
AddInterface(kClientAddr); |
@@ -1121,7 +1162,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithServerAddressResolve) { |
// Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port |
// is allocated for udp/stun/turn. In this test we should expect all local, |
// stun and turn candidates. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
AddInterface(kClientAddr); |
ResetWithStunServerAndNat(kStunAddr); |
@@ -1137,13 +1178,14 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
ASSERT_EQ(2U, ports_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
- rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
- rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
EXPECT_EQ(3U, candidates_.size()); |
// Local port will be created first and then TURN port. |
@@ -1154,7 +1196,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
// Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled and the TURN |
// server is also used as the STUN server, we should get 'local', 'stun', and |
// 'relay' candidates. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
AddInterface(kClientAddr); |
// Use an empty SocketAddress to add a NAT without STUN server. |
ResetWithStunServerAndNat(SocketAddress()); |
@@ -1174,13 +1216,14 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
- rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
- rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
+ rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
@@ -1193,7 +1236,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
// Test that when only a TCP TURN server is available, we do NOT use it as |
// a UDP STUN server, as this could leak our IP address. Thus we should only |
// expect two ports, a UDPPort and TurnPort. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kClientAddr); |
ResetWithStunServerAndNat(rtc::SocketAddress()); |
@@ -1225,7 +1268,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
// 'relay' candidates. |
// TODO(deadbeef): Remove this test when support for non-shared socket mode |
// is removed. |
-TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { |
+TEST_F(BasicPortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { |
AddInterface(kClientAddr); |
// Use an empty SocketAddress to add a NAT without STUN server. |
ResetWithStunServerAndNat(SocketAddress()); |
@@ -1261,7 +1304,7 @@ TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { |
// Test that even when both a STUN and TURN server are configured, the TURN |
// server is used as a STUN server and we get a 'stun' candidate. |
-TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
AddInterface(kClientAddr); |
// Configure with STUN server but destroy it, so we can ensure that it's |
// the TURN server actually being used as a STUN server. |
@@ -1295,7 +1338,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
// This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled |
// and fail to generate STUN candidate, local UDP candidate is generated |
// properly. |
-TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
+TEST_F(BasicPortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
allocator().set_flags(allocator().flags() | |
cricket::PORTALLOCATOR_DISABLE_RELAY | |
cricket::PORTALLOCATOR_DISABLE_TCP | |
@@ -1307,7 +1350,8 @@ TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); |
EXPECT_EQ(1U, candidates_.size()); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
// STUN timeout is 9sec. We need to wait to get candidate done signal. |
EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); |
EXPECT_EQ(1U, candidates_.size()); |
@@ -1316,7 +1360,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
// Test that when the NetworkManager doesn't have permission to enumerate |
// adapters, the PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION is specified |
// automatically. |
-TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) { |
+TEST_F(BasicPortAllocatorTest, TestNetworkPermissionBlocked) { |
network_manager_.set_default_local_addresses(kPrivateAddr.ipaddr(), |
rtc::IPAddress()); |
network_manager_.set_enumeration_permission( |
@@ -1336,12 +1380,12 @@ TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) { |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
kPrivateAddr); |
- EXPECT_TRUE((session_->flags() & |
- cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) != 0); |
+ EXPECT_NE(0U, session_->flags() & |
+ cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION); |
} |
// This test verifies allocator can use IPv6 addresses along with IPv4. |
-TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { |
+TEST_F(BasicPortAllocatorTest, TestEnableIPv6Addresses) { |
allocator().set_flags(allocator().flags() | |
cricket::PORTALLOCATOR_DISABLE_RELAY | |
cricket::PORTALLOCATOR_ENABLE_IPV6 | |
@@ -1355,21 +1399,21 @@ TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { |
EXPECT_EQ(4U, candidates_.size()); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
- kClientIPv6Addr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientIPv6Addr); |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
- kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
+ kClientAddr); |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
- kClientIPv6Addr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientIPv6Addr); |
EXPECT_PRED5(CheckCandidate, candidates_[3], |
- cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
- kClientAddr); |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", |
+ kClientAddr); |
EXPECT_EQ(4U, candidates_.size()); |
} |
-TEST_F(PortAllocatorTest, TestStopGettingPorts) { |
+TEST_F(BasicPortAllocatorTest, TestStopGettingPorts) { |
AddInterface(kClientAddr); |
allocator_->set_step_delay(cricket::kDefaultStepDelay); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -1390,7 +1434,7 @@ TEST_F(PortAllocatorTest, TestStopGettingPorts) { |
EXPECT_EQ(0U, ports_.size()); |
} |
-TEST_F(PortAllocatorTest, TestClearGettingPorts) { |
+TEST_F(BasicPortAllocatorTest, TestClearGettingPorts) { |
AddInterface(kClientAddr); |
allocator_->set_step_delay(cricket::kDefaultStepDelay); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
@@ -1410,3 +1454,41 @@ TEST_F(PortAllocatorTest, TestClearGettingPorts) { |
ASSERT_EQ_WAIT(2U, candidates_.size(), 1000); |
EXPECT_EQ(2U, ports_.size()); |
} |
+ |
+// Test that the ports and candidates are updated with new ufrag/pwd/etc. when |
+// a pooled session is taken out of the pool. |
+TEST_F(BasicPortAllocatorTest, TestTransportInformationUpdated) { |
+ AddInterface(kClientAddr); |
+ // Set candidate pool size to 1. |
pthatcher1
2016/05/05 21:51:25
int pool_size = 1; would be more clear.
Taylor Brandstetter
2016/05/06 03:53:35
Done.
|
+ allocator_->SetConfiguration(allocator_->stun_servers(), |
+ allocator_->turn_servers(), 1); |
+ const cricket::PortAllocatorSession* peeked_session = |
+ allocator_->PeekPooledSession(); |
+ ASSERT_NE(nullptr, peeked_session); |
+ EXPECT_EQ_WAIT(true, peeked_session->CandidatesAllocationDone(), |
+ kDefaultAllocationTimeout); |
+ // Expect that when GetPooledSession is called, |
+ // UpdateTransportInformationInternal will be called and the |
+ // BasicPortAllocatorSession will update the ufrag/pwd of ports and |
+ // candidates. |
+ session_.reset( |
+ allocator_->GetPooledSession(kContentName, 1, kIceUfrag0, kIcePwd0)); |
+ ASSERT_NE(nullptr, session_.get()); |
+ auto ready_ports = session_->ReadyPorts(); |
+ auto candidates = session_->ReadyCandidates(); |
+ EXPECT_FALSE(ready_ports.empty()); |
+ EXPECT_FALSE(candidates.empty()); |
+ for (const cricket::PortInterface* port_interface : ready_ports) { |
+ const cricket::Port* port = |
+ static_cast<const cricket::Port*>(port_interface); |
+ EXPECT_EQ(kContentName, port->content_name()); |
+ EXPECT_EQ(1, port->component()); |
+ EXPECT_EQ(kIceUfrag0, port->username_fragment()); |
+ EXPECT_EQ(kIcePwd0, port->password()); |
+ } |
+ for (const cricket::Candidate& candidate : candidates) { |
+ EXPECT_EQ(1, candidate.component()); |
+ EXPECT_EQ(kIceUfrag0, candidate.username()); |
+ EXPECT_EQ(kIcePwd0, candidate.password()); |
+ } |
+} |