# Copyright 2019 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/rust/rustc_test.gni")
import("//src/sys/build/components.gni")

rustc_test("bin") {
  name = "feedback_reader_test"
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics-rustc",
    "//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
    "//src/lib/cstr",
    "//src/lib/diagnostics/reader//rust",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:glob",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
  ]

  sources = [ "src/lib.rs" ]

  inputs = [
    "configs/client_selectors_dont_overlap_with_static_selectors.json",
    "configs/archivist_config.json",
    "configs/static_selectors.cfg",
    "configs/all_golden.json",
    "configs/single_value_client_selector.json",
  ]
}

fuchsia_component("feedback_reader") {
  testonly = true
  manifest = "meta/feedback_reader_test.cmx"
  deps = [
    ":bin",
    ":feedback_reader_test_archivist",
    "//src/diagnostics/iquery/test/test_component",
  ]
}

fuchsia_component("feedback_reader_test_archivist") {
  testonly = true
  manifest = "meta/feedback_reader_test_archivist.cmx"
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_test("test-spec") {
  package = "//src/diagnostics/archivist/tests:archivist-integration-tests"
  component = ":feedback_reader"
}
