# 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("devmgr-integration-test") {
  sdk = "shared"
  sdk_headers = [ "lib/devmgr-integration-test/fixture.h" ]

  # TODO: testonly = true
  shared = true
  sources = [
    "dir-watcher.cc",
    "file-wait.cc",
    "launcher.cc",
  ]
  public_deps = [
    # <lib/devmgr-integration-test/fixture.h> has #include <lib/vfs/cpp/pseudo_dir.h>
    "//sdk/lib/vfs/cpp",
    "//zircon/public/lib/async",

    # <lib/devmgr-integration-test/fixture.h> has #include <lib/devmgr-launcher/launch.h>.
    "//zircon/system/ulib/devmgr-launcher",

    # <lib/devmgr-integration-test/fixture.h> has #include <fbl/unique_fd.h>.
    "//zircon/public/lib/fbl",

    # <lib/devmgr-integration-test/fixture.h> has #include <lib/fit/function.h>.
    "//sdk/lib/fit",

    # <lib/devmgr-integration-test/fixture.h> has #include <lib/zx/channel.h>.
    "//zircon/public/lib/zx",

    # <lib/devmgr-integration-test/fixture.h> has #include <fuchsia/io/llcpp/fidl.h>
    "//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",

    # <lib/devmgr-integration-test/fixture.h> has #include <fuchsia/process/lifecycle/llcpp/fidl.h>
    "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_llcpp",
  ]
  deps = [
    "//sdk/fidl/fuchsia.boot:fuchsia.boot_c",
    "//sdk/fidl/fuchsia.boot:fuchsia.boot_llcpp",
    "//sdk/fidl/fuchsia.exception:fuchsia.exception_llcpp",
    "//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",
    "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_c",
    "//sdk/fidl/fuchsia.power.manager:fuchsia.power.manager_llcpp",
    "//sdk/fidl/fuchsia.process:fuchsia.process_llcpp",
    "//sdk/fidl/fuchsia.scheduler:fuchsia.scheduler_c",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2_llcpp",
    "//sdk/lib/fdio",
    "//sdk/lib/sys/cpp",
    "//src/lib/ddk",
    "//src/lib/storage/vfs/cpp",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/devmgr-launcher",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/fidl-async",
    "//zircon/system/ulib/fidl-async:fidl-async-cpp",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/mock-boot-arguments",
    "//zircon/system/ulib/service:service-llcpp",
    "//zircon/system/ulib/syslog",
  ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}

group("tests") {
  testonly = true
  deps = [ "test:devmgr-integration-test" ]
}
