# Copyright 2023 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")
import("//build/test.gni")

group("tests") {
  testonly = true
  deps = [ ":async_helpers_test_pkg" ]
}

config("includes") {
  include_dirs = [ "include" ]
}

source_set("cpp") {
  sources = [
    "async_task.cc",
    "task_group.cc",
  ]
  public = [
    "include/lib/driver/async-helpers/cpp/async_task.h",
    "include/lib/driver/async-helpers/cpp/task_group.h",
  ]
  public_deps = [
    "//sdk/lib/async:async-cpp",
    "//sdk/lib/driver/runtime:driver_runtime_cpp",
    "//sdk/lib/fit",
    "//src/devices/lib/driver:driver_runtime",
  ]
  public_configs = [ ":includes" ]
}

test("async_helpers_test") {
  sources = [ "tests/test.cc" ]
  deps = [
    ":cpp",
    "//examples/components/routing/fidl:echo_cpp",
    "//sdk/lib/async_patterns/testing/cpp",
    "//sdk/lib/driver/testing/cpp",
    "//src/lib/fxl/test:gtest_main",
  ]
}

fuchsia_unittest_package("async_helpers_test_pkg") {
  deps = [ ":async_helpers_test" ]
}
