blob: 7349b44555205cc1f33c8faaa15f7904f0404963 [file] [log] [blame]
// 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/test_clock.h"
#include <lib/zx/time.h>
#include <gtest/gtest.h>
#include "src/lib/timekeeper/clock.h"
namespace timekeeper {
namespace {
TEST(TestClockTest, SetUtcUpdatesUtcTime) {
TestClock clock;
const time_utc expected_utc(42);
clock.SetUtc(expected_utc);
time_utc utc;
ASSERT_EQ(ZX_OK, clock.UtcNow(&utc));
EXPECT_EQ(expected_utc, utc);
EXPECT_EQ(zx::time_monotonic(0), clock.MonotonicNow());
EXPECT_EQ(zx::time_boot(0), clock.BootNow());
}
TEST(TestClockTest, SetMonotonicUpdatesMonotonicTime) {
TestClock clock;
const zx::time_monotonic expected_monotonic(42);
clock.SetMonotonic(expected_monotonic);
time_utc utc;
ASSERT_EQ(ZX_OK, clock.UtcNow(&utc));
EXPECT_EQ(time_utc(0), utc);
EXPECT_EQ(expected_monotonic, clock.MonotonicNow());
EXPECT_EQ(zx::time_boot(0), clock.BootNow());
}
TEST(TestClockTest, SetBootUpdatesBootTime) {
TestClock clock;
const zx::time_boot expected_boot(42);
clock.SetBoot(expected_boot);
time_utc utc;
ASSERT_EQ(ZX_OK, clock.UtcNow(&utc));
EXPECT_EQ(time_utc(0), utc);
EXPECT_EQ(zx::time_monotonic(0), clock.MonotonicNow());
EXPECT_EQ(expected_boot, clock.BootNow());
}
} // namespace
} // namespace timekeeper