# 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/config/fuchsia/zircon_images.gni")

# Used to include a kernel in zbi's.
group("kernel") {
  metadata = {
    migrated_zbi_input_args = [
      "--type=container",
      rebase_path(zircon_kernel_zbi, root_build_dir),
    ]
  }
}

# Targets in this group are added to the list of tests automatically run.
group("tests") {
  testonly = true
  deps = [
    "//src/bringup/bin/bootsvc/integration_test:bootsvc-integration-tests",
    "//src/bringup/bin/bootsvc/integration_test:bootsvc-root-job-test",
    "//src/bringup/lib/mexec/tests",
    "//zircon/kernel/phys:tests",
    "//zircon/system/utest/core:core-tests",
  ]

  if (current_cpu == "x64") {
    deps += [ "//zircon/system/utest/core:core-tests-hpet" ]
  }
}

# Targets in this group are always built.
# This is mostly to ensure tests that haven't yet been migrated are in sync with
# their ZN counterparts.
group("zbi") {
  testonly = true

  deps = [ ":tests" ]
}
