diff options
Diffstat (limited to 'src/mongo/util/clock_source_mock.h')
-rw-r--r-- | src/mongo/util/clock_source_mock.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/mongo/util/clock_source_mock.h b/src/mongo/util/clock_source_mock.h index 0fc968a430e..a257775bb7c 100644 --- a/src/mongo/util/clock_source_mock.h +++ b/src/mongo/util/clock_source_mock.h @@ -43,7 +43,7 @@ namespace mongo { /** * Mock clock source that returns a fixed time until explicitly advanced. */ -class ClockSourceMock final : public ClockSource { +class ClockSourceMock : public ClockSource { public: /** * Constructs a ClockSourceMock with the current time set to the Unix epoch. @@ -75,6 +75,22 @@ private: std::vector<Alarm> _alarms; }; +/** + * Mock clock source where reading the clock also advances the current time by a fixed interval. + */ +class AutoAdvancingClockSourceMock : public ClockSourceMock { +public: + AutoAdvancingClockSourceMock(Milliseconds increment) : _increment(increment) {} + + Date_t now() override { + ClockSourceMock::advance(_increment); + return ClockSourceMock::now(); + } + +private: + const Milliseconds _increment; +}; + class SharedClockSourceAdapter final : public ClockSource { public: explicit SharedClockSourceAdapter(std::shared_ptr<ClockSource> source) |