# Copyright 2019 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("//src/graphics/lib/magma/gnbuild/magma.gni")
import("//src/lib/vulkan/layers.gni")
import("//src/sys/build/components.gni")

group("tests") {
  testonly = true

  deps = [
    ":hw_tests",
    "goldfish_benchmark",
    "goldfish_test",
    "vkreadback:linux_arm64",
  ]
}

group("hw_tests") {
  testonly = true

  deps = [
    ":vulkan-tests",
    "../examples/vkproto",
    "../examples/vkproto/cmd-buf-benchmark",
    "../examples/vkproto/test",
    "../examples/vkproto/transaction-elimination-test",
    "benchmark",
    "vkvalidation",
    "//src/lib/vulkan/tests:image-pipe-swapchain-tests",
  ]

  # disabled, but build
  deps += [ "vkpriority:vkpriority_cmp" ]
}

group("vulkan-tests") {
  testonly = true
  deps = [
    "common:vkcontext",
    "icd_load",
    "vk_timer_query",
    "vkext",
    "vkloop",
    "vkreadback",
  ]
}
