Use GlobalSimulatedTimeController in dtmf_sender_unittest Bug: webrtc:42223992 Change-Id: I7359fa261b641db0db6fb32e2c36ec376a6a6964 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/457580 Auto-Submit: Evan Shrubsole <eshr@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47219}
diff --git a/pc/dtmf_sender_unittest.cc b/pc/dtmf_sender_unittest.cc index 9c62cc1..7e4063c 100644 --- a/pc/dtmf_sender_unittest.cc +++ b/pc/dtmf_sender_unittest.cc
@@ -20,11 +20,11 @@ #include "api/scoped_refptr.h" #include "api/test/rtc_error_matchers.h" #include "api/units/time_delta.h" -#include "rtc_base/fake_clock.h" -#include "rtc_base/thread.h" +#include "api/units/timestamp.h" #include "rtc_base/time_utils.h" #include "test/gmock.h" #include "test/gtest.h" +#include "test/time_controller/simulated_time_controller.h" #include "test/wait_until.h" using webrtc::DtmfProviderInterface; @@ -116,9 +116,12 @@ class DtmfSenderTest : public ::testing::Test { protected: DtmfSenderTest() - : observer_(new FakeDtmfObserver()), provider_(new FakeDtmfProvider()) { + : time_controller_(webrtc::Timestamp::Seconds(1)), + observer_(new FakeDtmfObserver()), + provider_(new FakeDtmfProvider()) { provider_->SetCanInsertDtmf(true); - dtmf_ = DtmfSender::Create(webrtc::Thread::Current(), provider_.get()); + dtmf_ = + DtmfSender::Create(time_controller_.GetMainThread(), provider_.get()); dtmf_->RegisterObserver(observer_.get()); } @@ -211,11 +214,10 @@ } } - webrtc::AutoThread main_thread_; + webrtc::GlobalSimulatedTimeController time_controller_; std::unique_ptr<FakeDtmfObserver> observer_; std::unique_ptr<FakeDtmfProvider> provider_; webrtc::scoped_refptr<DtmfSender> dtmf_; - webrtc::ScopedFakeClock fake_clock_; }; TEST_F(DtmfSenderTest, CanInsertDtmf) { @@ -232,7 +234,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->completed(); }, ::testing::IsTrue(), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); // The unrecognized characters should be ignored. @@ -252,7 +254,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->tones().size(); }, ::testing::Eq(1), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); VerifyExpectedState("2", duration, inter_tone_gap); // Insert with another tone buffer. @@ -262,7 +264,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->completed(); }, ::testing::IsTrue(), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); std::vector<FakeDtmfProvider::DtmfInfo> dtmf_queue_ref; @@ -281,13 +283,13 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->tones().size(); }, ::testing::Eq(1), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); // Delete provider. dtmf_->OnDtmfProviderDestroyed(); provider_.reset(); // The queue should be discontinued so no more tone callbacks. - fake_clock_.AdvanceTime(webrtc::TimeDelta::Millis(200)); + time_controller_.AdvanceTime(webrtc::TimeDelta::Millis(200)); EXPECT_EQ(1U, observer_->tones().size()); } @@ -300,12 +302,12 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->tones().size(); }, ::testing::Eq(1), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); // Delete the sender. dtmf_ = nullptr; // The queue should be discontinued so no more tone callbacks. - fake_clock_.AdvanceTime(webrtc::TimeDelta::Millis(200)); + time_controller_.AdvanceTime(webrtc::TimeDelta::Millis(200)); EXPECT_EQ(1U, observer_->tones().size()); } @@ -319,7 +321,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->tones().size(); }, ::testing::Eq(1), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); // Insert with another tone buffer. EXPECT_TRUE(dtmf_->InsertDtmf(tones2, duration, inter_tone_gap)); @@ -327,7 +329,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->completed(); }, ::testing::IsTrue(), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); std::vector<FakeDtmfProvider::DtmfInfo> dtmf_queue_ref; @@ -346,7 +348,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->completed(); }, ::testing::IsTrue(), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); VerifyOnProvider(tones, duration, inter_tone_gap); @@ -365,7 +367,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->completed(); }, ::testing::IsTrue(), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); VerifyOnProvider(tones, duration, inter_tone_gap, comma_delay); @@ -404,7 +406,7 @@ EXPECT_THAT(webrtc::WaitUntil( [&] { return observer_->tones().size(); }, ::testing::Eq(1), {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs), - .clock = &fake_clock_}), + .clock = &time_controller_}), webrtc::IsRtcOk()); VerifyExpectedState("BC", duration, inter_tone_gap); }