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

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

if (is_linux) {
  go_library("lib") {
    testonly = true
    sources = [ "femu_test.go" ]
    deps = [ "//tools/emulator/emulatortest" ]
  }

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

  go_test("femu_test") {
    library = ":lib"
    deps = [
      "//tools/virtual_device",
      "//tools/virtual_device:proto",
    ]
    non_go_deps = [ ":main_zbi" ]
  }
}
