# Copyright 2021 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("metrics_buffer") {
  sources = [
    "metrics_buffer.cc",
    "metrics_buffer.h",
    "metrics_impl.cc",
    "metrics_impl.h",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io_cpp_hlcpp_conversion",
    "//sdk/fidl/fuchsia.metrics:fuchsia.metrics_cpp",
    "//sdk/lib/component/incoming/cpp",
    "//sdk/lib/sys/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",

    # Only for <ddk/debug.h>'s severity levels.
    "//src/lib/ddk",
  ]

  visibility = [
    ":metrics_buffer_unittests",
    "//src/devices/sysmem/drivers/sysmem:sysmem_common_srcs",
    "//src/lib",
    "//src/media/drivers/amlogic_decoder:sources",
    "//src/media/lib/codec_impl",
  ]
}

executable("metrics_buffer_unittests") {
  testonly = true

  sources = [ "metrics_buffer_unittests.cc" ]

  deps = [
    ":metrics_buffer",
    "//sdk/fidl/fuchsia.metrics:fuchsia.metrics_cpp",
    "//sdk/fidl/fuchsia.metrics:fuchsia.metrics_hlcpp",
    "//sdk/lib/fdio:fdio",
    "//sdk/lib/vfs/cpp",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

fuchsia_unittest_package("metrics_buffer_tests") {
  deps = [ ":metrics_buffer_unittests" ]
}

group("tests") {
  testonly = true
  deps = [ ":metrics_buffer_tests" ]
}
