# Copyright 2016 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")

executable("lib_component_unittest") {
  testonly = true

  deps = [
    "//garnet/examples/fidl/services:echo2",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/component/cpp/testing",
    "//garnet/public/lib/fxl/test:gtest_main",
    "//garnet/public/lib/gtest",
  ]

  sources = [
    "enclosing_environment_test.cc",
  ]
}

executable("helper_proc") {
  testonly = true

  sources = [
    "helper.cc",
  ]

  deps = [
    "//garnet/examples/fidl/services:echo2",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fidl/cpp",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

test_package("lib_component_test") {
  deps = [
    ":helper_proc",
    ":lib_component_unittest",
  ]

  binaries = [
    {
      name = "helper_proc"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/helper_proc.cmx")
      dest = "helper_proc.cmx"
    },
  ]

  tests = [
    {
      name = "lib_component_unittest"
    },
  ]
}
