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

# This file was generated by the `fx create` command. The template
# is located at `//tools/create/templates/component-v1/BUILD.gn.tmpl-rust`.
# If you find something broken, we are eager to review fixes.

import("//build/rust/rustc_binary.gni")
import("//src/sys/build/components.gni")

group("component-time") {
  testonly = true
  deps = [ ":tests" ]
}

group("tests") {
  testonly = true
  deps = [
    ":component-v1-time-unittests",
    ":component-v2-time-unittests",
  ]
}

rustc_test("component-time-test") {
  source_root = "src/test.rs"

  sources = [ "src/test.rs" ]
}

# Run with `fx test component-v1-time-unittests`.
fuchsia_unittest_package("component-v1-time-unittests") {
  executable_path = "bin/component_time_test"
  deps = [ ":component-time-test" ]
}

# Run with `fx test component-v2-time-unittests`.
fuchsia_unittest_package("component-v2-time-unittests") {
  manifest = "meta/component-v2-time-unittests.cml"
  deps = [ ":component-time-test" ]
}
