# 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/test.gni")
import("//src/sys/build/fuchsia_unittest_package.gni")

group("test") {
  testonly = true
  deps = [ ":async-test-pkg" ]
}

test("async") {
  output_name = "async-test"
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [
    "default_tests.cc",
    "dispatcher_tests.cc",
    "executor_tests.cc",
    "irq_tests.cc",
    "paged_vmo_tests.cc",
    "receiver_tests.cc",
    "task_tests.cc",
    "time_tests.cc",
    "trap_tests.cc",
    "wait_tests.cc",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//sdk/lib/fit",
    "//zircon/public/lib/async",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/async-default",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/async-testing",
  ]

  # TODO(fxb/62981): fix stack-use-after-return and delete
  deps += [ "//build/config/sanitizers:suppress-asan-stack-use-after-return" ]
}

fuchsia_unittest_package("async-test-pkg") {
  deps = [ ":async" ]
}
