# 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.

source_set("testing") {
  testonly = true

  sources = [
    "audio_clock_helper.cc",
    "audio_clock_helper.h",
    "fake_audio_device.h",
    "fake_audio_driver.h",
    "fake_audio_driver_v1.cc",
    "fake_audio_driver_v2.cc",
    "fake_audio_renderer.cc",
    "fake_audio_renderer.h",
    "fake_plug_detector.h",
    "fake_profile_provider.h",
    "fake_stream.cc",
    "fake_stream.h",
    "matchers.h",
    "packet_factory.cc",
    "packet_factory.h",
    "test_process_config.h",
    "threading_model_fixture.h",
  ]

  public_deps = [ "//zircon/system/ulib/fzl" ]

  deps = [
    "//garnet/public/lib/gtest",
    "//sdk/fidl/fuchsia.hardware.audio",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/media/audio/audio_core:audio_core_lib",
    "//src/media/audio/audio_core/mixer",
    "//src/media/audio/lib/clock:clone_mono",
    "//src/media/audio/lib/clock/testing",
    "//src/media/audio/lib/format",
    "//src/media/audio/lib/test:message_transceiver",
    "//zircon/public/lib/fit",
    "//zircon/system/ulib/async-testing",
    "//zircon/system/ulib/audio-proto-utils",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
