# 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_benchmark",
    "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",
    "../examples/vkproto/driver-tests",
    "../examples/vkproto/test",
    "../examples/vkproto/transaction-elimination-test",
    "benchmark",
    "vkvalidation",
    "//src/lib/vulkan/tests:compact-image-tests",
    "//src/lib/vulkan/tests:image-pipe-swapchain-tests",
  ]

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

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