# 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/host.gni")
import("//build/rust/rustc_binary.gni")

rustc_binary("test_list_tool") {
  edition = "2021"
  name = "test_list_tool"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
    "//sdk/fidl/fuchsia.data:fuchsia.data_rust",
    "//src/lib/diagnostics/data/rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-url",
    "//src/lib/testing/test_list",
    "//src/sys/pkg/lib/far/rust:fuchsia-archive",
    "//src/sys/pkg/lib/fuchsia-pkg",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:camino",
    "//third_party/rust_crates:maplit",
    "//third_party/rust_crates:rayon",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:structopt",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [ "//third_party/rust_crates:tempfile" ]

  sources = [
    "src/error.rs",
    "src/main.rs",
    "src/opts.rs",
  ]

  testonly = true
}

install_host_tools("install") {
  testonly = true
  deps = [ ":test_list_tool" ]
  outputs = [ "test_list_tool" ]
}
