# 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.

import("//build/components.gni")

source_set("timekeeper") {
  sources = [ "clock.h" ]

  public_deps = [ "//zircon/system/ulib/zx" ]
}

source_set("system") {
  sources = [ "system_clock.h" ]

  public_deps = [
    ":timekeeper",
    "//zircon/system/ulib/zx",
  ]
}

source_set("testing") {
  testonly = true

  sources = [
    "async_test_clock.cc",
    "async_test_clock.h",
    "monotonic_test_clock_base.cc",
    "monotonic_test_clock_base.h",
    "test_clock.cc",
    "test_clock.h",
    "test_loop_test_clock.cc",
    "test_loop_test_clock.h",
  ]

  public_deps = [
    ":timekeeper",
    "//sdk/lib/fit",
    "//zircon/system/ulib/async:async-cpp",
    "//zircon/system/ulib/async-testing",
  ]
}

executable("timekeeper_lib_unittests") {
  testonly = true
  sources = [
    "async_test_clock_unittest.cc",
    "system_clock_unittest.cc",
    "test_clock_unittest.cc",
    "test_loop_test_clock_unittest.cc",
  ]

  deps = [
    ":system",
    ":testing",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/testing/loop_fixture",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/async-testing",
  ]
}

fuchsia_unittest_package("timekeeper_lib_tests") {
  deps = [ ":timekeeper_lib_unittests" ]

  test_specs = {
    environments = [ emu_env ]
  }
}

group("tests") {
  testonly = true

  deps = [ ":timekeeper_lib_tests" ]
}
