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 |