# 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/search_engines",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/sessions:serialisation",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/ui:ui_internal",
    "//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:test_support",

    # 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" ]
}
