# 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",
    "audio_core",
    "bundles:virtual_audio_service_with_config",
    "drivers",
    "examples",
    "lib",
    "tools",
    "vim2_media_config",
  ]
}

group("drivers") {
  testonly = true
  deps = [
    "drivers/aml-g12-tdm",
    "drivers/as370-pdm-input",
    "drivers/as370-tdm-output",
    "drivers/codecs/alc5514",
    "drivers/codecs/alc5663",
    "drivers/codecs/max98373",
    "drivers/codecs/max98927",
    "drivers/codecs/tas27xx",
    "drivers/codecs/tas5720",
    "drivers/codecs/tas5782",
    "drivers/codecs/tas58xx",
    "drivers/intel-hda/codecs/hdmi:hdmi-audio-codec",
    "drivers/intel-hda/codecs/qemu:qemu-audio-codec",
    "drivers/intel-hda/codecs/realtek:realtek-audio-codec",
    "drivers/intel-hda/controller:intel-hda",
    "drivers/mt8167-tdm-input",
    "drivers/mt8167-tdm-output",
    "drivers/usb-audio",
    "drivers/virtual_audio:virtual_audio_driver",
  ]
}

fuzzers_package("audio_fuzzers") {
  fuzzers = [
    "audio_core:audio_core_fuzzer",
    "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",
    "tools:tests",
    "//src/power/testing/thermal-test-control",
  ]
}
