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

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..521924c568bff52cdba2c67d62fab7f9cd17ac94 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -33,7 +33,11 @@ assert(is_android)
# }
template("generate_jni") {
set_sources_assignment_filter([])
- forward_variables_from(invoker, [ "testonly" ])
+ forward_variables_from(invoker,
+ [
+ "testonly",
+ "deps",
agrieve 2016/05/19 00:42:50 Adding "deps" here makes it apply to all targets d
ynovikov 2016/05/20 02:38:10 Done.
+ ])
assert(defined(invoker.sources))
assert(defined(invoker.jni_package))
@@ -81,7 +85,6 @@ template("generate_jni") {
group(target_name) {
forward_variables_from(invoker,
[
- "deps",
"public_deps",
"visibility",
])
@@ -90,6 +93,9 @@ template("generate_jni") {
}
public_deps += [ ":$foreach_target_name" ]
public_configs = [ ":jni_includes_${target_name}" ]
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
}
}
@@ -2112,6 +2118,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 +2126,38 @@ 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 != "")
+
+ if (!defined(invoker.apk_name)) {
+ _apk_name = _test_suite_name
+ } else {
+ _apk_name = invoker.apk_name
+ }
+ _use_native_activity =
+ defined(invoker.use_native_activity) && invoker.use_native_activity
+
+ if (!defined(android_manifest)) {
agrieve 2016/05/19 00:42:50 This should be "invoker.android_manifest" I think.
ynovikov 2016/05/20 02:38:10 Done.
+ 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 = "${root_gen_dir}/${_apk_name}_jinja/AndroidManifest.xml"
agrieve 2016/05/19 00:42:50 Better to use $target_gen_dir/$target_name/ rather
ynovikov 2016/05/20 02:38:10 Done.
+ 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 +2165,27 @@ 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
- }
+ apk_name = _apk_name
if (!defined(android_manifest)) {
+ deps += [ ":${target_name}_manifest" ]
android_manifest =
- "//testing/android/native_test/java/AndroidManifest.xml"
+ "${root_gen_dir}/${_apk_name}_jinja/AndroidManifest.xml"
agrieve 2016/05/19 00:42:50 nit: Make a variable for this in the outer scope.
ynovikov 2016/05/20 02:38:10 Done.
}
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