# 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/components.gni")
import("//src/graphics/examples/vkproto/common/common.gni")
import("//src/graphics/lib/magma/gnbuild/magma.gni")

fuchsia_test_component("transaction_elimination_test") {
  manifest = "meta/transaction-elimination-test.cml"
  deps = [
    ":bin",
    "//src/graphics/examples/vkproto:shaders",
    "//src/lib/vulkan/validation_layers",
  ]
  test_type = "system"
}

executable("bin") {
  testonly = true
  output_name = "transaction-elimination-test"

  sources = [ "main.cc" ]

  include_dirs = [ "//src/graphics/examples/vkproto/common" ]

  defines = [ "VULKAN_HPP_NO_EXCEPTIONS" ]

  deps = [
    "//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_cpp",
    "//sdk/lib/component/incoming/cpp",
    "//src/graphics/examples/vkproto/common:srcs",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/vulkan",
    "//third_party/github.com/ARM-software/HWCPipe:mali_profiler",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/trace",
  ]

  include_dirs += [ "//src/graphics/examples/vkproto/fuchsia" ]

  # HWCPipe uses exceptions to report errors, so they must be left enabled.
  configs -= [ "//build/config:no_exceptions" ]
}

fuchsia_test_package("transaction-elimination-test") {
  test_components = [ ":transaction_elimination_test" ]

  test_specs = {
    environments = magma_libvulkan_arm_hardware_envs
  }
}
