# 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/bind/bind.gni")
import("//build/config/fuchsia/rules.gni")
import("//build/test.gni")
import("//zircon/system/ulib/devmgr-integration-test/isolated_devmgr.gni")

bind_rules("bind-fail-test-bind") {
  disable_autobind = true
  output = "bind-fail-test-bind.h"
}

driver_module("driver") {
  output_name = "bind-fail-test"

  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  sources = [ "driver.cc" ]
  deps = [
    ":bind-fail-test-bind",
    "//src/devices/lib/driver",
    "//src/lib/ddk",
  ]
  visibility = [
    ":*",
    "//src/devices/bundles:drivers",
  ]
}

test("tests") {
  output_name = "bind-fail-test"

  testonly = true
  sources = [ "test.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.device:fuchsia.device_llcpp",
    "//sdk/lib/fdio",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/devmgr-integration-test",
    "//zircon/system/ulib/devmgr-launcher",
  ]
  visibility = [ ":*" ]
}

isolated_devmgr_unittest_package("bind-fail-test") {
  executable_path = "test/bind-fail-test"

  deps = [
    ":driver",
    ":tests",
    "//src/devices/misc/drivers/test",
    "//src/devices/tests/sysdev",
  ]
}
