# Copyright 2017 The Chromium 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("//components/viz/viz.gni")
import("//testing/test.gni")

viz_test("viz_unittests") {
  sources = [
    "test/run_all_unittests.cc",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//components/viz/client:unit_tests",
    "//components/viz/common:unit_tests",
    "//components/viz/host:unit_tests",
    "//components/viz/service:unit_tests",
    "//components/viz/test:test_suite",
    "//components/viz/test:test_support",
    "//components/viz/test:unit_tests",
    "//mojo/core/embedder",
  ]

  data = [
    "test/data/",
  ]

  data_deps = [
    "//third_party/mesa_headers",
  ]

  if (is_android) {
    # The top level test target must depend on the java library directly.
    deps += [ "//components/viz/service:service_java" ]
  }
}

viz_test("viz_perftests") {
  sources = [
    "test/run_all_perftests.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//components/viz/common:perf_tests",
    "//components/viz/service:perf_tests",
    "//components/viz/test:test_suite",
  ]

  # This target should not require the Chrome executable to run.
  assert_no_deps = [ "//chrome" ]

  data_deps = [
    # Needed for isolate script to execute.
    "//testing:run_perf_test",
  ]
}
