Enable valid tests and remove unavailable tests
[chromium-blink-merge.git] / BUILD.gn
bloba68ca2c9c141fc32d51ae5ac6fe53a2dfaba54a8
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # This is the root build file for GN. GN will start processing by loading this
6 # file, and recursively load all dependencies until all dependencies are either
7 # resolved or known not to exist (which will cause the build to fail). So if
8 # you add a new build file, there must be some path of dependencies from this
9 # file to your new one or GN won't know about it.
11 import("//build/config/features.gni")
12 import("//build/config/ui.gni")
14 if (is_android) {
15   import("//build/config/android/config.gni")
18 declare_args() {
19   # A list of extra dependencies to add to the root target. This allows a
20   # checkout to add additional targets without explicitly changing any checked-
21   # in files.
22   root_extra_deps = []
25 group("gyp_all") {
26   testonly = true
28   # TODO(GYP): This target should describe everything that is built by a GYP
29   # build but not yet by a GN build, i.e., these are the targets that still
30   # need to be ported to GN. Eventually this target should be identical to
31   # gn_all.
33   deps = [
34     ":gn_all",
35     # "//components:components_browsertests", # TODO(GYP)
36     # "//components/nacl:nacl_loader_unittests", # TODO(GYP)
37     # "//google_apis:google_apis_unittests", # TODO(GYP)
38     # "//ui/compositor:compositor_unittests", # TODO(GYP)
39     # "//device:device_unittests", # TODO(GYP)
40     # "//ppapi:ppapi_unittests", # TODO(GYP)
41     # "//remoting:remoting_unittests",  # TODO(GYP)
42   ]
45 # The "gn_all" target matches the "gn_all" target in build/all.gyp.
46 # It is not (yet!) the same as building "all".
47 # TODO(GYP): Make it be basically the same as building all, or at least
48 # be sure that we don't want any of the stuff listed in gn_all to
49 # be built by default.
51 # In GN, a "group" is a dummy target that just lists other targets.
52 group("gn_all") {
53   testonly = true
55   deps = [
56     "//base:base_unittests",
57     "//cc:cc_unittests",
58     "//chrome",
59     "//chrome/test:browser_tests",
60     "//chrome/test:interactive_ui_tests",
61     "//chrome/test:sync_integration_tests",
62     "//chrome/test:unit_tests",
63     "//chrome/test/chromedriver:chromedriver_unittests",
64     "//components:components_unittests",
65     "//content/shell:content_shell",
66     "//content/test:content_browsertests",
67     "//content/test:content_perftests",
68     "//content/test:content_unittests",
69     "//crypto:crypto_unittests",
70     "//extensions:extensions_browsertests",
71     "//extensions:extensions_unittests",
72     "//google_apis/gcm:gcm_unit_tests",
73     "//gpu:gpu_unittests",
74     "//ipc:ipc_tests",
75     "//ipc/mojo:ipc_mojo_unittests",
76     "//jingle:jingle_unittests",
77     "//media:media_unittests",
78     "//media/mojo",  # only builds in mojo
79     "//media/cast:cast_unittests",
80     "//mojo",
81     "//mojo/common:mojo_common_unittests",
83     # "//mojo/services/html_viewer:tests",  # TODO(GYP): Do we need this?
84     "//net:net_unittests",
85     "//ppapi/examples",  # TODO(GYP): What's the GYP equivalent?
86     "//printing:printing_unittests",
87     "//skia:skia_unittests",
88     "//sql:sql_unittests",
89     "//sync:sync_unit_tests",
91     # TODO(GYP): the Blink test targets should be public, but
92     # currently aren't. all_blink pulls them in, though.
93     # "//third_party/WebKit/Source/platform:heap_unittests",
94     # "//third_party/WebKit/Source/platform:platform_unittests",
95     # "//third_party/WebKit/Source/wtf:wtf_unittests",
96     "//third_party/WebKit/public:all_blink",
97     "//third_party/cacheinvalidation:cacheinvalidation_unittests",
99     # TODO(GYP): This is needed only w/ cld_version==1. What configs set that?
100     "//third_party/cld",
101     "//third_party/codesighs",
103     # TODO(GYP): This is needed only w/ use_system_fontconfig==0.
104     # What configs set that?
105     # "//third_party/fontconfig",
107     # TODO(GYP): This will be pulled in automatically when enable_webrtc==true.
108     # For now pull it in manually so that it doesn't regress.
109     "//third_party/libsrtp",
110     "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
111     "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
112     "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
113     "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
114     "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
115     "//third_party/pdfium/samples:pdfium_test",
117     # TODO(GYP): Verify that this is no longer needed.
118     "//third_party/smhasher:pmurhash",
120     # TODO(GYP): This will be pulled in automatically when enable_webrtc==true.
121     # For now pull it in manually so that it doesn't regress.
122     "//third_party/usrsctp",
123     "//tools/imagediff($host_toolchain)",
124     "//tools/gn",
125     "//tools/gn:gn_unittests",
126     "//tools/telemetry:bitmaptools($host_toolchain)",
127     "//ui/accessibility:accessibility_unittests",
128     "//ui/app_list:app_list_unittests",
129     "//ui/base:ui_base_unittests",
130     "//ui/display:display_unittests",
131     "//ui/events:events_unittests",
132     "//ui/gfx:gfx_unittests",
133     "//ui/touch_selection:ui_touch_selection_unittests",
134     "//url:url_unittests",
135   ]
137   deps += root_extra_deps
139   # TODO(GYP): Get this working on the mac?
140   if (enable_extensions && !is_mac) {
141     deps += [ "//extensions/shell:app_shell_unittests" ]
142   }
144   if (!is_win) {
145     deps += [ "//breakpad:symupload" ]
146   }
148   if (use_x11) {
149     deps += [ "//tools/xdisplaycheck" ]
150   }
152   if (toolkit_views) {
153     deps += [ "//ui/views:views_unittests" ]
154   }
156   if (use_aura) {
157     deps += [ "//ui/wm:wm_unittests" ]
158   }
160   if (use_ozone) {
161     deps += [
162       "//ui/ozone",
163       "//ui/ozone/demo",  # GN only
164     ]
165   }
167   if (is_win || is_mac || is_chromeos) {
168     # RLZ works on these platforms.
169     # TODO(GYP): Is this target needed, or pulled in automatically?
170     deps += [ "//rlz:rlz_lib" ]
171   }
173   if (is_android) {
174     deps += [
175       "//base/android/linker:chromium_android_linker",
176       "//build/android/gyp/test:hello_world",
177       "//build/android/rezip",
178       "//chrome/android:chrome_shell_apk",
179       "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
180       "//tools/imagediff($host_toolchain)",
182       # TODO(GYP): Remove these when the components_unittests work.
183       "//components/history/core/test:test",
184       "//components/policy:policy_component_test_support",
185       "//components/policy:test_support",
186       "//components/rappor:test_support",
187       "//components/signin/core/browser:test_support",
188       "//components/sync_driver:test_support",
189       "//components/user_manager",
190       "//components/wallpaper",
191       "//content/shell/android:content_shell_apk",
193       # TODO(GYP): Are these needed, or will they be pulled in automatically?
194       "//third_party/android_tools:android_gcm_java",
195       "//third_party/android_tools:uiautomator_java",
196       "//third_party/android_tools:android_support_v13_java",
197       "//third_party/android_tools:android_support_v7_appcompat_java",
198       "//third_party/android_tools:android_support_v7_mediarouter_java",
199       "//third_party/mesa",
200       "//third_party/mockito:mockito_java",
201       "//third_party/openmax_dl/dl",
202       "//third_party/speex",
203       "//ui/android:ui_java",
205       # TODO(GYP): Are these needed?
206       "//chrome/test:test_support_unit",
207       "//third_party/smhasher:murmurhash3",
208       "//ui/message_center:test_support",
209     ]
210     deps -= [
211       "//breakpad:symupload",  # TODO(GYP) ??
212       "//chrome",  # TODO(GYP) ??
213       "//chrome/test:browser_tests",  # TODO(GYP) ??
214       "//chrome/test:interactive_ui_tests",  # TODO(GYP) ??
215       "//chrome/test:sync_integration_tests",  # TODO(GYP) ??
216       "//chrome/test:unit_tests",  # TODO(GYP)
218       # Chromedriver shouldn't be compiled on Android.
219       "//chrome/test/chromedriver:chromedriver_unittests",
220       "//extensions:extensions_browsertests",
221       "//extensions:extensions_unittests",
222       "//google_apis/gcm:gcm_unit_tests",
223       "//ipc:ipc_tests",  # TODO(GYP) ??
224       "//jingle:jingle_unittests",  # TODO(GYP) ??
225       "//net:net_unittests",
226       "//ppapi/examples",
227       "//third_party/pdfium/samples:pdfium_test",
228       "//tools/gn",
229       "//tools/gn:gn_unittests",
230       "//ui/app_list:app_list_unittests",
231       "//url:url_unittests",
232     ]
234     if (has_chrome_android_internal) {
235       deps += [ "//clank" ]  # TODO(GYP) ??
236     }
237   } else if (is_linux) {
238     deps += [
239       "//dbus:dbus_unittests",
240       "//sandbox/linux:sandbox_linux_unittests",
241     ]
242   } else if (is_mac) {
243     deps += [
244       "//third_party/apple_sample_code",
245       "//third_party/molokocacao",
246     ]
248     # TODO(GYP): Remove these when the targets below work and these
249     # are pulled in automatically.
250     deps += [
251       "//cc/blink",
252       "//components/ui/zoom:ui_zoom",
253       "//content",
254       "//content/test:test_support",
255       "//device/battery",
256       "//device/bluetooth",
257       "//device/nfc",
258       "//device/usb",
259       "//device/vibration",
260       "//media/blink",
261       "//pdf",
262       "//storage/browser",
263       "//third_party/brotli",
264       "//third_party/flac",
265       "//third_party/hunspell",
266       "//third_party/iccjpeg",
267       "//third_party/libphonenumber",
268       "//third_party/ots",
269       "//third_party/qcms",
270       "//third_party/smhasher:murmurhash3",
271       "//third_party/speex",
272       "//third_party/webrtc/system_wrappers",
273       "//ui/native_theme",
274       "//ui/snapshot",
275       "//ui/surface",
276     ]
278     # TODO(dpranke): These are as-yet untriaged but need at least the above.
279     deps -= [
280       "//chrome",  # TODO(GYP)
281       "//chrome/test:browser_tests",  # TODO(GYP)
282       "//chrome/test:interactive_ui_tests",  # TODO(GYP)
283       "//chrome/test:sync_integration_tests",  # TODO(GYP)
284       "//chrome/test:unit_tests",  # TODO(GYP)
285       "//components:components_unittests",  # TODO(GYP)
286       "//content/test:content_browsertests",  # TODO(GYP)
287       "//content/test:content_perftests",  # TODO(GYP)
288       "//content/test:content_unittests",  # TODO(GYP)
289       "//extensions:extensions_browsertests",  # TODO(GYP)
290       "//extensions:extensions_unittests",  # TODO(GYP)
291       "//net:net_unittests",  # TODO(GYP)
292       "//third_party/usrsctp",  # TODO(GYP)
293       "//ui/app_list:app_list_unittests",  # TODO(GYP)
294       "//ui/gfx:gfx_unittests",  # TODO(GYP)
295     ]
296   } else if (is_win) {
297     deps += [ "//ui/metro_viewer" ]
298     deps -= [
299       "//crypto:crypto_unittests",  # TODO(GYP)
300       "//net:net_unittests",  # TODO(GYP)
301     ]
302   }
305 if (is_linux) {
306   # This group corresponds to the list of tests run on the waterfall for
307   # desktop Linux GYP builds from testing/buildbot/chromium.linux.json. It's
308   # here to help track GYP -> GN conversion progress.
309   group("linux_default_tests") {
310     testonly = true
311     deps = [
312       # components_browsertests  TODO(GYP)
313       # device_unittests  TODO(GYP)
314       # nacl_loader_unittests  TODO(GYP)
315       # ppapi_unittests  TODO(GYP)
316       # remoting_unittests  TODO(GYP)
318       "//base:base_unittests",  # PASSES (*) 2/25/2015
319       "//cc:cc_unittests",  # PASSES 2/25/2015
320       "//chrome/test:browser_tests",
321       "//chrome/test:interactive_ui_tests",
322       "//chrome/test:sync_integration_tests",  # Crashes for brettw in GN and GYP.
323       "//chrome/test:unit_tests",  # PASSES 2/25/2015
324       "//chrome/test/chromedriver:chromedriver_unittests",  # PASSES 2/25/2015
325       "//components:components_unittests",  # PASSES 2/27/2015
326       "//content/test:content_browsertests",
327       "//content/test:content_unittests",  # PASSES 2/25/2015
328       "//crypto:crypto_unittests",  # PASSES 2/25/2015
329       "//dbus:dbus_unittests",  # PASSES 2/25/2015
330       "//extensions:extensions_browsertests",  # PASSES 2/25/2015
331       "//extensions:extensions_unittests",  # PASSES 2/25/2015
332       "//extensions/shell:app_shell_unittests",  # PASSES 2/25/2015
333       "//google_apis/gcm:gcm_unit_tests",  # PASSES 2/25/2015
334       "//google_apis:google_apis_unittests",  # PASSES 2/25/2015
335       "//gpu:gpu_unittests",  # PASSES 2/25/2015
336       "//ipc:ipc_tests",  # PASSES 2/25/2015
337       "//ipc/mojo:ipc_mojo_unittests",  # PASSES 2/25/2015
338       "//jingle:jingle_unittests",  # PASSES 2/25/2015
339       "//media/cast:cast_unittests",  # PASSES 2/25/2015
340       "//media:media_unittests",  # TODO(GYP) MidiManagerTest fails.
341       "//mojo/common:mojo_common_unittests",  # PASSES 2/25/2015
342       "//net:net_unittests",  # PASSES 2/25/2015
343       "//printing:printing_unittests",  # PASSES 2/25/2015
344       "//sandbox/linux:sandbox_linux_unittests",  # PASSES 2/25/2015
345       "//skia:skia_unittests",  # PASSES 2/25/2015
346       "//sql:sql_unittests",  # PASSES 2/25/2015
347       "//sync:sync_unit_tests",  # PASSES 2/25/2015
348       "//third_party/cacheinvalidation:cacheinvalidation_unittests",  # PASSES 2/25/2015
349       "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",  # PASSES 2/25/2015
350       "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",  # PASSES 2/25/2015
351       "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",  # PASSES 2/25/2015
352       "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",  # PASSES 2/25/2015
353       "//ui/accessibility:accessibility_unittests",  # PASSES 2/25/2015
354       "//ui/app_list:app_list_unittests",  # PASSES 2/25/2015
355       "//ui/aura:aura_unittests",  # PASSES 2/25/2015
356       "//ui/base:ui_base_unittests",  # TODO(GYP) ResourceBundleTest.* fails.
357       "//ui/compositor:compositor_unittests",  # PASSES 2/25/2015
358       "//ui/display:display_unittests",  # PASSES 2/25/2015
359       "//ui/events:events_unittests",  # PASSES 2/25/2015
360       "//ui/gfx:gfx_unittests",  # PASSES 2/25/2015
361       "//ui/touch_selection:ui_touch_selection_unittests",  # PASSES 2/25/2015
362       "//ui/views:views_unittests",  # PASSES (*) 2/25/2015
363       "//ui/wm:wm_unittests",  # PASSES 2/25/2015
364       "//url:url_unittests",  # PASSES 2/25/2015
366       # Note:
367       # (*) Fails but failures match GYP build at time of testing.
368     ]
369   }