# Copyright 2021 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/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/host.gni")

if (is_host) {
  go_library("inject") {
    name = "go.fuchsia.dev/fuchsia/src/lib/inject"
    sources = [
      "inject.go",
      "inject_test.go",
    ]
  }

  go_test("inject_test") {
    gopackages = [ "go.fuchsia.dev/fuchsia/src/lib/inject" ]
    deps = [ ":inject" ]
  }
}

group("tests") {
  testonly = true
  deps = [ ":inject_test($host_toolchain)" ]
}
