# 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")
import("//build/testing/host_test_data.gni")

group("tests") {
  testonly = true

  deps = []

  # kernel_lockup_detector_tests uses //src/testing/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 = [ "//src/testing/emulator" ]
    sources = [ "kernel_lockup_detector_test.go" ]
  }

  host_test_data("main_zbi") {
    sources = [ "$root_build_dir/fuchsia.zbi" ]
  }

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