# Copyright 2016 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("//ios/public/provider/chrome/browser/build_config.gni")

source_set("perf_test_support") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "perf_test_with_bvc_ios.h",
    "perf_test_with_bvc_ios.mm",
  ]
  deps = [
    "//base",
    "//components/bookmarks/test",
    "//ios/chrome/browser/autocomplete",
    "//ios/chrome/browser/bookmarks",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/prerender",
    "//ios/chrome/browser/search_engines",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/sessions:serialisation",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/ui:ui_internal",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/web:web_internal",
    "//ios/chrome/test:test_support",
    "//ios/chrome/test/base:perf_test_support",
    "//ios/public/provider/chrome/browser",
    "//ios/web/public/test",

    # Perf tests can run with any provider, but the resulting numbers will only
    # be meaningful if ChromeBrowserProviderImpl is used.
    ios_provider_target,
  ]
  libs = [ "UIKit.framework" ]
}
