From 7d6a259baa098e161ef81f564c053099ec5c1d4c Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Fri, 22 Mar 2019 15:38:16 +0100 Subject: [PATCH] Adds fake clock unit test. Also removing unused ScopedRealClock. Bug: webrtc:10365 Change-Id: I3cd95df894cba9bf4ee703d979f476e2c526bf35 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128860 Reviewed-by: Karl Wiberg Commit-Queue: Sebastian Jansson Cr-Commit-Position: refs/heads/master@{#27425} --- rtc_base/BUILD.gn | 1 + rtc_base/fake_clock.h | 10 --------- rtc_base/fake_clock_unittest.cc | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 rtc_base/fake_clock_unittest.cc diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn index 1d9221fa74..2bae52cf0f 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -1359,6 +1359,7 @@ if (rtc_include_tests) { "callback_unittest.cc", "crc32_unittest.cc", "data_rate_limiter_unittest.cc", + "fake_clock_unittest.cc", "helpers_unittest.cc", "ip_address_unittest.cc", "memory_usage_unittest.cc", diff --git a/rtc_base/fake_clock.h b/rtc_base/fake_clock.h index f5539f7e1b..dce15391f7 100644 --- a/rtc_base/fake_clock.h +++ b/rtc_base/fake_clock.h @@ -62,16 +62,6 @@ class ScopedFakeClock : public FakeClock { ClockInterface* prev_clock_; }; -// Helper class to "undo" the fake clock temporarily. -class ScopedRealClock { - public: - ScopedRealClock(); - ~ScopedRealClock(); - - private: - ClockInterface* prev_clock_; -}; - } // namespace rtc #endif // RTC_BASE_FAKE_CLOCK_H_ diff --git a/rtc_base/fake_clock_unittest.cc b/rtc_base/fake_clock_unittest.cc new file mode 100644 index 0000000000..00a2c89cb5 --- /dev/null +++ b/rtc_base/fake_clock_unittest.cc @@ -0,0 +1,37 @@ +/* + * Copyright 2019 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "test/gtest.h" + +#include "rtc_base/fake_clock.h" + +namespace rtc { +TEST(ScopedFakeClockTest, OverridesGlobalClock) { + const int64_t kFixedTimeUs = 100000; + int64_t real_time_us = rtc::TimeMicros(); + EXPECT_NE(real_time_us, 0); + { + ScopedFakeClock scoped; + EXPECT_EQ(rtc::TimeMicros(), 0); + + scoped.AdvanceTimeMicros(1000); + EXPECT_EQ(rtc::TimeMicros(), 1000); + + scoped.SetTimeMicros(kFixedTimeUs); + EXPECT_EQ(rtc::TimeMicros(), kFixedTimeUs); + + scoped.AdvanceTimeMicros(1000); + EXPECT_EQ(rtc::TimeMicros(), kFixedTimeUs + 1000); + } + + EXPECT_NE(rtc::TimeMicros(), kFixedTimeUs + 1000); + EXPECT_GE(rtc::TimeMicros(), real_time_us); +} +} // namespace rtc