# Copyright 2022 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")
import("//build/rust/rustc_library.gni")

rustc_library("mock-metrics") {
  version = "0.0.1"
  edition = "2021"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.metrics:fuchsia.metrics_rust",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-sync",
    "//src/sys/pkg/lib/metrics:cobalt_sw_delivery_registry_rustlib",
    "//third_party/rust_crates:futures",
  ]

  test_deps = [ "//src/lib/fidl/rust/fidl" ]

  sources = [ "src/lib.rs" ]
  configs += [ "//build/config/rust/lints:clippy_warn_all" ]
}

fuchsia_unittest_package("mock-metrics-tests") {
  deps = [ ":mock-metrics_test" ]
}

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