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 <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27425}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 1d9221f..2bae52c 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -1359,6 +1359,7 @@
"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 f5539f7..dce1539 100644
--- a/rtc_base/fake_clock.h
+++ b/rtc_base/fake_clock.h
@@ -62,16 +62,6 @@
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 0000000..00a2c89
--- /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