# Copyright 2014 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.

source_set("gmock_mutant") {
  sources = [
    "gmock_mutant.h",  # gMock helpers
  ]

  deps = [
    "//base",
  ]
}

# Used by linux-gcc-rel to ensure gcc doesn't choke on clang-only flags.
executable("empty_main") {
  sources = [
    "empty_main.cc",
  ]
}

# Targets needed for isolate script to execute.
group("test_scripts_shared") {
  data = [
    "//testing/test_env.py",
    "//testing/xvfb.py",
  ]
}

group("run_perf_test") {
  data = [
    "//testing/scripts/common.py",
    "//testing/scripts/run_performance_tests.py",
    "//tools/perf/generate_legacy_perf_dashboard_json.py",
    "//tools/perf/core/results_merger.py",
  ]

  data_deps = [
    ":test_scripts_shared",
  ]
}
