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

group("tests") {
  testonly = true

  deps = [ ":headless_root_presenter_tests" ]
}

fuchsia_unittest_package("headless_root_presenter_tests") {
  deps = [
    ":headless_root_presenter_apptests_bin",
    # Will add FDR when diverges
  ]
  manifest = "meta/headless_root_presenter_apptests.cmx"
  test_specs = {
    environments = [ emu_env ]
  }
}

executable("headless_root_presenter_apptests_bin") {
  output_name = "headless_root_presenter_apptests"

  testonly = true

  sources = [ "headless_root_presenter_unittest.cc" ]
  deps = [
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/json",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/sys/cpp/testing:unit",
    "//sdk/lib/syslog/cpp",
    "//sdk/lib/vfs/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/ui/bin/headless_root_presenter:lib",
    "//third_party/rapidjson",
  ]

  # This is a dependency of the semantic tree to perform certain matrix transform operations.
  include_dirs = [ "//third_party/glm" ]
}
