# 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 = []

  # kernel_panic_tests uses //tools/emulator, which only works on
  # linux.
  if (host_os == "linux") {
    deps += [ ":kernel_panic_tests($host_toolchain)" ]
  }
}

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

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

    sources = [ "kernel_panic_test.go" ]
  }

  go_test("kernel_panic_tests") {
    library = ":lib"
    non_go_deps = [ "//build/images/fuchsia:fuchsia_zbi_for_host_tests" ]
  }
}
