Make monotonic_now a required parameter to PhasedLoop
This prepares us much better for mocking out time as part of the event
loop conversion.
Change-Id: I57560b97b265ddd41fe7a4e9f74d7b1324d15955
diff --git a/aos/util/phased_loop_test.cc b/aos/util/phased_loop_test.cc
index 2a52b90..4f07bcc 100644
--- a/aos/util/phased_loop_test.cc
+++ b/aos/util/phased_loop_test.cc
@@ -23,7 +23,8 @@
TEST_F(PhasedLoopTest, Reset) {
{
- PhasedLoop loop(milliseconds(100), milliseconds(0));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(),
+ milliseconds(0));
loop.Reset(monotonic_clock::epoch());
EXPECT_EQ(InMs(0), loop.sleep_time());
@@ -46,14 +47,16 @@
EXPECT_EQ(InMs(200), loop.sleep_time());
}
{
- PhasedLoop loop(milliseconds(100), milliseconds(1));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(),
+ milliseconds(1));
loop.Reset(monotonic_clock::epoch());
EXPECT_EQ(InMs(-99), loop.sleep_time());
EXPECT_EQ(1, loop.Iterate(monotonic_clock::epoch()));
EXPECT_EQ(InMs(1), loop.sleep_time());
}
{
- PhasedLoop loop(milliseconds(100), milliseconds(99));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(),
+ milliseconds(99));
loop.Reset(monotonic_clock::epoch());
EXPECT_EQ(InMs(-1), loop.sleep_time());
@@ -79,7 +82,8 @@
TEST_F(PhasedLoopTest, Iterate) {
{
- PhasedLoop loop(milliseconds(100), milliseconds(99));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(),
+ milliseconds(99));
loop.Reset(monotonic_clock::epoch());
EXPECT_EQ(1, loop.Iterate(monotonic_clock::epoch()));
EXPECT_EQ(InMs(99), loop.sleep_time());
@@ -99,7 +103,8 @@
EXPECT_EQ(InMs(699), loop.sleep_time());
}
{
- PhasedLoop loop(milliseconds(100), milliseconds(1));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(),
+ milliseconds(1));
loop.Reset(monotonic_clock::epoch());
EXPECT_EQ(1, loop.Iterate(monotonic_clock::epoch()));
EXPECT_EQ(InMs(1), loop.sleep_time());
@@ -124,7 +129,7 @@
// This seems like a rare case at first, but starting from zero needs to
// work, which means negatives should too.
TEST_F(PhasedLoopTest, CrossingZero) {
- PhasedLoop loop(milliseconds(100), milliseconds(1));
+ PhasedLoop loop(milliseconds(100), monotonic_clock::epoch(), milliseconds(1));
loop.Reset(InMs(-1000));
EXPECT_EQ(InMs(-1099), loop.sleep_time());
EXPECT_EQ(9, loop.Iterate(InMs(-250)));
@@ -152,7 +157,8 @@
// Tests OffsetFromIntervalAndTime for various edge conditions.
TEST_F(PhasedLoopTest, OffsetFromIntervalAndTimeTest) {
- PhasedLoop loop(milliseconds(1000), milliseconds(300));
+ PhasedLoop loop(milliseconds(1000), monotonic_clock::epoch(),
+ milliseconds(300));
EXPECT_EQ(milliseconds(1),
loop.OffsetFromIntervalAndTime(milliseconds(1000), InMs(1001)));
@@ -175,14 +181,18 @@
// Tests that passing invalid values to the constructor dies correctly.
TEST_F(PhasedLoopDeathTest, InvalidValues) {
- EXPECT_DEATH(PhasedLoop(milliseconds(1), milliseconds(2)),
- ".*offset<interval.*");
- EXPECT_DEATH(PhasedLoop(milliseconds(1), milliseconds(1)),
- ".*offset<interval.*");
- EXPECT_DEATH(PhasedLoop(milliseconds(1), milliseconds(-1)),
- ".*offset>=monotonic_clock::duration\\(0\\).*");
- EXPECT_DEATH(PhasedLoop(milliseconds(0), milliseconds(0)),
- ".*interval>monotonic_clock::duration\\(0\\).*");
+ EXPECT_DEATH(
+ PhasedLoop(milliseconds(1), monotonic_clock::epoch(), milliseconds(2)),
+ ".*offset<interval.*");
+ EXPECT_DEATH(
+ PhasedLoop(milliseconds(1), monotonic_clock::epoch(), milliseconds(1)),
+ ".*offset<interval.*");
+ EXPECT_DEATH(
+ PhasedLoop(milliseconds(1), monotonic_clock::epoch(), milliseconds(-1)),
+ ".*offset>=monotonic_clock::duration\\(0\\).*");
+ EXPECT_DEATH(
+ PhasedLoop(milliseconds(0), monotonic_clock::epoch(), milliseconds(0)),
+ ".*interval>monotonic_clock::duration\\(0\\).*");
}
} // namespace testing