Commit 7ca6de3a authored by Andrew Grieve's avatar Andrew Grieve Committed by Commit Bot

Android: Simplify gtest GN logic

Each test was creating:
* a non-incremental wrapper script,
* an incremental wrapper script,
* another non-incremental wrapper script.

This third target is actually just needed to depend on the other two, so
refactored to make this more clear. It also makes it easier to address
changing incremental install a GN arg (linked bug).

Bug: 1013688
Change-Id: I530e95a3277aa9a5164e7ad9a02f0f1ec830e556
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1856841
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707243}
parent 677ce7b7
......@@ -592,31 +592,23 @@ template("test_runner_script") {
}
generate_android_wrapper(target_name) {
forward_variables_from(invoker,
[
"data_deps",
"deps",
])
if (!defined(deps)) {
deps = []
}
if (!defined(data_deps)) {
data_deps = []
}
testonly = true
wrapper_script = "$root_build_dir/bin/run_${_test_name}"
if (defined(android_test_runner_script)) {
executable = android_test_runner_script
} else {
executable = "//build/android/test_runner.py"
}
testonly = true
data_deps += [
"//build/android:test_runner_py",
"//build/android:logdog_wrapper_py",
]
deps = []
if (defined(invoker.deps)) {
deps = invoker.deps
}
data_deps = []
if (defined(invoker.data_deps)) {
data_deps = invoker.data_deps
}
data = []
executable_args = [
......@@ -624,6 +616,10 @@ template("test_runner_script") {
"--output-directory",
"@WrappedPath(.)",
]
data_deps += [
"//build/android:test_runner_py",
"//build/android:logdog_wrapper_py",
]
if (_runtime_deps) {
deps += [ ":$_runtime_deps_target" ]
......@@ -794,13 +790,6 @@ template("test_runner_script") {
executable_args += [ "--tool=asan" ]
}
if (defined(invoker.generated_script)) {
assert(_test_name != "" || true) # Mark _test_name as used.
wrapper_script = invoker.generated_script
} else {
wrapper_script = "$root_build_dir/bin/run_${_test_name}"
}
if (defined(invoker.modules)) {
foreach(module, invoker.modules) {
executable_args += [
......
......@@ -183,13 +183,13 @@ template("test") {
# Incremental test targets work only for .apks.
test_runner_script(_incremental_test_runner_target) {
forward_variables_from(invoker,
_wrapper_script_vars + [
"data",
"data_deps",
"deps",
"public_deps",
])
forward_variables_from(invoker, _wrapper_script_vars)
# Dep needed for the test runner .runtime_deps file to pick up data
# deps from the forward_variables_from(invoker, "*") on the library.
data_deps = [
":$_library_target",
]
apk_target = ":$_apk_target"
test_name = _incremental_test_name
test_type = "gtest"
......@@ -209,18 +209,18 @@ template("test") {
if (!_incremental_apk_only) {
test_runner_script(_test_runner_target) {
forward_variables_from(invoker,
_wrapper_script_vars + [
"data",
"data_deps",
"deps",
"public_deps",
])
forward_variables_from(invoker, _wrapper_script_vars)
if (_use_raw_android_executable) {
executable_dist_dir = "$root_out_dir/$_dist_target"
} else {
apk_target = ":$_apk_target"
# Dep needed for the test runner .runtime_deps file to pick up data
# deps from the forward_variables_from(invoker, "*") on the library.
data_deps = [
":$_library_target",
]
}
test_name = _output_name
test_type = "gtest"
......@@ -228,35 +228,28 @@ template("test") {
}
}
test_runner_script(target_name) {
forward_variables_from(invoker,
_wrapper_script_vars + [
"data",
"data_deps",
"deps",
"public_deps",
])
# Create a wrapper script rather than using a group() in order to ensure
# "ninja $target_name" always works. If this was a group(), then GN would
# not create a top-level alias for it if a target exists in another
# directory with the same $target_name.
# Also - bots run this script directly for "components_perftests".
generate_wrapper(target_name) {
testonly = true
executable = "$root_build_dir/bin/run_$_output_name"
wrapper_script = "$root_build_dir/$_output_name"
deps = [
":$_test_runner_target",
]
if (_use_raw_android_executable) {
executable_dist_dir = "$root_out_dir/$_dist_target"
deps += [ ":$_dist_target" ]
} else {
# Dep needed for the swarming .isolate file to pick up data
# deps from the forward_variables_from(invoker, "*") on the library.
deps += [
":$_dist_target",
":$_test_runner_target",
":$_apk_target",
":$_library_target",
]
} else {
apk_target = ":$_apk_target"
deps += [ ":$_apk_target" ]
if (_incremental_apk_only) {
deps += [ ":${target_name}_incremental" ]
} else {
deps += [ ":$_test_runner_target" ]
}
}
generated_script = "$root_build_dir/$_output_name"
incremental_install = _incremental_apk_only
test_name = _output_name
test_suite = _output_name
test_type = "gtest"
}
} else if (is_fuchsia) {
_output_name = invoker.target_name
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment