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

group("tests") {
  testonly = true

  deps = []

  if (host_os == "linux") {
    deps += [ ":shutdown_tests($host_toolchain)" ]
  }
}

if (is_linux) {
  go_library("lib") {
    testonly = true

    deps = [ "//tools/emulator/emulatortest" ]

    sources = [ "shutdown_test.go" ]
  }

  go_test("shutdown_tests") {
    gopackages = [ "go.fuchsia.dev/fuchsia/src/tests/shutdown" ]
    deps = [ ":lib" ]
    non_go_deps = [ "//build/images/fuchsia:fuchsia_zbi_for_host_tests" ]
  }
}
