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

group("tests") {
  testonly = true
  deps = [
    ":unittests-pkg",
    "tests",
  ]
}

rustc_binary("bin") {
  name = "fuzz_registry"
  visibility = [ ":*" ]
  edition = "2021"
  with_unit_tests = true
  deps = [
    "//sdk/fidl/fuchsia.test.manager:fuchsia.test.manager-rustc",
    "//src/lib/async-utils",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/fuzzing/fidl:fuchsia.fuzzer-rustc",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:log",
  ]
  sources = [
    "src/main.rs",
    "src/registry.rs",
  ]
}

fuchsia_component("fuzz-registry") {
  visibility = [ ":*" ]
  testonly = true
  manifest = "meta/fuzz-registry.cml"
  deps = [ ":bin" ]
}

fuchsia_package("registry") {
  package_name = "fuzz-registry"
  testonly = true
  deps = [ ":fuzz-registry" ]
}

fuchsia_component("unittests") {
  visibility = [ ":*" ]
  testonly = true
  manifest = "meta/unittests.cml"
  deps = [ ":bin_test" ]
}

fuchsia_test_package("unittests-pkg") {
  package_name = "fuzz-registry-unittests"
  test_components = [ ":unittests" ]
}
