|  | // Copyright 2018 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "src/lib/timekeeper/system_clock.h" | 
|  |  | 
|  | #include <gtest/gtest.h> | 
|  |  | 
|  | namespace timekeeper { | 
|  |  | 
|  | namespace { | 
|  |  | 
|  | TEST(SystemClockTest, MonotonicClock) { | 
|  | SystemClock clock; | 
|  |  | 
|  | auto time1 = clock.Now(); | 
|  | auto time2 = clock.Now(); | 
|  |  | 
|  | EXPECT_GE(time2, time1); | 
|  | } | 
|  |  | 
|  | TEST(SystemClockTest, UTCClock) { | 
|  | SystemClock clock; | 
|  |  | 
|  | zx::time_utc time1; | 
|  | ASSERT_EQ(ZX_OK, clock.Now(&time1)); | 
|  |  | 
|  | EXPECT_GT(time1, zx::time_utc(0)); | 
|  | } | 
|  |  | 
|  | TEST(SystemClockTest, ThreadClock) { | 
|  | SystemClock clock; | 
|  |  | 
|  | zx::time_thread time1, time2; | 
|  | ASSERT_EQ(ZX_OK, clock.Now(&time1)); | 
|  | ASSERT_EQ(ZX_OK, clock.Now(&time2)); | 
|  |  | 
|  | EXPECT_GE(time2, time1); | 
|  | } | 
|  |  | 
|  | }  // namespace | 
|  | }  // namespace timekeeper |