# 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/unification/zx_library.gni")

zx_library("async-testing") {
  sdk = "source"
  sdk_publishable = true
  sdk_headers = [
    "lib/async-testing/dispatcher_stub.h",
    "lib/async-testing/test_loop.h",
    "lib/async-testing/test_loop_dispatcher.h",
    "lib/async-testing/test_subloop.h",
  ]
  testonly = true
  sources = [
    "dispatcher_stub.cc",
    "test_loop.cc",
    "test_loop_dispatcher.cc",
  ]
  public_deps = [
    # <lib/async-testing/dispatcher.h_stub> has #include <lib/async/dispatcher.h>.
    "//zircon/public/lib/async",

    # <lib/async-testing/dispatcher.h_stub> has #include <lib/zx/time.h>.
    "//zircon/public/lib/zx",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//zircon/public/lib/async",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/async-default",
  ]
}

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