# 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_lockup_detector_tests uses //tools/emulator, which only
  # works on linux.
  if (host_os == "linux") {
    deps += [ ":kernel_lockup_detector_tests($host_toolchain)" ]
  }
}

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

    deps = [ "//tools/emulator/emulatortest" ]
    sources = [ "kernel_lockup_detector_test.go" ]
  }

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