| Index: testing/test.gni
|
| diff --git a/testing/test.gni b/testing/test.gni
|
| index 50b23dff631dbfd12f490f20fe2a2871179b73b9..9362a78f303cc34b553930e34a54381afbf0bc06 100644
|
| --- a/testing/test.gni
|
| +++ b/testing/test.gni
|
| @@ -1,3 +1,237 @@
|
| # Copyright 2015 The Chromium Authors. All rights reserved.
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
| +
|
| +# ==============================================================================
|
| +# TEST SETUP
|
| +# ==============================================================================
|
| +
|
| +# Define a test as an executable (or apk on Android) with the "testonly" flag
|
| +# set.
|
| +template("test") {
|
| + if (is_android) {
|
| + import("//build/config/android/config.gni")
|
| + import("//build/config/android/rules.gni")
|
| +
|
| + main_target_name = target_name
|
| + library_name = "_${target_name}__library"
|
| + apk_name = "${target_name}_apk"
|
| +
|
| + shared_library(library_name) {
|
| + # 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
|
| +
|
| + # See above call.
|
| + set_sources_assignment_filter([])
|
| +
|
| + testonly = true
|
| +
|
| + if (defined(invoker.all_dependent_configs)) {
|
| + all_dependent_configs = invoker.all_dependent_configs
|
| + }
|
| + if (defined(invoker.allow_circular_includes_from)) {
|
| + allow_circular_includes_from = invoker.allow_circular_includes_from
|
| + }
|
| + if (defined(invoker.cflags)) {
|
| + cflags = invoker.cflags
|
| + }
|
| + if (defined(invoker.cflags_c)) {
|
| + cflags_c = invoker.cflags_c
|
| + }
|
| + if (defined(invoker.cflags_cc)) {
|
| + cflags_cc = invoker.cflags_cc
|
| + }
|
| + if (defined(invoker.cflags_objc)) {
|
| + cflags_objc = invoker.cflags_objc
|
| + }
|
| + if (defined(invoker.cflags_objcc)) {
|
| + cflags_objcc = invoker.cflags_objcc
|
| + }
|
| + if (defined(invoker.check_includes)) {
|
| + check_includes = invoker.check_includes
|
| + }
|
| + if (defined(invoker.data)) {
|
| + data = invoker.data
|
| + }
|
| + if (defined(invoker.data_deps)) {
|
| + data_deps = invoker.data_deps
|
| + }
|
| + if (defined(invoker.datadeps)) {
|
| + datadeps = invoker.datadeps
|
| + }
|
| + if (defined(invoker.defines)) {
|
| + defines = invoker.defines
|
| + }
|
| + deps = []
|
| + if (!defined(invoker.use_launcher) || invoker.use_launcher) {
|
| + deps += [ "//testing/android:native_test_native_code" ]
|
| + }
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| + if (defined(invoker.direct_dependent_configs)) {
|
| + direct_dependent_configs = invoker.direct_dependent_configs
|
| + }
|
| + if (defined(invoker.forward_dependent_configs_from)) {
|
| + forward_dependent_configs_from = invoker.forward_dependent_configs_from
|
| + }
|
| + if (defined(invoker.include_dirs)) {
|
| + include_dirs = invoker.include_dirs
|
| + }
|
| + if (defined(invoker.ldflags)) {
|
| + ldflags = invoker.ldflags
|
| + }
|
| + if (defined(invoker.lib_dirs)) {
|
| + lib_dirs = invoker.lib_dirs
|
| + }
|
| + if (defined(invoker.libs)) {
|
| + libs = invoker.libs
|
| + }
|
| + if (defined(invoker.output_extension)) {
|
| + output_extension = invoker.output_extension
|
| + }
|
| + if (defined(invoker.output_name)) {
|
| + output_name = invoker.output_name
|
| + }
|
| + if (defined(invoker.public)) {
|
| + public = invoker.public
|
| + }
|
| + if (defined(invoker.public_configs)) {
|
| + public_configs = invoker.public_configs
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| + if (defined(invoker.sources)) {
|
| + sources = invoker.sources
|
| + }
|
| + if (defined(invoker.visibility)) {
|
| + visibility = invoker.visibility
|
| + }
|
| + }
|
| +
|
| + unittest_apk(apk_name) {
|
| + unittests_dep = ":$library_name"
|
| + apk_name = main_target_name
|
| + if (defined(invoker.output_name)) {
|
| + test_output_name = invoker.output_name
|
| + unittests_binary = "lib${test_output_name}.so"
|
| + }
|
| + deps = [
|
| + ":$library_name",
|
| + ]
|
| + if (defined(invoker.apk_deps)) {
|
| + deps += invoker.apk_deps
|
| + }
|
| + }
|
| +
|
| + group(target_name) {
|
| + testonly = true
|
| +
|
| + deps = [
|
| + ":$library_name",
|
| + ":$apk_name",
|
| + ]
|
| + }
|
| + } else {
|
| + executable(target_name) {
|
| + # See above.
|
| + configs = [] # Prevent list overwriting warning.
|
| + configs = invoker.configs
|
| +
|
| + # See above call.
|
| + set_sources_assignment_filter([])
|
| +
|
| + testonly = true
|
| +
|
| + if (defined(invoker.all_dependent_configs)) {
|
| + all_dependent_configs = invoker.all_dependent_configs
|
| + }
|
| + if (defined(invoker.allow_circular_includes_from)) {
|
| + allow_circular_includes_from = invoker.allow_circular_includes_from
|
| + }
|
| + if (defined(invoker.cflags)) {
|
| + cflags = invoker.cflags
|
| + }
|
| + if (defined(invoker.cflags_c)) {
|
| + cflags_c = invoker.cflags_c
|
| + }
|
| + if (defined(invoker.cflags_cc)) {
|
| + cflags_cc = invoker.cflags_cc
|
| + }
|
| + if (defined(invoker.cflags_objc)) {
|
| + cflags_objc = invoker.cflags_objc
|
| + }
|
| + if (defined(invoker.cflags_objcc)) {
|
| + cflags_objcc = invoker.cflags_objcc
|
| + }
|
| + if (defined(invoker.check_includes)) {
|
| + check_includes = invoker.check_includes
|
| + }
|
| + if (defined(invoker.data)) {
|
| + data = invoker.data
|
| + }
|
| + if (defined(invoker.data_deps)) {
|
| + data_deps = invoker.data_deps
|
| + }
|
| + if (defined(invoker.datadeps)) {
|
| + datadeps = invoker.datadeps
|
| + }
|
| + if (defined(invoker.defines)) {
|
| + defines = invoker.defines
|
| + }
|
| +
|
| + # All shared libraries must have the sanitizer deps to properly link in
|
| + # asan mode (this target will be empty in other cases).
|
| + if (defined(invoker.deps)) {
|
| + deps = invoker.deps + [ "//build/config/sanitizers:deps" ]
|
| + } else {
|
| + deps = [
|
| + "//build/config/sanitizers:deps",
|
| + ]
|
| + }
|
| + if (defined(invoker.direct_dependent_configs)) {
|
| + direct_dependent_configs = invoker.direct_dependent_configs
|
| + }
|
| + if (defined(invoker.forward_dependent_configs_from)) {
|
| + forward_dependent_configs_from = invoker.forward_dependent_configs_from
|
| + }
|
| + if (defined(invoker.include_dirs)) {
|
| + include_dirs = invoker.include_dirs
|
| + }
|
| + if (defined(invoker.ldflags)) {
|
| + ldflags = invoker.ldflags
|
| + }
|
| + if (defined(invoker.lib_dirs)) {
|
| + lib_dirs = invoker.lib_dirs
|
| + }
|
| + if (defined(invoker.libs)) {
|
| + libs = invoker.libs
|
| + }
|
| + if (defined(invoker.output_extension)) {
|
| + output_extension = invoker.output_extension
|
| + }
|
| + if (defined(invoker.output_name)) {
|
| + output_name = invoker.output_name
|
| + }
|
| + if (defined(invoker.public)) {
|
| + public = invoker.public
|
| + }
|
| + if (defined(invoker.public_configs)) {
|
| + public_configs = invoker.public_configs
|
| + }
|
| + if (defined(invoker.public_deps)) {
|
| + public_deps = invoker.public_deps
|
| + }
|
| + if (defined(invoker.sources)) {
|
| + sources = invoker.sources
|
| + }
|
| + if (defined(invoker.visibility)) {
|
| + visibility = invoker.visibility
|
| + }
|
| + }
|
| + }
|
| +}
|
|
|