Work on Windows GN component build.
[chromium-blink-merge.git] / chromecast / chromecast_tests.gypi
blobda8d99e36476fdb8afd885509a35aa7e88816fa9
1 # Copyright (c) 2014 Google Inc. 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.
6   'targets': [
7     {
8       'target_name': 'cast_tests',
9       'type': 'none',
10       'dependencies': [
11         'cast_test_generator',
12       ],
13       'conditions': [
14         ['chromecast_branding=="Chrome"', {
15           'dependencies': [
16             'internal/chromecast_internal.gyp:cast_tests_internal',
17           ],
18         }],
19       ],
20     },
21     # This target only depends on targets that generate test binaries.
22     {
23       'target_name': 'cast_test_generator',
24       'type': 'none',
25       'dependencies': [
26         '../base/base.gyp:base_unittests',
27         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
28         '../content/content_shell_and_tests.gyp:content_unittests',
29         '../crypto/crypto.gyp:crypto_unittests',
30         '../ipc/ipc.gyp:ipc_tests',
31         '../jingle/jingle.gyp:jingle_unittests',
32         '../media/media.gyp:media_unittests',
33         '../net/net.gyp:net_unittests',
34         '../sandbox/sandbox.gyp:sandbox_linux_unittests',
35         '../sql/sql.gyp:sql_unittests',
36         '../sync/sync.gyp:sync_unit_tests',
37         '../ui/base/ui_base_tests.gyp:ui_base_unittests',
38         '../url/url.gyp:url_unittests',
39       ],
40       'conditions': [
41         ['target_arch=="arm" and OS!="android"', {
42           'variables': {
43             'filters': [
44               # Run net_unittests first to avoid random failures due to slow python startup
45               # KeygenHandlerTest.SmokeTest and KeygenHandlerTest.ConcurrencyTest fail due to
46               # readonly certdb (b/8153161)
47               # URLRequestTestHTTP.GetTest_ManyCookies takes roughly 55s to run. Increase
48               # timeout to 75s from 45s to allow it to pass (b/19821476)
49               # ProxyScriptFetcherImplTest.HttpMimeType is flaking (b/19848784)
50              'net_unittests --gtest_filter=-KeygenHandlerTest.SmokeTest:KeygenHandlerTest.ConcurrencyTest:ProxyScriptFetcherImplTest.HttpMimeType --test-launcher-timeout=75000',
51               # Disable OutOfMemoryDeathTest.ViaSharedLibraries due to gTrusty eglibc incompatibility (crbug/428211)
52               # Disable ProcessMetricsTest.GetNumberOfThreads (b/15610509)
53               # Disable ProcessUtilTest.* (need to define OS_ANDROID)
54               # Disable StackContainer.BufferAlignment (don't support 16-byte alignment)
55               # Disable SystemMetrics2Test.GetSystemMemoryInfo (buffers>0 can't be guaranteed)
56               'base_unittests --gtest_filter=-OutOfMemoryDeathTest.ViaSharedLibraries:ProcessMetricsTest.GetNumberOfThreads:ProcessUtilTest.*:StackContainer.BufferAlignment:SystemMetrics2Test.GetSystemMemoryInfo',
57               # DesktopCaptureDeviceTest.*: No capture device on Eureka
58               # Disable PepperGamepadHostTest.WaitForReply (pepper not supported on Eureka)
59               # Disable GpuDataManagerImplPrivateTest.SetGLStrings and
60               # RenderWidgetHostTest.Background because we disable the blacklist to enable WebGL (b/16142554)
61               'content_unittests --gtest_filter=-DOMStorageDatabaseTest.TestCanOpenAndReadWebCoreDatabase:DesktopCaptureDeviceTest.Capture:GamepadProviderTest.PollingAccess:GpuDataManagerImplPrivateTest.SetGLStrings:PepperGamepadHostTest.WaitForReply:RenderWidgetHostTest.Background',
62               # Disable VP9 related tests (b/18593324)
63               #   PipelineIntegrationTest.BasicPlayback_MediaSource_VP9_WebM
64               #   PipelineIntegrationTest.BasicPlayback_VideoOnly_VP9_WebM
65               #   PipelineIntegrationTest.BasicPlayback_VP9*
66               #   PipelineIntegrationTest.P444_VP9_WebM
67               # Disable VP8A tests (b/18593324)
68               #   PipelineIntegrationTest.BasicPlayback_VP8A*
69               # Disable OpusAudioDecoderTest/AudioDecoderTest.ProduceAudioSamples/0 (unit
70               # test fails when Opus decoder uses fixed-point)
71               # Due to b/16456550, disable the following four test cases:
72               #   AudioOutputControllerTest.PlayDivertSwitchDeviceRevertClose
73               #   AudioOutputControllerTest.PlaySwitchDeviceClose
74               #   AudioStreamHandlerTest.Play
75               #   SoundsManagerTest.Play
76               # Disable AudioStreamHandlerTest.ConsecutivePlayRequests (b/16539293)
77               'media_unittests --gtest_filter=-AudioOutputControllerTest.PlayDivertSwitchDeviceRevertClose:AudioOutputControllerTest.PlaySwitchDeviceClose:AudioStreamHandlerTest.Play:AudioStreamHandlerTest.ConsecutivePlayRequests:PipelineIntegrationTest.BasicPlayback_MediaSource_VP9_WebM:PipelineIntegrationTest.BasicPlayback_VideoOnly_VP9_WebM:PipelineIntegrationTest.BasicPlayback_VP9*:PipelineIntegrationTest.P444_VP9_WebM:PipelineIntegrationTest.BasicPlayback_VP8A*:OpusAudioDecoderTest/AudioDecoderTest.ProduceAudioSamples/0:SoundsManagerTest.Play',
78               'sync_unit_tests --gtest_filter=-SyncHttpBridgeTest.*',
79               # DoAppendUTF8Invalid fails because of dcheck_always_on flag in Eng builds
80               'url_unittests --gtest_filter=-URLCanonTest.DoAppendUTF8Invalid',
81             ],
82           },
83         }, { # else "x86" or "android"
84           'variables': {
85             'filters': [
86               # Disable OutOfMemoryDeathTest.ViaSharedLibraries due to gTrusty eglibc incompatibility
87               # See: crbug/428211
88               'base_unittests --gtest_filter=-OutOfMemoryDeathTest.ViaSharedLibraries',
89               # Disable PipelineIntegrationTest.BasicPlayback_MediaSource_VP9_WebM (not supported)
90               'media_unittests --gtest_filter=-PipelineIntegrationTest.BasicPlayback_MediaSource_VP9_WebM',
91             ],
92           }
93         }],
94         ['disable_display==0', {
95           'dependencies': [
96             '../gpu/gpu.gyp:gpu_unittests',
97           ],
98         }],
99         ['OS!="android"', {
100           'dependencies': [
101             'cast_shell_browser_test',
102             'media/media.gyp:cast_media_unittests',
103           ],
104           'variables': {
105             'filters': [
106               'cast_shell_browser_test --no-sandbox --disable-gpu',
107             ],
108           },
109         }],
110       ],
111       'includes': ['build/tests/test_list.gypi'],
112     },
113     # Builds all tests and the output lists of build/run targets for those tests.
114     # Note: producing a predetermined list of dependent inputs on which to
115     # regenerate this output is difficult with GYP. This file is not
116     # guaranteed to be regenerated outside of a clean build.
117     {
118       'target_name': 'cast_test_lists',
119       'type': 'none',
120       'dependencies': [
121         'cast_tests',
122       ],
123       'variables': {
124         'test_generator_py': '<(DEPTH)/chromecast/tools/build/generate_test_lists.py',
125         'test_inputs_dir': '<(SHARED_INTERMEDIATE_DIR)/chromecast/tests',
126         'test_additional_options': '--ozone-platform=test'
127       },
128       'actions': [
129         {
130           'action_name': 'generate_combined_test_build_list',
131           'message': 'Generating combined test build list',
132           'inputs': ['<(test_generator_py)'],
133           'outputs': ['<(PRODUCT_DIR)/tests/build_test_list.txt'],
134           'action': [
135             'python', '<(test_generator_py)',
136             '-t', '<(test_inputs_dir)',
137             '-o', '<@(_outputs)',
138             'pack_build',
139           ],
140         },
141         {
142           'action_name': 'generate_combined_test_run_list',
143           'message': 'Generating combined test run list',
144           'inputs': ['<(test_generator_py)'],
145           'outputs': ['<(PRODUCT_DIR)/tests/run_test_list.txt'],
146           'action': [
147             'python', '<(test_generator_py)',
148             '-t', '<(test_inputs_dir)',
149             '-o', '<@(_outputs)',
150             '-a', '<(test_additional_options)',
151             'pack_run',
152           ],
153         }
154       ],
155     },
156     {
157       'target_name': 'cast_metrics_test_support',
158       'type': '<(component)',
159       'dependencies': [
160         'cast_base',
161       ],
162       'sources': [
163         'base/metrics/cast_metrics_test_helper.cc',
164         'base/metrics/cast_metrics_test_helper.h',
165       ],
166     },  # end of target 'cast_metrics_test_support'
167   ],  # end of targets
168   'conditions': [
169     ['OS=="android"', {
170       'targets': [
171         {
172           'target_name': 'cast_android_tests',
173           'type': 'none',
174           'dependencies': [
175             '../base/base.gyp:base_unittests_apk',
176             '../cc/cc_tests.gyp:cc_unittests_apk',
177             '../ipc/ipc.gyp:ipc_tests_apk',
178             '../media/media.gyp:media_unittests_apk',
179             '../net/net.gyp:net_unittests_apk',
180             '../sandbox/sandbox.gyp:sandbox_linux_jni_unittests_apk',
181             '../sql/sql.gyp:sql_unittests_apk',
182             '../sync/sync.gyp:sync_unit_tests_apk',
183             '../ui/events/events.gyp:events_unittests_apk',
184             '../ui/gfx/gfx_tests.gyp:gfx_unittests_apk',
185           ],
186           'includes': ['build/tests/test_list.gypi'],
187         },
188         {
189           'target_name': 'cast_android_test_lists',
190           'type': 'none',
191           'dependencies': [
192             'cast_android_tests',
193           ],
194           'variables': {
195             'test_generator_py': '<(DEPTH)/chromecast/tools/build/generate_test_lists.py',
196             'test_inputs_dir': '<(SHARED_INTERMEDIATE_DIR)/chromecast/tests',
197           },
198           'actions': [
199             {
200               'action_name': 'generate_combined_test_build_list',
201               'message': 'Generating combined test build list',
202               'inputs': ['<(test_generator_py)'],
203               'outputs': ['<(PRODUCT_DIR)/tests/build_test_list_android.txt'],
204               'action': [
205                 'python', '<(test_generator_py)',
206                 '-t', '<(test_inputs_dir)',
207                 '-o', '<@(_outputs)',
208                 'pack_build',
209               ],
210             },
211           ],
212         },
213       ],  # end of targets
214     }, {  # OS!="android"
215       'targets': [
216         {
217           'target_name': 'cast_shell_test_support',
218           'type': '<(component)',
219           'defines': [
220             'HAS_OUT_OF_PROC_TEST_RUNNER',
221           ],
222           'dependencies': [
223             'cast_shell_core',
224             '../content/content_shell_and_tests.gyp:content_browser_test_support',
225             '../testing/gtest.gyp:gtest',
226             '../third_party/mojo/mojo_public.gyp:mojo_cpp_bindings',
227           ],
228           'sources': [
229             'browser/test/chromecast_browser_test.cc',
230             'browser/test/chromecast_browser_test.h',
231             'browser/test/chromecast_browser_test_runner.cc',
232           ],
233         },  # end of target 'cast_shell_test_support'
234         {
235           'target_name': 'cast_shell_browser_test',
236           'type': '<(gtest_target_type)',
237           'dependencies': [
238             'cast_shell_test_support',
239             '../testing/gtest.gyp:gtest',
240           ],
241           'defines': [
242             'HAS_OUT_OF_PROC_TEST_RUNNER',
243           ],
244           'sources': [
245             'browser/test/chromecast_shell_browser_test.cc',
246           ],
247         },
248       ],  # end of targets
249     }],
250   ],  # end of conditions