153 lines
4.2 KiB
Plaintext
153 lines
4.2 KiB
Plaintext
# Copyright 2020 The Chromium Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("//build/config/coverage/coverage.gni")
|
|
import("//build/config/ios/ios_sdk.gni")
|
|
import("//build/util/generate_wrapper.gni")
|
|
|
|
# Invokes generate_wrapper to create an executable script wrapping iOS'
|
|
# run.py with baked in arguments. Only takes effect when test entry in
|
|
# gn_isolate_map.pyl is updated to type="generated_script" with script
|
|
# set to the wrapper output path.
|
|
#
|
|
# Arguments:
|
|
#
|
|
# data
|
|
# (optional, default [ "//ios/build/bots/scripts/" ]) list of files or
|
|
# directories required to run target
|
|
#
|
|
# data_deps
|
|
# (optional) list of target non-linked labels
|
|
#
|
|
# deps
|
|
# (optional) list of files or directories required to run target
|
|
#
|
|
# executable_args
|
|
# (optional) a list of string arguments to pass to run.py
|
|
#
|
|
# retries
|
|
# (optional, default 3) number of retry attempts
|
|
#
|
|
# shards
|
|
# (optional, default 1) number of shards to execute tests in parallel. not
|
|
# the same as swarming shards.
|
|
#
|
|
# wrapper_output_name
|
|
# (optional, default "run_${target_name}") name of the wrapper script
|
|
#
|
|
template("ios_test_runner_wrapper") {
|
|
generate_wrapper(target_name) {
|
|
forward_variables_from(invoker,
|
|
[
|
|
"deps",
|
|
"retries",
|
|
"shards",
|
|
"wrapper_output_name",
|
|
])
|
|
testonly = true
|
|
executable = "//testing/test_env.py"
|
|
|
|
# iOS main test runner
|
|
_runner_path =
|
|
rebase_path("//ios/build/bots/scripts/run.py", root_build_dir)
|
|
|
|
executable_args = [ "@WrappedPath(${_runner_path})" ]
|
|
|
|
# arguments passed to run.py
|
|
if (defined(invoker.executable_args)) {
|
|
executable_args += invoker.executable_args
|
|
}
|
|
|
|
_rebased_mac_toolchain = rebase_path("//mac_toolchain", root_build_dir)
|
|
_rebased_xcode_path = rebase_path("//Xcode.app", root_build_dir)
|
|
_rebased_ios_runtime_cache_prefix =
|
|
rebase_path("//Runtime-ios-", root_build_dir)
|
|
|
|
# --out-dir argument is specified in gn_isolate_map.pyl because
|
|
# ${ISOLATED_OUTDIR} doesn't get resolved through this wrapper.
|
|
executable_args += [
|
|
"--xcode-path",
|
|
"@WrappedPath(${_rebased_xcode_path})",
|
|
"--mac-toolchain-cmd",
|
|
"@WrappedPath(${_rebased_mac_toolchain})",
|
|
"--runtime-cache-prefix",
|
|
"@WrappedPath(${_rebased_ios_runtime_cache_prefix})",
|
|
]
|
|
|
|
# Default retries to 3
|
|
if (!defined(retries)) {
|
|
retries = 3
|
|
}
|
|
executable_args += [
|
|
"--retries",
|
|
"${retries}",
|
|
]
|
|
|
|
# Default shards to 1
|
|
if (!defined(shards)) {
|
|
shards = 1
|
|
}
|
|
executable_args += [
|
|
"--shards",
|
|
"${shards}",
|
|
]
|
|
|
|
if (xcode_version_int >= 1400) {
|
|
executable_args += [
|
|
"--readline-timeout",
|
|
"600",
|
|
]
|
|
}
|
|
|
|
data_deps = [ "//testing:test_scripts_shared" ]
|
|
if (defined(invoker.data_deps)) {
|
|
data_deps += invoker.data_deps
|
|
}
|
|
|
|
# test runner relies on iossim for simulator builds.
|
|
if (target_environment == "simulator") {
|
|
_rebased_root_build_dir = rebase_path("${root_build_dir}", root_build_dir)
|
|
data_deps += [ "//testing/iossim" ]
|
|
|
|
executable_args += [
|
|
"--iossim",
|
|
"@WrappedPath(${_rebased_root_build_dir}/iossim)",
|
|
]
|
|
}
|
|
|
|
if (use_clang_coverage) {
|
|
executable_args += [ "--use-clang-coverage" ]
|
|
}
|
|
|
|
if (!is_debug) {
|
|
executable_args += [ "--release" ]
|
|
}
|
|
|
|
# wrapper script output name and path
|
|
if (!defined(wrapper_output_name)) {
|
|
_wrapper_output_name = "run_${target_name}"
|
|
} else {
|
|
_wrapper_output_name = wrapper_output_name
|
|
}
|
|
|
|
wrapper_script = "${root_build_dir}/bin/${_wrapper_output_name}"
|
|
|
|
data = []
|
|
if (defined(invoker.data)) {
|
|
data += invoker.data
|
|
}
|
|
data += [
|
|
"//ios/build/bots/scripts/",
|
|
"//ios/build/bots/scripts/plugin",
|
|
|
|
# gRPC interface for iOS test plugin
|
|
"//ios/testing/plugin",
|
|
|
|
# Variations test utilities used by variations_runner script.
|
|
"//testing/scripts/variations_seed_access_helper.py",
|
|
"//testing/test_env.py",
|
|
]
|
|
}
|
|
}
|