Removed Common

Change-Id: I01ea8f07220375c2ad9bc0092281d4f27c642303
diff --git a/aos/time/time_test.cc b/aos/time/time_test.cc
new file mode 100644
index 0000000..7b6c1a5
--- /dev/null
+++ b/aos/time/time_test.cc
@@ -0,0 +1,54 @@
+#include "aos/time/time.h"
+
+#include <thread>
+
+#include "gtest/gtest.h"
+
+#include "aos/macros.h"
+#include "aos/util/death_test_log_implementation.h"
+
+namespace aos {
+namespace time {
+namespace testing {
+
+TEST(TimeTest, FromRate) {
+  EXPECT_EQ(::std::chrono::milliseconds(10), FromRate(100));
+}
+
+// Test the monotonic_clock and sleep_until functions.
+TEST(TimeTest, MonotonicClockSleepAndNow) {
+  monotonic_clock::time_point start = monotonic_clock::now();
+  const auto kSleepTime = ::std::chrono::milliseconds(500);
+  ::std::this_thread::sleep_until(start + kSleepTime);
+  monotonic_clock::time_point end = monotonic_clock::now();
+  EXPECT_GE(end - start, kSleepTime);
+  EXPECT_LT(end - start, kSleepTime + ::std::chrono::milliseconds(200));
+}
+
+// Test to_timespec for a duration.
+TEST(TimeTest, DurationToTimespec) {
+  struct timespec pos_time = to_timespec(::std::chrono::milliseconds(56262));
+  EXPECT_EQ(pos_time.tv_sec, 56);
+  EXPECT_EQ(pos_time.tv_nsec, 262000000);
+
+  struct timespec neg_time = to_timespec(::std::chrono::milliseconds(-56262));
+  EXPECT_EQ(neg_time.tv_sec, -56);
+  EXPECT_EQ(neg_time.tv_nsec, -262000000);
+}
+
+// Test to_timespec for a time_point.
+TEST(TimeTest, TimePointToTimespec) {
+  struct timespec pos_time = to_timespec(::aos::monotonic_clock::epoch() +
+                                     ::std::chrono::seconds(1432423));
+  EXPECT_EQ(pos_time.tv_sec, 1432423);
+  EXPECT_EQ(pos_time.tv_nsec, 0);
+
+  struct timespec neg_time = to_timespec(::aos::monotonic_clock::epoch() -
+                                     ::std::chrono::seconds(1432423));
+  EXPECT_EQ(neg_time.tv_sec, -1432423);
+  EXPECT_EQ(neg_time.tv_nsec, 0);
+}
+
+}  // namespace testing
+}  // namespace time
+}  // namespace aos