# 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/components.gni")
import("//build/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/go/toolchain.gni")
import("//build/testing/environments.gni")

go_test("fidl-example-go-test") {
  gopackages = [ "go.fuchsia.dev/fuchsia/examples/fidl/go/fidl_packages" ]
  deps = [ ":fidl-example-go" ]
}

go_library("fidl-example-go") {
  deps = [ "//examples/fidl/fuchsia.examples:fuchsia.examples($go_toolchain)" ]
  sources = [ "fidl_test.go" ]
}

fuchsia_unittest_package("fidl-example-go-tests") {
  deps = [ ":fidl-example-go-test" ]
  v2 = true
}

group("fidl_packages") {
  testonly = true
  deps = [ ":fidl-example-go-tests" ]
}
