Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Unified Diff: build/config/android/rules.gni

Issue 1975153003: Enable NativeActivity based Android tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/config/android/rules.gni
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index f3076be1f42fe1222668cd1d6a9e9d011226a6cf..fab5711bc3d73ff3b637ddd05d02c8de5d4edf40 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -46,6 +46,7 @@ template("generate_jni") {
foreach_target_name = "${target_name}__jni_gen"
action_foreach(foreach_target_name) {
+ forward_variables_from(invoker, [ "deps" ])
script = "//base/android/jni_generator/jni_generator.py"
depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d"
sources = invoker.sources
@@ -2112,6 +2113,7 @@ template("instrumentation_test_apk") {
# of the unittests_dep target postfixed with "_apk"
# use_default_launcher: Whether the default activity (NativeUnitTestActivity)
# should be used for launching tests.
+# use_native_activity: Test implements ANativeActivity_onCreate().
#
# Example
# unittest_apk("foo_unittests_apk") {
@@ -2119,6 +2121,42 @@ template("instrumentation_test_apk") {
# unittests_dep = ":foo_unittests"
# }
template("unittest_apk") {
+ assert(defined(invoker.unittests_dep), "Need unittests_dep for $target_name")
+ _test_suite_name = get_label_info(invoker.unittests_dep, "name")
+
+ # This trivial assert is needed in case both unittests_binary and apk_name
+ # are defined, as otherwise _test_suite_name would not be used.
+ assert(_test_suite_name != "")
+
+ _use_native_activity =
+ defined(invoker.use_native_activity) && invoker.use_native_activity
+
+ # This trivial assert is needed in case both android_manifest and !use_default_launcher
Dirk Pranke 2016/05/20 17:18:41 nit: wrap long line?
ynovikov 2016/05/26 03:16:15 Done.
+ # are defined, as otherwise _use_native_activity would not be used.
+ assert(_use_native_activity != "")
+ _android_manifest = "$target_gen_dir/$target_name/AndroidManifest.xml"
+
+ # This trivial assert is needed in case android_manifest
+ # is defined, as otherwise _android_manifest would not be used.
+ assert(_android_manifest != "")
+
+ if (!defined(invoker.android_manifest)) {
+ jinja_template("${target_name}_manifest") {
+ if (!defined(invoker.unittests_binary)) {
+ native_library_name = _test_suite_name
+ } else {
+ native_library_name = invoker.unittests_binary
+ }
+ input = "//testing/android/native_test/java/AndroidManifest.xml.jinja2"
+ output = _android_manifest
+ variables = [
+ "is_component_build=${is_component_build}",
+ "native_library_name=${native_library_name}",
+ "use_native_activity=${_use_native_activity}",
+ ]
+ }
+ }
+
android_apk(target_name) {
set_sources_assignment_filter([])
data_deps = []
@@ -2126,31 +2164,28 @@ template("unittest_apk") {
forward_variables_from(invoker, "*")
testonly = true
- assert(defined(unittests_dep), "Need unittests_dep for $target_name")
-
- test_suite_name = get_label_info(unittests_dep, "name")
-
- # This trivial assert is needed in case both unittests_binary and apk_name
- # are defined, as otherwise test_suite_name would not be used.
- assert(test_suite_name != "")
-
if (!defined(apk_name)) {
apk_name = test_suite_name
}
if (!defined(android_manifest)) {
- android_manifest =
- "//testing/android/native_test/java/AndroidManifest.xml"
+ deps += [ ":${target_name}_manifest" ]
+ android_manifest = _android_manifest
}
if (!defined(unittests_binary)) {
- unittests_binary = "lib${test_suite_name}${shlib_extension}"
+ unittests_binary = "lib${_test_suite_name}${shlib_extension}"
}
final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk"
if (!defined(use_default_launcher) || use_default_launcher) {
- deps += [ "//testing/android/native_test:native_test_java" ]
+ if (_use_native_activity) {
+ deps +=
+ [ "//testing/android/native_test:native_test_native_activity_java" ]
+ } else {
+ deps += [ "//testing/android/native_test:native_test_java" ]
+ }
}
native_libs = [ unittests_binary ]
deps += [

Powered by Google App Engine
This is Rietveld 408576698