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

Unified Diff: testing/test.gni

Issue 1841193002: 🍬 GN: Make breakpad_unittests & sandbox_linux_unittests use test() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test-minor-renames
Patch Set: Created 4 years, 9 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
« no previous file with comments | « build/config/android/rules.gni ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/test.gni
diff --git a/testing/test.gni b/testing/test.gni
index a77c5d5127ccbde89a47556435860bbfce03e8bd..64304ec77b2f700639ca6ef1ed0f4d131db03a3b 100644
--- a/testing/test.gni
+++ b/testing/test.gni
@@ -8,74 +8,106 @@
# Define a test as an executable (or apk on Android) with the "testonly" flag
# set.
+# Variable:
+# use_raw_android_executable: Use executable() rather than android_apk().
template("test") {
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
- _library_target = "_${target_name}__library"
- _apk_target = "${target_name}_apk"
+ _use_raw_android_executable = defined(invoker.use_raw_android_executable) &&
+ invoker.use_raw_android_executable
+ if (_use_raw_android_executable) {
+ _exec_target = "${target_name}__exec"
+ _dist_target = "${target_name}__dist"
+
+ executable(_exec_target) {
+ data_deps = []
+ forward_variables_from(invoker, "*")
+ testonly = true
+
+ # Don't output to the root or else conflict with the group() below.
+ output_name = rebase_path(target_out_dir, root_out_dir) +
+ "/${invoker.target_name}"
+ if (is_component_build || is_asan) {
+ data_deps += [ "//build/android:cpplib_stripped" ]
+ }
+ }
- shared_library(_library_target) {
- # Configs will always be defined since we set_defaults for a component
- # in the main config. We want to use those rather than whatever came with
- # the nested shared/static library inside the component.
- configs = [] # Prevent list overwriting warning.
- configs = invoker.configs
+ create_native_executable_dist(_dist_target) {
+ testonly = true
+ dist_dir = "$target_out_dir/$target_name"
+ binary = "$target_out_dir/${invoker.target_name}"
+ deps = [
+ ":$_exec_target",
+ ]
+ }
+ } else {
+ _library_target = "_${target_name}__library"
+ _apk_target = "${target_name}_apk"
- testonly = true
+ shared_library(_library_target) {
+ # Configs will always be defined since we set_defaults for a component
+ # in the main config. We want to use those rather than whatever came with
+ # the nested shared/static library inside the component.
+ configs = [] # Prevent list overwriting warning.
+ configs = invoker.configs
- # Don't use "*" to forward all variables since some (like output_name
- # and isolate_file) apply only to the APK below.
- deps = []
- forward_variables_from(invoker,
- [
- "all_dependent_configs",
- "allow_circular_includes_from",
- "cflags",
- "cflags_c",
- "cflags_cc",
- "check_includes",
- "data",
- "data_deps",
- "datadeps",
- "defines",
- "deps",
- "include_dirs",
- "ldflags",
- "lib_dirs",
- "libs",
- "output_extension",
- "output_name",
- "public",
- "public_configs",
- "public_deps",
- "sources",
- "visibility",
- ])
-
- if (!defined(invoker.use_default_launcher) ||
- invoker.use_default_launcher) {
- deps += [ "//testing/android/native_test:native_test_native_code" ]
+ testonly = true
+
+ # Don't use "*" to forward all variables since some (like output_name
+ # and isolate_file) apply only to the APK below.
+ deps = []
+ forward_variables_from(invoker,
+ [
+ "all_dependent_configs",
+ "allow_circular_includes_from",
+ "cflags",
+ "cflags_c",
+ "cflags_cc",
+ "check_includes",
+ "data",
+ "data_deps",
+ "datadeps",
+ "defines",
+ "deps",
+ "include_dirs",
+ "ldflags",
+ "lib_dirs",
+ "libs",
+ "output_extension",
+ "output_name",
+ "public",
+ "public_configs",
+ "public_deps",
+ "sources",
+ "visibility",
+ ])
+
+ if (!defined(invoker.use_default_launcher) ||
+ invoker.use_default_launcher) {
+ deps += [ "//testing/android/native_test:native_test_native_code" ]
+ }
}
- }
- unittest_apk(_apk_target) {
- forward_variables_from(invoker,
- [
- "android_manifest",
- "deps",
- "enable_multidex",
- "use_default_launcher",
- "write_asset_list",
- ])
- unittests_dep = ":$_library_target"
- apk_name = invoker.target_name
- if (defined(invoker.output_name)) {
- apk_name = invoker.output_name
- unittests_binary = "lib${apk_name}.so"
+ unittest_apk(_apk_target) {
+ forward_variables_from(invoker,
+ [
+ "android_manifest",
+ "deps",
+ "enable_multidex",
+ "use_default_launcher",
+ "write_asset_list",
+ ])
+ unittests_dep = ":$_library_target"
+ apk_name = invoker.target_name
+ if (defined(invoker.output_name)) {
+ apk_name = invoker.output_name
+ unittests_binary = "lib${apk_name}.so"
+ install_script_name = invoker.output_name
+ }
+ deps += [ ":$_library_target" ]
}
- deps += [ ":$_library_target" ]
}
# output_name is used to allow targets with the same name but in different
@@ -86,22 +118,12 @@ template("test") {
}
_test_runner_target = "${_output_name}__test_runner_script"
test_runner_script(_test_runner_target) {
- apk_target = ":$_apk_target"
- test_name = _output_name
- test_type = "gtest"
- test_suite = _output_name
- if (defined(invoker.isolate_file)) {
- isolate_file = invoker.isolate_file
+ if (!_use_raw_android_executable) {
+ apk_target = ":$_apk_target"
}
- }
- _incremental_test_runner_target =
- "${_output_name}_incremental__test_runner_script"
- test_runner_script(_incremental_test_runner_target) {
- apk_target = ":$_apk_target"
- test_name = "${_output_name}_incremental"
+ test_name = _output_name
test_type = "gtest"
test_suite = _output_name
- incremental_install = true
if (defined(invoker.isolate_file)) {
isolate_file = invoker.isolate_file
}
@@ -109,21 +131,38 @@ template("test") {
group(target_name) {
testonly = true
- datadeps = [
- ":$_test_runner_target",
- ]
deps = [
- ":$_apk_target",
+ ":$_test_runner_target",
]
+ if (_use_raw_android_executable) {
+ deps += [ ":$_dist_target" ]
+ } else {
+ deps += [ ":$_apk_target" ]
+ }
}
- group("${target_name}_incremental") {
- testonly = true
- datadeps = [
- ":$_incremental_test_runner_target",
- ]
- deps = [
- ":${_apk_target}_incremental",
- ]
+
+ if (!_use_raw_android_executable) {
Dirk Pranke 2016/03/29 20:57:13 Can we combine this block w/ the else block on lin
agrieve 2016/03/30 14:17:25 Done.
+ _incremental_test_runner_target =
+ "${_output_name}_incremental__test_runner_script"
+ test_runner_script(_incremental_test_runner_target) {
+ apk_target = ":$_apk_target"
+ test_name = "${_output_name}_incremental"
+ test_type = "gtest"
+ test_suite = _output_name
+ incremental_install = true
+ if (defined(invoker.isolate_file)) {
+ isolate_file = invoker.isolate_file
+ }
+ }
+ group("${target_name}_incremental") {
+ testonly = true
+ datadeps = [
+ ":$_incremental_test_runner_target",
+ ]
+ deps = [
+ ":${_apk_target}_incremental",
+ ]
+ }
}
# TODO(GYP): Delete this after we've converted everything to GN.
« no previous file with comments | « build/config/android/rules.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698