# 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/fuzzing/fuzzer.gni")

group("audio") {
  testonly = true
  deps = [
    ":tests",
    ":tools",
    "audio_core/v2:audio_core",
    "drivers",
    "examples",
    "lib",
  ]
}

fuzzers_package("audio_fuzzers") {
  fuzzers = [
    "audio_core:audio_core_fuzzer",
    # TODO(fxbug.dev/83868) Migrate this fuzzer to component fuzzing framework and re-enable.
    # "audio_core/test/api/fuzzer:api-fuzzer",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":audio_fuzzers",
    "audio_core:tests",
    "drivers:tests",
    "examples:tests",
    "lib:tests",
    "lib/audio_test_devmgr",
    "services:tests",
    "tools:tests",
    "//src/power/testing/thermal-test-control",
  ]
}

group("tools") {
  testonly = true
  deps = [
    "audio_core:tools",
    "tools",
  ]
}
