1# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8{
9  'targets': [
10    {
11      'target_name': 'rtc_unittests',
12      'type': '<(gtest_target_type)',
13      'dependencies': [
14        'base/base.gyp:rtc_base',
15        'base/base_tests.gyp:rtc_base_tests_utils',
16        'base/base_tests.gyp:rtc_base_tests',
17        'libjingle/xmllite/xmllite.gyp:rtc_xmllite',
18        'libjingle/xmpp/xmpp.gyp:rtc_xmpp',
19        'p2p/p2p.gyp:rtc_p2p',
20        'p2p/p2p.gyp:libstunprober',
21        'rtc_p2p_unittest',
22        'rtc_sound_tests',
23        'rtc_xmllite_unittest',
24        'rtc_xmpp_unittest',
25        'sound/sound.gyp:rtc_sound',
26        '<(DEPTH)/testing/gtest.gyp:gtest',
27        '<(DEPTH)/testing/gmock.gyp:gmock',
28      ],
29      'conditions': [
30        ['OS=="android"', {
31          'dependencies': [
32            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
33          ],
34        }],
35        ['OS=="ios"', {
36          'dependencies': [
37            'api/api_tests.gyp:rtc_api_objc_test',
38          ]
39        }]
40      ],
41    },
42    {
43      'target_name': 'webrtc_tests',
44      'type': 'none',
45      'dependencies': [
46        'video_engine_tests',
47        'video_loopback',
48        'video_replay',
49        'webrtc_perf_tests',
50        'webrtc_nonparallel_tests',
51      ],
52    },
53    {
54      'target_name': 'video_quality_test',
55      'type': 'static_library',
56      'sources': [
57        'video/video_quality_test.cc',
58        'video/video_quality_test.h',
59      ],
60      'dependencies': [
61        '<(DEPTH)/testing/gtest.gyp:gtest',
62        '<(webrtc_root)/modules/modules.gyp:video_render',
63        '<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
64        '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
65        'webrtc',
66      ],
67      'conditions': [
68        ['OS=="android"', {
69          'dependencies!': [
70            '<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
71          ],
72        }],
73      ],
74    },
75    {
76      'target_name': 'video_loopback',
77      'type': 'executable',
78      'sources': [
79        'test/mac/run_test.mm',
80        'test/run_test.cc',
81        'test/run_test.h',
82        'video/video_loopback.cc',
83      ],
84      'conditions': [
85        ['OS=="mac"', {
86          'sources!': [
87            'test/run_test.cc',
88          ],
89        }],
90      ],
91      'dependencies': [
92        'video_quality_test',
93        '<(DEPTH)/testing/gtest.gyp:gtest',
94        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
95        'test/webrtc_test_common.gyp:webrtc_test_common',
96        'test/webrtc_test_common.gyp:webrtc_test_renderer',
97        'test/test.gyp:test_main',
98        'webrtc',
99      ],
100    },
101    {
102      'target_name': 'screenshare_loopback',
103      'type': 'executable',
104      'sources': [
105        'test/mac/run_test.mm',
106        'test/run_test.cc',
107        'test/run_test.h',
108        'video/screenshare_loopback.cc',
109      ],
110      'conditions': [
111        ['OS=="mac"', {
112          'sources!': [
113            'test/run_test.cc',
114          ],
115        }],
116      ],
117      'dependencies': [
118        'video_quality_test',
119        '<(DEPTH)/testing/gtest.gyp:gtest',
120        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
121        'test/webrtc_test_common.gyp:webrtc_test_common',
122        'test/webrtc_test_common.gyp:webrtc_test_renderer',
123        'test/test.gyp:test_main',
124        'webrtc',
125      ],
126    },
127    {
128      'target_name': 'video_replay',
129      'type': 'executable',
130      'sources': [
131        'test/mac/run_test.mm',
132        'test/run_test.cc',
133        'test/run_test.h',
134        'video/replay.cc',
135      ],
136      'conditions': [
137        ['OS=="mac"', {
138          'sources!': [
139            'test/run_test.cc',
140          ],
141        }],
142      ],
143      'dependencies': [
144        '<(DEPTH)/testing/gtest.gyp:gtest',
145        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
146        'test/webrtc_test_common.gyp:webrtc_test_common',
147        'test/webrtc_test_common.gyp:webrtc_test_renderer',
148        '<(webrtc_root)/modules/modules.gyp:video_capture',
149        '<(webrtc_root)/modules/modules.gyp:video_render',
150        '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers_default',
151        'webrtc',
152      ],
153    },
154    {
155      # TODO(solenberg): Rename to webrtc_call_tests.
156      'target_name': 'video_engine_tests',
157      'type': '<(gtest_target_type)',
158      'sources': [
159        'audio/audio_receive_stream_unittest.cc',
160        'audio/audio_send_stream_unittest.cc',
161        'audio/audio_state_unittest.cc',
162        'call/bitrate_allocator_unittest.cc',
163        'call/bitrate_estimator_tests.cc',
164        'call/call_unittest.cc',
165        'call/packet_injection_tests.cc',
166        'test/common_unittest.cc',
167        'test/testsupport/metrics/video_metrics_unittest.cc',
168        'video/call_stats_unittest.cc',
169        'video/encoder_state_feedback_unittest.cc',
170        'video/end_to_end_tests.cc',
171        'video/overuse_frame_detector_unittest.cc',
172        'video/payload_router_unittest.cc',
173        'video/report_block_stats_unittest.cc',
174        'video/send_statistics_proxy_unittest.cc',
175        'video/stream_synchronization_unittest.cc',
176        'video/video_capture_input_unittest.cc',
177        'video/video_decoder_unittest.cc',
178        'video/video_encoder_unittest.cc',
179        'video/video_send_stream_tests.cc',
180        'video/vie_codec_unittest.cc',
181        'video/vie_remb_unittest.cc',
182      ],
183      'dependencies': [
184        '<(DEPTH)/testing/gmock.gyp:gmock',
185        '<(DEPTH)/testing/gtest.gyp:gtest',
186        '<(webrtc_root)/common.gyp:webrtc_common',
187        '<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
188        '<(webrtc_root)/modules/modules.gyp:video_capture',
189        '<(webrtc_root)/modules/modules.gyp:video_render',
190        '<(webrtc_root)/test/test.gyp:channel_transport',
191        '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
192        'test/metrics.gyp:metrics',
193        'test/test.gyp:test_main',
194        'test/webrtc_test_common.gyp:webrtc_test_common',
195        'webrtc',
196      ],
197      'conditions': [
198        ['OS=="android"', {
199          'dependencies': [
200            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
201          ],
202        }],
203        ['enable_protobuf==1', {
204          'defines': [
205            'ENABLE_RTC_EVENT_LOG',
206          ],
207          'dependencies': [
208            'webrtc.gyp:rtc_event_log',
209            'webrtc.gyp:rtc_event_log_proto',
210          ],
211          'sources': [
212            'call/rtc_event_log_unittest.cc',
213          ],
214        }],
215      ],
216    },
217    {
218      'target_name': 'webrtc_perf_tests',
219      'type': '<(gtest_target_type)',
220      'sources': [
221        'call/call_perf_tests.cc',
222        'call/rampup_tests.cc',
223        'call/rampup_tests.h',
224        'modules/audio_coding/neteq/test/neteq_performance_unittest.cc',
225        'modules/audio_processing/audio_processing_performance_unittest.cc',
226        'modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc',
227        'video/full_stack.cc',
228      ],
229      'dependencies': [
230        '<(DEPTH)/testing/gmock.gyp:gmock',
231        '<(DEPTH)/testing/gtest.gyp:gtest',
232        '<(webrtc_root)/modules/modules.gyp:audio_processing',
233        '<(webrtc_root)/modules/modules.gyp:audioproc_test_utils',
234        '<(webrtc_root)/modules/modules.gyp:video_capture',
235        '<(webrtc_root)/test/test.gyp:channel_transport',
236        '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
237        'video_quality_test',
238        'modules/modules.gyp:neteq_test_support',
239        'modules/modules.gyp:bwe_simulator',
240        'modules/modules.gyp:rtp_rtcp',
241        'test/test.gyp:test_main',
242        'test/webrtc_test_common.gyp:webrtc_test_common',
243        'test/webrtc_test_common.gyp:webrtc_test_renderer',
244        'webrtc',
245      ],
246      'conditions': [
247        ['OS=="android"', {
248          'dependencies': [
249            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
250          ],
251        }],
252      ],
253    },
254    {
255      'target_name': 'webrtc_nonparallel_tests',
256      'type': '<(gtest_target_type)',
257      'sources': [
258        'base/nullsocketserver_unittest.cc',
259        'base/physicalsocketserver_unittest.cc',
260        'base/socket_unittest.cc',
261        'base/socket_unittest.h',
262        'base/socketaddress_unittest.cc',
263        'base/virtualsocket_unittest.cc',
264      ],
265      'defines': [
266        'GTEST_RELATIVE_PATH',
267      ],
268      'dependencies': [
269        '<(DEPTH)/testing/gtest.gyp:gtest',
270        'base/base.gyp:rtc_base',
271        'test/test.gyp:test_main',
272      ],
273      'conditions': [
274        ['OS=="android"', {
275          'dependencies': [
276            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
277          ],
278        }],
279        ['OS=="win"', {
280          'sources': [
281            'base/win32socketserver_unittest.cc',
282          ],
283          'sources!': [
284            # TODO(ronghuawu): Fix TestUdpReadyToSendIPv6 on windows bot
285            # then reenable these tests.
286            # TODO(pbos): Move test disabling to ifdefs within the test files
287            # instead of here.
288            'base/physicalsocketserver_unittest.cc',
289            'base/socket_unittest.cc',
290            'base/win32socketserver_unittest.cc',
291          ],
292        }],
293        ['OS=="mac"', {
294          'sources': [
295            'base/macsocketserver_unittest.cc',
296          ],
297        }],
298        ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
299          'defines': [
300            'CARBON_DEPRECATED=YES',
301          ],
302        }],
303      ],
304    },
305  ],
306  'conditions': [
307    ['OS=="android"', {
308      'targets': [
309        {
310          'target_name': 'rtc_unittests_apk_target',
311          'type': 'none',
312          'dependencies': [
313            '<(apk_tests_path):rtc_unittests_apk',
314          ],
315        },
316        {
317          'target_name': 'video_engine_tests_apk_target',
318          'type': 'none',
319          'dependencies': [
320            '<(apk_tests_path):video_engine_tests_apk',
321          ],
322        },
323        {
324          'target_name': 'webrtc_perf_tests_apk_target',
325          'type': 'none',
326          'dependencies': [
327            '<(apk_tests_path):webrtc_perf_tests_apk',
328          ],
329        },
330        {
331          'target_name': 'webrtc_nonparallel_tests_apk_target',
332          'type': 'none',
333          'dependencies': [
334            '<(apk_tests_path):webrtc_nonparallel_tests_apk',
335          ],
336        },
337      ],
338    }],
339    ['test_isolation_mode != "noop"', {
340      'targets': [
341        {
342          'target_name': 'rtc_unittests_run',
343          'type': 'none',
344          'dependencies': [
345            'rtc_unittests',
346          ],
347          'includes': [
348            'build/isolate.gypi',
349          ],
350          'sources': [
351            'rtc_unittests.isolate',
352          ],
353        },
354        {
355          'target_name': 'video_engine_tests_run',
356          'type': 'none',
357          'dependencies': [
358            'video_engine_tests',
359          ],
360          'includes': [
361            'build/isolate.gypi',
362          ],
363          'sources': [
364            'video_engine_tests.isolate',
365          ],
366        },
367        {
368          'target_name': 'webrtc_nonparallel_tests_run',
369          'type': 'none',
370          'dependencies': [
371            'webrtc_nonparallel_tests',
372          ],
373          'includes': [
374            'build/isolate.gypi',
375          ],
376          'sources': [
377            'webrtc_nonparallel_tests.isolate',
378          ],
379        },
380        {
381          'target_name': 'webrtc_perf_tests_run',
382          'type': 'none',
383          'dependencies': [
384            'webrtc_perf_tests',
385          ],
386          'includes': [
387            'build/isolate.gypi',
388          ],
389          'sources': [
390            'webrtc_perf_tests.isolate',
391          ],
392        },
393      ],
394    }],
395  ],
396}
397