# 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/drivers.gni")
import("//build/fidl/fidl.gni")

fidl("fuchsia.board.test") {
  testonly = true
  sources = [ "board.test.fidl" ]
}

driver_bind_rules("test-bus-bind") {
  testonly = true
  rules = "test-bus.bind"
  deps = [
    "//sdk/fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_bindlib",
    "//src/devices/bind/fuchsia.test.platform",
  ]
}

fuchsia_driver("integration-test-driver") {
  testonly = true
  output_name = "integration-test"
  configs += [ "//build/config:all_source" ]
  sources = [ "test.cc" ]
  deps = [
    ":fuchsia.board.test_cpp",
    ":test-bus-bind",
    "//sdk/fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_cpp",
    "//src/devices/lib/driver",
    "//src/devices/lib/driver:driver_runtime",
    "//src/lib/ddk",
    "//src/lib/ddk:ddk-metadata-headers",
    "//src/lib/ddktl",
    "//zircon/system/ulib/fbl",
  ]
}

fuchsia_driver_component("integration-test") {
  testonly = true
  component_name = "integration-test"
  deps = [ ":integration-test-driver" ]
  info = "integration-test-info.json"
  manifest = "meta/integration-test.cml"
}
