# 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",
    "drivers",
    "examples",
    "lib",
  ]
}

fuzzers_package("audio_fuzzers") {
  fuzzers = [ "audio_core:audio_core_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",
  ]
}
