# 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")
import("//sdk/ctf/build/ctf.gni")

ctf_executable("diagnostics-test-bin") {
  output_name = "diagnostics-test"
  testonly = true

  sources = [ "accessor_test.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_hlcpp",
    "//sdk/lib/fit",
    "//sdk/lib/sys/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/zxtest",
  ]

  non_cts_deps = [
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2_hlcpp",
    "//sdk/lib/inspect/contrib/cpp:archive_reader",

    # TODO(81398): Include this in the SDK.
    "//sdk/lib/sys/component/cpp/testing:cpp",
    "//third_party/rapidjson",
    "//third_party/re2",
  ]
}

ctf_fuchsia_component("diagnostics-test") {
  manifest = "meta/diagnostics-test.cml"
  testonly = true

  deps = [
    ":diagnostics-test-bin",
    "//sdk/fidl/fuchsia.component:fuchsia.component_hlcpp",
  ]
}

ctf_executable("inspect-publisher-bin") {
  output_name = "inspect-publisher"
  testonly = true

  sources = [ "inspect_publisher.cc" ]

  deps = [
    "//sdk/lib/sys/cpp",
    "//sdk/lib/sys/inspect/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

ctf_fuchsia_component("inspect-publisher") {
  manifest = "meta/inspect-publisher.cml"
  testonly = true
  deps = [ ":inspect-publisher-bin" ]
}

ctf_fuchsia_test_package("fuchsia-diagnostics-tests") {
  plasa_element = "fidl/fuchsia.diagnostics/ArchiveAccessor"
  package_name = "fuchsia-diagnostics-tests"
  test_components = [ ":diagnostics-test" ]
  deps = [ ":inspect-publisher" ]
}

group("tests") {
  testonly = true
  deps = [ ":fuchsia-diagnostics-tests" ]
}
