123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- # Copyright 2018 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("//build/config/ios/ios_test_runner_wrapper.gni")
- import("//build/config/ios/rules.gni")
- import("//ios/public/provider/chrome/browser/build_config.gni")
- template("ios_eg2_test_app_host") {
- ios_app_bundle(target_name) {
- testonly = true
- forward_variables_from(invoker, "*")
- configs += [ "//build/config/ios:xctest_config" ]
- if (!defined(bundle_deps)) {
- bundle_deps = []
- }
- bundle_deps += [ "//ios/third_party/earl_grey2:app_framework+bundle" ]
- if (!defined(include_provider_resources)) {
- include_provider_resources = true
- }
- if (include_provider_resources) {
- bundle_deps += ios_providers_resources_targets
- }
- if (!defined(deps)) {
- deps = []
- }
- deps += [ "//ios/third_party/earl_grey2:app_framework+link" ]
- # Xcode needs the following frameworks installed in the application (and
- # signed) for the XCTest to run, so install them using
- # extra_system_frameworks.
- extra_system_frameworks = [
- "$ios_sdk_platform_path/Developer/Library/Frameworks/XCTest.framework",
- "$ios_sdk_platform_path/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework",
- ]
- # Xcode 13 now depends on XCTestCore. To keep things future proof, copy over
- # everything that Xcode copies.
- if (xcode_version_int >= 1300) {
- extra_system_frameworks += [
- "$ios_sdk_platform_path/Developer/Library/PrivateFrameworks/XCTestCore.framework",
- "$ios_sdk_platform_path/Developer/Library/PrivateFrameworks/XCUIAutomation.framework",
- "$ios_sdk_platform_path/Developer/Library/PrivateFrameworks/XCUnit.framework",
- "$ios_sdk_platform_path/Developer/usr/lib/libXCTestSwiftSupport.dylib",
- ]
- }
- if (!defined(ldflags)) {
- ldflags = []
- }
- ldflags += [
- "-Wl,-rpath,@executable_path/Frameworks",
- "-Wl,-rpath,@loader_path/Frameworks",
- ]
- }
- }
- set_defaults("ios_eg2_test_app_host") {
- configs = default_executable_configs
- }
- # EarlGrey2 tests are just XCUITests that also depends on EarlGrey2.
- template("ios_eg2_test") {
- assert(defined(invoker.xcode_test_application_name),
- "xcode_test_application_name must be defined for $target_name")
- assert(
- defined(invoker.deps),
- "deps must be defined for $target_name to include at least one earl grey test file.")
- _target_name = target_name
- _test_target = "${target_name}_test"
- ios_xcuitest_test(_test_target) {
- forward_variables_from(invoker,
- [
- "xcode_test_application_name",
- "xctest_bundle_principal_class",
- "bundle_deps",
- "deps",
- "data_deps",
- ])
- if (!defined(deps)) {
- deps = []
- }
- deps += [ "//ios/third_party/earl_grey2:test_lib" ]
- # TODO(crbug.com/1056328) Because we change the target name, the subnodes
- # are going to append with the _test in the naming, which won't be backwards
- # compatible during migration from iOS recipe to Chromium.
- output_name = "${_target_name}"
- }
- ios_test_runner_wrapper(target_name) {
- forward_variables_from(invoker,
- [
- "data",
- "data_deps",
- "deps",
- "executable_args",
- "retries",
- "shards",
- "xcode_test_application_name",
- ])
- _root_build_dir = rebase_path("${root_build_dir}", root_build_dir)
- if (!defined(data_deps)) {
- data_deps = []
- }
- # Include the top ios_eg2_test target, and the host app
- data_deps += [ ":${_test_target}" ]
- if (!defined(executable_args)) {
- executable_args = []
- }
- # EG2 tests app are bundled as *-Runner.app, while the host app is bundled
- # as *.app.
- executable_args += [
- "--app",
- "@WrappedPath(${_root_build_dir}/${target_name}-Runner.app)",
- ]
- executable_args += [
- "--host-app",
- "@WrappedPath(${_root_build_dir}/${xcode_test_application_name}.app)",
- ]
- }
- }
- set_defaults("ios_eg2_test") {
- configs = default_shared_library_configs
- }
|