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