| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import("//build/config/chrome_build.gni") | 5 import("//build/config/chrome_build.gni") |
| 6 import("//testing/test.gni") | 6 import("//testing/test.gni") |
| 7 | 7 |
| 8 # Convenience meta-target for all of Blimp's production & test code. | 8 # Convenience meta-target for all of Blimp's production & test code. |
| 9 group("blimp") { | 9 group("blimp") { |
| 10 # In spite of the name, this really just means that non-test targets | 10 # In spite of the name, this really just means that non-test targets |
| 11 # cannot depend on this one, and that it can depend on test targets, | 11 # cannot depend on this one, and that it can depend on test targets, |
| 12 # which fits how we intend to use it. | 12 # which fits how we intend to use it. |
| 13 testonly = true | 13 testonly = true |
| 14 | 14 |
| 15 deps = [ | 15 deps = [ |
| 16 ":blimp_tests", | 16 ":blimp_tests", |
| 17 "//blimp/common", | 17 "//blimp/common", |
| 18 ] | 18 ] |
| 19 | |
| 20 if (is_linux) { | |
| 21 deps += [ | |
| 22 ":client_engine_integration", | |
| 23 "//blimp/engine", | |
| 24 "//blimp/engine:blimp_engine_bundle", | |
| 25 ] | |
| 26 | |
| 27 if (is_official_build) { | |
| 28 deps += [ "//blimp/engine:blimp_symbols" ] | |
| 29 } | |
| 30 } | |
| 31 } | 19 } |
| 32 | 20 |
| 33 # Builds all Blimp test code (unit tests, test APKs). | 21 # Builds all Blimp test code (unit tests, test APKs). |
| 34 group("blimp_tests") { | 22 group("blimp_tests") { |
| 35 testonly = true | 23 testonly = true |
| 36 | 24 |
| 37 deps = [ | 25 deps = [ |
| 38 ":blimp_unittests", | 26 ":blimp_unittests", |
| 39 ] | 27 ] |
| 40 | 28 |
| 41 if (is_linux) { | 29 if (is_linux) { |
| 42 deps += [ "//blimp/test/fake_engine:fake_engine_app_tests" ] | 30 deps += [ "//blimp/test/fake_engine:fake_engine_app_tests" ] |
| 43 } | 31 } |
| 44 } | 32 } |
| 45 | 33 |
| 46 test("blimp_unittests") { | 34 test("blimp_unittests") { |
| 47 deps = [ | 35 deps = [ |
| 48 "//blimp/common:unit_tests", | 36 "//blimp/common:unit_tests", |
| 49 "//blimp/net:unit_tests", | 37 "//blimp/net:unit_tests", |
| 50 "//blimp/test:run_all_unittests", | 38 "//blimp/test:run_all_unittests", |
| 51 ] | 39 ] |
| 52 | 40 |
| 53 if (is_linux) { | |
| 54 deps += [ "//blimp/engine:unit_tests" ] | |
| 55 } | |
| 56 | |
| 57 if (is_android) { | 41 if (is_android) { |
| 58 enable_multidex = true | 42 enable_multidex = true |
| 59 } | 43 } |
| 60 } | 44 } |
| 61 | |
| 62 if (is_linux) { | |
| 63 _blimp_engine_env_tests_runtime_deps = | |
| 64 "$root_gen_dir/blimp-tests.runtime_deps" | |
| 65 _rebased_blimp_engine_env_tests_runtime_deps = | |
| 66 rebase_path(_blimp_engine_env_tests_runtime_deps, root_out_dir) | |
| 67 | |
| 68 # This group contains Blimp Engine tests and tests of the various components | |
| 69 # the Blimp Engine depends on. The idea is that if this group of tests pass | |
| 70 # on a given system there is a high probability the Engine will also work on | |
| 71 # that platform. | |
| 72 group("blimp_engine_env_tests_group") { | |
| 73 testonly = true | |
| 74 | |
| 75 # Additional environment test targets should be added here. | |
| 76 # Executable targets and those executable targets' transitive | |
| 77 # dependencies are not considered unless that executable is listed in | |
| 78 # "data_deps". Otherwise, GN assumes that the executable (and | |
| 79 # everything it requires) is a build-time dependency only. | |
| 80 data_deps = [ | |
| 81 ":blimp_unittests", | |
| 82 "//base:base_unittests", | |
| 83 "//breakpad:generate_test_dump", | |
| 84 "//content/test:content_unittests", | |
| 85 "//ipc:ipc_tests", | |
| 86 "//net:net_unittests", | |
| 87 "//sandbox/linux:sandbox_linux_unittests", | |
| 88 "//blimp/test/fake_engine:fake_engine_app", | |
| 89 ] | |
| 90 | |
| 91 write_runtime_deps = _blimp_engine_env_tests_runtime_deps | |
| 92 } | |
| 93 | |
| 94 _blimp_engine_env_tests_manifest = "$root_gen_dir/blimp-tests-manifest.txt" | |
| 95 _rebased_blimp_engine_env_tests_manifest = | |
| 96 rebase_path(_blimp_engine_env_tests_manifest, root_out_dir) | |
| 97 _rebased_blimp_engine_env_tests_blacklist = | |
| 98 rebase_path("//blimp/tools/tests-manifest-blacklist.txt") | |
| 99 | |
| 100 action("generate_blimp_engine_env_tests_manifest") { | |
| 101 testonly = true | |
| 102 script = "//blimp/tools/generate-target-manifest.py" | |
| 103 args = [ | |
| 104 "--blacklist", | |
| 105 _rebased_blimp_engine_env_tests_blacklist, | |
| 106 "--runtime-deps-file", | |
| 107 _rebased_blimp_engine_env_tests_runtime_deps, | |
| 108 "--output", | |
| 109 _rebased_blimp_engine_env_tests_manifest, | |
| 110 ] | |
| 111 inputs = [ | |
| 112 _rebased_blimp_engine_env_tests_blacklist, | |
| 113 _blimp_engine_env_tests_runtime_deps, | |
| 114 ] | |
| 115 outputs = [ | |
| 116 _blimp_engine_env_tests_manifest, | |
| 117 ] | |
| 118 | |
| 119 # By specifying a dependency (not a data_dependency) on :blimp_tests_group, | |
| 120 # we can be sure that everything is built before the action is | |
| 121 # complete (though not necessarily before we generate the manifest | |
| 122 # itself). | |
| 123 deps = [ | |
| 124 ":blimp_engine_env_tests_group", | |
| 125 ] | |
| 126 } | |
| 127 | |
| 128 # Builds and bundles the tests into a tarball that can be used to build a | |
| 129 # Docker image. | |
| 130 action("blimp_engine_env_tests_bundle") { | |
| 131 testonly = true | |
| 132 script = "//blimp/tools/create-bundle.py" | |
| 133 | |
| 134 # These form the arguments to the script. | |
| 135 _rebased_out_dir = rebase_path(root_out_dir) | |
| 136 _rebased_dockerfile = rebase_path("//blimp/engine/testing/Dockerfile") | |
| 137 _rebased_dockerfile_base = rebase_path("//blimp/tools/Dockerfile.base") | |
| 138 _bundle = "$root_out_dir/blimp_engine_env_tests_bundle.tar.gz" | |
| 139 | |
| 140 # Depending on this ensures that both the manifest is generated | |
| 141 # and everything listed in the manifest has been built. | |
| 142 deps = [ | |
| 143 ":generate_blimp_engine_env_tests_manifest", | |
| 144 ] | |
| 145 | |
| 146 sources = [ | |
| 147 _blimp_engine_env_tests_manifest, | |
| 148 _rebased_dockerfile, | |
| 149 _rebased_dockerfile_base, | |
| 150 ] | |
| 151 outputs = [ | |
| 152 _bundle, | |
| 153 ] | |
| 154 args = [ | |
| 155 "--build-dir", | |
| 156 _rebased_out_dir, | |
| 157 "--filelist", | |
| 158 _rebased_dockerfile, | |
| 159 _rebased_dockerfile_base, | |
| 160 "--manifest", | |
| 161 _rebased_blimp_engine_env_tests_manifest, | |
| 162 "--output", | |
| 163 rebase_path(_bundle), | |
| 164 "--tar-contents-rooted-in", | |
| 165 rebase_path("//"), | |
| 166 ] | |
| 167 } | |
| 168 | |
| 169 # Wraps and Builds the Blimp client and engine integration script and | |
| 170 # ends up in root_out_dir/bin. | |
| 171 action("client_engine_integration") { | |
| 172 _wrapped_script = "//blimp/tools/client_engine_integration.py" | |
| 173 | |
| 174 _script_basename = get_path_info(_wrapped_script, "name") | |
| 175 _output_path = "${root_out_dir}/bin/${_script_basename}" | |
| 176 | |
| 177 script = "//build/android/gyp/create_tool_wrapper.py" | |
| 178 inputs = [ | |
| 179 _wrapped_script, | |
| 180 ] | |
| 181 outputs = [ | |
| 182 _output_path, | |
| 183 ] | |
| 184 | |
| 185 args = [ | |
| 186 "--output", | |
| 187 rebase_path(_output_path, root_build_dir), | |
| 188 "--target", | |
| 189 rebase_path(_wrapped_script, root_build_dir), | |
| 190 "--output-directory", | |
| 191 rebase_path(root_out_dir, root_build_dir), | |
| 192 "--flag-name=--output-linux-directory", | |
| 193 ] | |
| 194 } | |
| 195 } | |
| OLD | NEW |