# Copyright 2017 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")

executable("vkpriority_bin") {
  testonly = true
  output_name = "vkpriority"

  sources = [
    "main.cc",
    "vkpriority.cc",
  ]

  public_deps = [
    "//src/lib/fxl/test:test_settings",
    "//src/lib/vulkan",
    "//third_party/googletest:gtest",
  ]
}

fuchsia_test_component("vkpriority_cmp") {
  testonly = true
  component_name = "vkpriority_test"
  deps = [
    ":vkpriority_bin",
    "//src/lib/vulkan/validation_layers",
  ]

  manifest = "meta/vkpriority.cml"
  test_type = "vulkan"
}

fuchsia_test_package("vkpriority-pkg") {
  package_name = "vkpriority_test"
  test_components = [ ":vkpriority_cmp" ]

  # Test could flake due to bad luck, so only enable for manual runs.
  test_specs = {
    environments = []
  }
}

group("vkpriority") {
  testonly = true
  deps = [ ":vkpriority-pkg" ]
}
