# 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")

group("fuzzing") {
  testonly = true
  deps = [
    ":fuzz-manager",
    ":fuzz-registry",
    "fuzzctl",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "common:tests",
    "fuzzctl:tests",
    "libfuzzer:tests",
    "manager:tests",
    "realmfuzzer:tests",
    "registry:tests",
  ]
}

fuchsia_package("fuzz-manager") {
  testonly = true
  deps = [ "manager" ]
}

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