# Copyright 2020 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/test_package.gni")
import("//build/testing/environments.gni")

source_set("cpp") {
  sources = [
    "executor.cc",
    "executor.h",
  ]

  public_deps = [
    "//src/lib/fuchsia-async:fuchsia-async-staticlib",
    "//zircon/public/lib/async",
  ]
}

executable("test_bin") {
  testonly = true
  output_name = "fuchsia-async-cpp-test"
  sources = [ "executor_test.cc" ]
  deps = [
    ":cpp",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

unittest_package("fuchsia-async-cpp-test") {
  deps = [ ":test_bin" ]

  tests = [
    {
      name = "fuchsia-async-cpp-test"
      environments = [ emu_env ]
    },
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":fuchsia-async-cpp-test",
    ":test_bin($host_toolchain)",
  ]
}
