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

group("tests") {
  testonly = true

  deps = [
    ":hw_tests",
    "goldfish_test",
  ]

  # TODO(77955): Make this test work under KASan.
  if (select_variant + [ "kasan" ] - [ "kasan" ] == select_variant) {
    deps += [ "goldfish_benchmark" ]
  }
}

group("hw_tests") {
  testonly = true

  deps = [
    ":vulkan-tests",
    "../examples/vkproto",
    "../examples/vkproto/cmd-buf-benchmark:cmd-buf-benchmark-test",
    "../examples/vkproto/driver-tests",
    "../examples/vkproto/test",
    "../examples/vkproto/transaction-elimination-test",
    "../examples/vulkaninfo",
    "benchmark",
    "vkvalidation",
    "//src/lib/vulkan/tests:image-pipe-swapchain-tests",
    "//third_party/Vulkan-Tools/cube",
  ]
}

group("vulkan-tests") {
  testonly = true
  deps = [
    "common:vkcontext",
    "icd_conformance",
    "libvulkan",
    "mali_vulkan_test",
    "vk_timer_query",
    "vkext",
    "vkloop",
    "vkpriority",
    "vkreadback",
    "//sdk/ctf/tests/pkg/vulkan:tests",
  ]
}
