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

import("//build/json/validate_json.gni")
import("//build/rust/rustc_binary.gni")
import("//build/test/test_package.gni")
import("//src/sys/build/components.gni")

rustc_binary("bin") {
  testonly = true
  name = "system_metrics_logger"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "fuchsia.systemmetrics.test:fuchsia.systemmetrics.test-rustc",
    "//sdk/fidl/fuchsia.kernel:fuchsia.kernel-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/trace/rust:trace",
    "//src/lib/trace/rust:trace-provider",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]
  test_deps = [
    "//src/lib/fidl/rust/fidl",
    "//third_party/rust_crates:matches",
  ]

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

fuchsia_component("system-metrics-logger-component") {
  testonly = true
  deps = [ ":bin" ]

  manifest = "meta/system-metrics-logger.cml"
}

fuchsia_package("system-metrics-logger") {
  testonly = true
  deps = [ ":system-metrics-logger-component" ]
}

fuchsia_component("system-metrics-logger-test-component") {
  testonly = true
  deps = [ ":bin_test" ]

  component_name = "system-metrics-logger-tests"

  manifest = "meta/system-metrics-logger-tests.cml"
}

fuchsia_test_package("system-metrics-logger-tests") {
  test_components = [ ":system-metrics-logger-test-component" ]
  deps = [ ":system-metrics-logger-component" ]
  test_specs = {
    environments = basic_envs
  }
}

group("tests") {
  testonly = true
  deps = [ ":system-metrics-logger-tests" ]
}
