| Index: webrtc/p2p/base/stunport_unittest.cc
|
| diff --git a/webrtc/p2p/base/stunport_unittest.cc b/webrtc/p2p/base/stunport_unittest.cc
|
| index 522369d487c391245d60c1edad292fe29dcdbdf6..578d2f3cdecd57d1eb9bb6c0e841ca3379599c83 100644
|
| --- a/webrtc/p2p/base/stunport_unittest.cc
|
| +++ b/webrtc/p2p/base/stunport_unittest.cc
|
| @@ -58,7 +58,7 @@ class StunPortTest : public testing::Test,
|
| kStunAddr2)),
|
| done_(false),
|
| error_(false),
|
| - stun_keepalive_delay_(0),
|
| + stun_keepalive_delay_(1),
|
| stun_keepalive_lifetime_(-1) {}
|
|
|
| cricket::UDPPort* port() const { return stun_port_.get(); }
|
| @@ -160,7 +160,10 @@ class StunPortTest : public testing::Test,
|
| return stun_server_2_.get();
|
| }
|
|
|
| + rtc::FakeClock& fake_clock() { return fake_clock_; }
|
| +
|
| private:
|
| + rtc::ScopedFakeClock fake_clock_;
|
| std::unique_ptr<rtc::PhysicalSocketServer> pss_;
|
| std::unique_ptr<rtc::VirtualSocketServer> ss_;
|
| rtc::SocketServerScope ss_scope_;
|
| @@ -194,7 +197,7 @@ TEST_F(StunPortTest, TestCreateUdpPort) {
|
| TEST_F(StunPortTest, TestPrepareAddress) {
|
| CreateStunPort(kStunAddr1);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| ASSERT_EQ(1U, port()->Candidates().size());
|
| EXPECT_TRUE(kLocalAddr.EqualIPs(port()->Candidates()[0].address()));
|
|
|
| @@ -206,7 +209,7 @@ TEST_F(StunPortTest, TestPrepareAddress) {
|
| TEST_F(StunPortTest, TestPrepareAddressFail) {
|
| CreateStunPort(kBadAddr);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| EXPECT_TRUE(error());
|
| EXPECT_EQ(0U, port()->Candidates().size());
|
| }
|
| @@ -215,7 +218,7 @@ TEST_F(StunPortTest, TestPrepareAddressFail) {
|
| TEST_F(StunPortTest, TestPrepareAddressHostname) {
|
| CreateStunPort(kStunHostnameAddr);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| ASSERT_EQ(1U, port()->Candidates().size());
|
| EXPECT_TRUE(kLocalAddr.EqualIPs(port()->Candidates()[0].address()));
|
| EXPECT_EQ(kStunCandidatePriority, port()->Candidates()[0].priority());
|
| @@ -225,7 +228,7 @@ TEST_F(StunPortTest, TestPrepareAddressHostname) {
|
| TEST_F(StunPortTest, TestPrepareAddressHostnameFail) {
|
| CreateStunPort(kBadHostnameAddr);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| EXPECT_TRUE(error());
|
| EXPECT_EQ(0U, port()->Candidates().size());
|
| }
|
| @@ -236,20 +239,18 @@ TEST_F(StunPortTest, TestKeepAliveResponse) {
|
| SetKeepaliveDelay(500); // 500ms of keepalive delay.
|
| CreateStunPort(kStunHostnameAddr);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| ASSERT_EQ(1U, port()->Candidates().size());
|
| EXPECT_TRUE(kLocalAddr.EqualIPs(port()->Candidates()[0].address()));
|
| - // Waiting for 1 seond, which will allow us to process
|
| - // response for keepalive binding request. 500 ms is the keepalive delay.
|
| - rtc::Thread::Current()->ProcessMessages(1000);
|
| - ASSERT_EQ(1U, port()->Candidates().size());
|
| + SIMULATED_WAIT(false, 1000, fake_clock());
|
| + EXPECT_EQ(1U, port()->Candidates().size());
|
| }
|
|
|
| // Test that a local candidate can be generated using a shared socket.
|
| TEST_F(StunPortTest, TestSharedSocketPrepareAddress) {
|
| CreateSharedUdpPort(kStunAddr1);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| ASSERT_EQ(1U, port()->Candidates().size());
|
| EXPECT_TRUE(kLocalAddr.EqualIPs(port()->Candidates()[0].address()));
|
| }
|
| @@ -260,7 +261,7 @@ TEST_F(StunPortTest, TestSharedSocketPrepareAddress) {
|
| TEST_F(StunPortTest, TestSharedSocketPrepareAddressInvalidHostname) {
|
| CreateSharedUdpPort(kBadHostnameAddr);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| ASSERT_EQ(1U, port()->Candidates().size());
|
| EXPECT_TRUE(kLocalAddr.EqualIPs(port()->Candidates()[0].address()));
|
|
|
| @@ -279,7 +280,7 @@ TEST_F(StunPortTest, TestNoDuplicatedAddressWithTwoStunServers) {
|
| CreateStunPort(stun_servers);
|
| EXPECT_EQ("stun", port()->Type());
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| EXPECT_EQ(1U, port()->Candidates().size());
|
| EXPECT_EQ(port()->Candidates()[0].relay_protocol(), "");
|
| }
|
| @@ -293,7 +294,7 @@ TEST_F(StunPortTest, TestMultipleStunServersWithBadServer) {
|
| CreateStunPort(stun_servers);
|
| EXPECT_EQ("stun", port()->Type());
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| EXPECT_EQ(1U, port()->Candidates().size());
|
| }
|
|
|
| @@ -311,7 +312,7 @@ TEST_F(StunPortTest, TestTwoCandidatesWithTwoStunServersAcrossNat) {
|
| CreateStunPort(stun_servers);
|
| EXPECT_EQ("stun", port()->Type());
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| EXPECT_EQ(2U, port()->Candidates().size());
|
| EXPECT_EQ(port()->Candidates()[0].relay_protocol(), "");
|
| EXPECT_EQ(port()->Candidates()[1].relay_protocol(), "");
|
| @@ -360,9 +361,10 @@ TEST_F(StunPortTest, TestStunBindingRequestShortLifetime) {
|
| SetKeepaliveLifetime(100);
|
| CreateStunPort(kStunAddr1);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| - EXPECT_TRUE_WAIT(!port()->HasPendingRequest(cricket::STUN_BINDING_REQUEST),
|
| - 2000);
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| + EXPECT_TRUE_SIMULATED_WAIT(
|
| + !port()->HasPendingRequest(cricket::STUN_BINDING_REQUEST), 2000,
|
| + fake_clock());
|
| }
|
|
|
| // Test that by default, the STUN binding requests will last for a long time.
|
| @@ -370,7 +372,8 @@ TEST_F(StunPortTest, TestStunBindingRequestLongLifetime) {
|
| SetKeepaliveDelay(101);
|
| CreateStunPort(kStunAddr1);
|
| PrepareAddress();
|
| - EXPECT_TRUE_WAIT(done(), kTimeoutMs);
|
| - rtc::Thread::Current()->ProcessMessages(1000);
|
| - EXPECT_TRUE(port()->HasPendingRequest(cricket::STUN_BINDING_REQUEST));
|
| + EXPECT_TRUE_SIMULATED_WAIT(done(), kTimeoutMs, fake_clock());
|
| + EXPECT_TRUE_SIMULATED_WAIT(
|
| + port()->HasPendingRequest(cricket::STUN_BINDING_REQUEST), 1000,
|
| + fake_clock());
|
| }
|
|
|