Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 332c5e9338e5bf23c5208931030d0b9d45f4bccd..efdec28910aacfeb503f8f184f6739da9841c7ed 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -529,7 +529,13 @@ template("write_build_config") { |
if (defined(invoker.apk_path)) { |
_rebased_apk_path = rebase_path(invoker.apk_path, root_build_dir) |
+ _rebased_incremental_apk_path = |
+ rebase_path(invoker.incremental_apk_path, root_build_dir) |
+ _rebased_incremental_install_script_path = |
+ rebase_path(invoker.incremental_install_script_path, root_build_dir) |
args += [ "--apk-path=$_rebased_apk_path" ] |
+ args += [ "--incremental-apk-path=$_rebased_incremental_apk_path" ] |
+ args += [ "--incremental-install-script-path=$_rebased_incremental_install_script_path" ] |
} |
} |
@@ -2027,15 +2033,28 @@ template("test_runner_script") { |
testonly = true |
_test_name = invoker.test_name |
_test_type = invoker.test_type |
+ _incremental_install = |
+ defined(invoker.incremental_install) && invoker.incremental_install |
action(target_name) { |
script = "//build/android/gyp/create_test_runner_script.py" |
depfile = "$target_gen_dir/$target_name.d" |
+ deps = [] |
datadeps = [ |
"//build/android:test_runner_py", |
] |
+ # apk_target is not used for native executable tests |
+ # (e.g. breakpad_unittests). |
+ if (defined(invoker.apk_target)) { |
+ _apk_build_config = |
+ get_label_info(invoker.apk_target, "target_gen_dir") + "/" + |
+ get_label_info(invoker.apk_target, "name") + ".build_config" |
+ _rebased_apk_build_config = rebase_path(_apk_build_config, root_build_dir) |
+ assert(_rebased_apk_build_config != "") # Mark as used. |
+ } |
+ |
test_runner_args = [ |
_test_type, |
"--output-directory", |
@@ -2048,19 +2067,32 @@ template("test_runner_script") { |
invoker.test_suite, |
] |
} else if (_test_type == "instrumentation") { |
- deps = [ |
+ deps += [ |
"${invoker.apk_target}__build_config", |
+ "${invoker.apk_under_test}__build_config", |
] |
- _build_config = |
- get_label_info(invoker.apk_target, "target_gen_dir") + "/" + |
- get_label_info(invoker.apk_target, "name") + ".build_config" |
- _rebased_build_config = rebase_path(_build_config, root_build_dir) |
+ _apk_under_test_build_config = |
+ get_label_info(invoker.apk_under_test, "target_gen_dir") + "/" + |
+ get_label_info(invoker.apk_under_test, "name") + ".build_config" |
+ _rebased_apk_under_test_build_config = |
+ rebase_path(_apk_under_test_build_config, root_build_dir) |
+ _test_apk = "@FileArg($_rebased_apk_build_config:deps_info:apk_path)" |
+ _apk_under_test = |
+ "@FileArg($_rebased_apk_under_test_build_config:deps_info:apk_path)" |
+ if (_incremental_install) { |
+ _test_apk = "@FileArg($_rebased_apk_build_config:deps_info:incremental_apk_path)" |
+ _apk_under_test = "@FileArg($_rebased_apk_under_test_build_config:deps_info:incremental_apk_path)" |
+ } |
test_runner_args += [ |
- "--test-apk", |
- "@FileArg($_rebased_build_config:deps_info:apk_path)", |
- "--apk-under-test", |
- "@FileArg($_rebased_build_config:deps_info:tested_apk_path)", |
+ "--test-apk=$_test_apk", |
+ "--apk-under-test=$_apk_under_test", |
] |
+ if (_incremental_install) { |
+ test_runner_args += [ |
+ "--apk-under-test-install-script", |
+ "@FileArg($_rebased_apk_under_test_build_config:deps_info:incremental_install_script_path)", |
+ ] |
+ } |
if (emma_coverage) { |
# Set a default coverage output directory (can be overridden by user |
# passing the same flag). |
@@ -2091,9 +2123,10 @@ template("test_runner_script") { |
rebase_path(invoker.isolate_file, root_build_dir), |
] |
} |
- if (defined(invoker.incremental_install) && invoker.incremental_install) { |
+ if (_incremental_install) { |
test_runner_args += [ |
- "--incremental-install", |
+ "--test-apk-install-script", |
+ "@FileArg($_rebased_apk_build_config:deps_info:incremental_install_script_path)", |
"--fast-local-dev", |
] |
} |