# 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/bind/bind.gni")

group("tests") {
  testonly = true
  deps = [
    ":example_bind_test",
    ":example_composite_bind_test",
  ]
}

bind_test("example_bind_test") {
  rules = "gizmo.bind"
  tests = "tests.json"
  deps = [ "//src/devices/bind/fuchsia.usb" ]
}

bind_test("example_composite_bind_test") {
  rules = "composite-gizmo.bind"
  tests = "composite-tests.json"
  deps = [
    "//src/devices/bind/fuchsia.platform",
    "//src/devices/bind/fuchsia.sysmem",
    "//src/devices/bind/fuchsia.tee",
  ]
}
