blob: 666e3c08a47eaa424e0a200ac8a1c82d83bfa26c [file] [log] [blame]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:021# Copyright (c) 2014 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
mbonadei9aa3f0a2017-01-24 14:58:229import("../webrtc.gni")
kjellander0f380d82016-06-01 11:48:2610import("//build/config/ui.gni")
kjellander0f380d82016-06-01 11:48:2611if (is_android) {
12 import("//build/config/android/rules.gni")
13}
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:0214
kjellanderb62dbbe2016-09-23 07:38:5215group("test") {
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:0216 testonly = true
17
18 deps = [
kjellander0f380d82016-06-01 11:48:2619 ":rtp_test_utils",
20 ":test_common",
21 ":test_renderer",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:0222 ":test_support",
kjellander0f380d82016-06-01 11:48:2623 ":video_test_common",
24 ]
mbonadei148d5a22017-04-28 12:24:5025
oprypinfbbba3f2017-09-25 15:34:4126 if (rtc_include_tests) {
mbonadei148d5a22017-04-28 12:24:5027 deps += [
28 ":test_main",
29 ":test_support_unittests",
Sebastian Jansson98b07e912018-09-27 11:47:0130 "scenario/scenario_tests",
mbonadei148d5a22017-04-28 12:24:5031 ]
32 }
kjellander0f380d82016-06-01 11:48:2633}
34
ehmaldonado38a21322016-09-02 11:10:3435rtc_source_set("video_test_common") {
Per Kjellandera7f2d842018-01-10 15:54:5336 visibility = [ "*" ]
kjellander0f380d82016-06-01 11:48:2637 testonly = true
38 sources = [
39 "fake_texture_frame.cc",
40 "fake_texture_frame.h",
41 "frame_generator.cc",
42 "frame_generator.h",
ehmaldonado656610f2017-02-06 10:21:1143 "frame_generator_capturer.cc",
44 "frame_generator_capturer.h",
kjellander0f380d82016-06-01 11:48:2645 "frame_utils.cc",
46 "frame_utils.h",
Sebastian Janssonf1f363f2018-08-13 12:24:5847 "test_video_capturer.cc",
48 "test_video_capturer.h",
ehmaldonado656610f2017-02-06 10:21:1149 "vcm_capturer.cc",
50 "vcm_capturer.h",
mflodman351424e2017-08-10 09:43:1451 "video_codec_settings.h",
kjellander0f380d82016-06-01 11:48:2652 ]
53
kjellandere40a7ee2016-10-17 06:56:1254 if (!build_with_chromium && is_clang) {
55 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 11:10:3456 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander0f380d82016-06-01 11:48:2657 }
58
59 deps = [
mbonadei3edccb92017-06-01 11:47:2060 "..:webrtc_common",
Patrik Höglund9e194032018-01-04 14:58:2061 "../api:libjingle_peerconnection_api",
Niels Möllerc6ce9c52018-05-11 09:15:3062 "../api/video:video_frame",
Emircan Uysaler0823eec2018-07-14 00:10:0063 "../api/video:video_frame_i010",
Niels Möllerc6ce9c52018-05-11 09:15:3064 "../api/video:video_frame_i420",
mflodman351424e2017-08-10 09:43:1465 "../api/video_codecs:video_codecs_api",
aleloi440b6d92017-08-22 12:43:2366 "../call:video_stream_api",
kjellander0f380d82016-06-01 11:48:2667 "../common_video",
sprangc5d62e22017-04-03 06:53:0468 "../media:rtc_media_base",
ehmaldonado656610f2017-02-06 10:21:1169 "../modules/video_capture:video_capture_module",
Patrik Höglunda8005cf2017-12-13 15:05:4270 "../rtc_base:checks",
Patrik Höglund76df0df2017-12-19 10:50:2171 "../rtc_base:rtc_base",
ehmaldonadof6a861a2017-07-19 17:40:4772 "../rtc_base:rtc_task_queue",
mbonadei3edccb92017-06-01 11:47:2073 "../system_wrappers",
Danil Chapovalovabd42732018-09-10 12:07:4574 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov431abd92018-06-18 10:54:1775 "//third_party/abseil-cpp/absl/types:optional",
kjellander0f380d82016-06-01 11:48:2676 ]
77}
78
ehmaldonado38a21322016-09-02 11:10:3479rtc_source_set("rtp_test_utils") {
kjellander0f380d82016-06-01 11:48:2680 testonly = true
81 sources = [
82 "rtcp_packet_parser.cc",
83 "rtcp_packet_parser.h",
84 "rtp_file_reader.cc",
85 "rtp_file_reader.h",
86 "rtp_file_writer.cc",
87 "rtp_file_writer.h",
88 ]
89
kjellandere40a7ee2016-10-17 06:56:1290 if (!build_with_chromium && is_clang) {
91 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 11:10:3492 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander0f380d82016-06-01 11:48:2693 }
94
95 deps = [
96 "..:webrtc_common",
kwiberg529662a2017-09-04 12:43:1797 "../api:array_view",
kjellander0f380d82016-06-01 11:48:2698 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:3399 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 15:05:42100 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47101 "../rtc_base:rtc_base_approved",
Niels Möllera12c42a2018-07-25 14:05:48102 "../rtc_base/system:arch",
kjellander0f380d82016-06-01 11:48:26103 "//testing/gtest",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02104 ]
105}
106
ehmaldonado38a21322016-09-02 11:10:34107rtc_source_set("field_trial") {
Per Kjellandera7f2d842018-01-10 15:54:53108 visibility = [ "*" ]
kjellander0f380d82016-06-01 11:48:26109 testonly = true
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02110 sources = [
111 "field_trial.cc",
112 "field_trial.h",
113 ]
114
115 deps = [
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22116 "..:webrtc_common",
Mirko Bonadei17f48782018-09-28 06:51:10117 "../system_wrappers:field_trial",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02118 ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02119}
120
Edward Lemure66572b2018-01-05 14:34:09121rtc_source_set("perf_test") {
Per Kjellandera7f2d842018-01-10 15:54:53122 visibility = [ "*" ]
Edward Lemure66572b2018-01-05 14:34:09123 sources = [
124 "testsupport/perf_test.cc",
125 "testsupport/perf_test.h",
126 ]
127 deps = [
128 "..:webrtc_common",
129 "../api:array_view",
Oleh Prypind136b282018-10-03 11:53:44130 "../rtc_base:checks",
Edward Lemure66572b2018-01-05 14:34:09131 "../rtc_base:rtc_base_approved",
132 ]
133}
134
mbonadeicd95a4e2017-08-24 06:55:54135if (is_ios) {
136 rtc_source_set("test_support_objc") {
137 testonly = true
mbonadei9c296b32017-09-05 12:11:41138 visibility = [ ":test_support" ]
mbonadeicd95a4e2017-08-24 06:55:54139 sources = [
140 "ios/test_support.h",
141 "ios/test_support.mm",
142 ]
denicijad207a392017-09-11 13:43:28143 deps = [
Edward Lemure66572b2018-01-05 14:34:09144 ":perf_test",
Anders Carlsson7bca8ca2018-08-30 07:30:29145 "../sdk:helpers_objc",
denicijad207a392017-09-11 13:43:28146 ]
mbonadeicd95a4e2017-08-24 06:55:54147 }
148}
149
Patrik Höglund34924c22018-01-19 08:11:07150config("suppress_warning_4373") {
151 if (is_win) {
152 cflags = [
153 # MSVC has a bug which generates this warning when using mocks; see the
154 # section on warning 4373 in he googlemock FAQ. This warning isn't the
155 # least relevant for us, anyway.
156 "/wd4373",
157 ]
158 }
159}
160
Sebastian Jansson2afd2812018-08-23 12:44:05161config("test_main_direct_config") {
162 visibility = [ ":*" ]
163 defines = [ "UNIT_TEST" ]
164}
mbonadei148d5a22017-04-28 12:24:50165rtc_source_set("test_support") {
Per Kjellandera7f2d842018-01-10 15:54:53166 visibility = [ "*" ]
mbonadei148d5a22017-04-28 12:24:50167 testonly = true
kjellander32c4a202016-08-30 09:53:49168
Mirko Bonadei65ce3112018-01-26 10:57:47169 all_dependent_configs = [
170 ":suppress_warning_4373",
171 "//third_party/googletest:gmock_config",
172 "//third_party/googletest:gtest_config",
173 ]
Patrik Höglund34924c22018-01-19 08:11:07174
mbonadei148d5a22017-04-28 12:24:50175 sources = [
176 "gmock.h",
177 "gtest.h",
mbonadei148d5a22017-04-28 12:24:50178 ]
179
Patrik Höglund7696bef2018-03-15 14:05:39180 public_deps = []
Kári Tristan Helgasone2baffb2017-06-09 08:31:58181 if (is_ios) {
mbonadeicd95a4e2017-08-24 06:55:54182 public_deps += [ ":test_support_objc" ]
Kári Tristan Helgasone2baffb2017-06-09 08:31:58183 }
184
Sebastian Jansson2afd2812018-08-23 12:44:05185 public_configs = [ ":test_main_direct_config" ]
mbonadei148d5a22017-04-28 12:24:50186 deps = [
ehmaldonadof6a861a2017-07-19 17:40:47187 "../rtc_base:rtc_base_approved",
mbonadei148d5a22017-04-28 12:24:50188 "//testing/gmock",
189 "//testing/gtest",
190 ]
191
mbonadei148d5a22017-04-28 12:24:50192 if (!build_with_chromium && is_clang) {
193 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
194 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
195 }
kjellander32c4a202016-08-30 09:53:49196}
197
oprypinfbbba3f2017-09-25 15:34:41198if (rtc_include_tests) {
Oleh Prypin5ab68542017-09-25 09:18:00199 rtc_source_set("test_main") {
Per Kjellandera7f2d842018-01-10 15:54:53200 visibility = [ "*" ]
Oleh Prypin90ce84e2017-09-25 08:27:22201 testonly = true
Oleh Prypin5ab68542017-09-25 09:18:00202 sources = [
203 "test_main.cc",
204 ]
205
206 public_deps = [
207 ":test_support",
208 ]
209 deps = [
210 ":field_trial",
Patrik Höglund7696bef2018-03-15 14:05:39211 ":fileutils",
Edward Lemure66572b2018-01-05 14:34:09212 ":perf_test",
Niels Möller8909a632018-09-06 06:42:44213 "../rtc_base:rtc_base",
Mirko Bonadei17f48782018-09-28 06:51:10214 "../system_wrappers:field_trial",
215 "../system_wrappers:metrics",
Oleh Prypin5ab68542017-09-25 09:18:00216 "//testing/gtest",
mbonadei9452c622017-04-27 19:29:29217 ]
218 }
mbonadei9452c622017-04-27 19:29:29219
Oleh Prypin5ab68542017-09-25 09:18:00220 rtc_source_set("video_test_support") {
221 testonly = true
222
223 sources = [
224 "testsupport/frame_reader.h",
225 "testsupport/frame_writer.h",
Oleh Prypin5ab68542017-09-25 09:18:00226 "testsupport/mock/mock_frame_reader.h",
Oleh Prypin5ab68542017-09-25 09:18:00227 "testsupport/y4m_frame_writer.cc",
228 "testsupport/yuv_frame_reader.cc",
229 "testsupport/yuv_frame_writer.cc",
230 ]
231
232 deps = [
Patrik Höglund7696bef2018-03-15 14:05:39233 ":fileutils",
Oleh Prypin5ab68542017-09-25 09:18:00234 ":test_support",
235 ":video_test_common",
236 "..:webrtc_common",
Niels Möllerc6ce9c52018-05-11 09:15:30237 "../api/video:video_frame",
238 "../api/video:video_frame_i420",
Oleh Prypin5ab68542017-09-25 09:18:00239 "../common_video",
Patrik Höglunda8005cf2017-12-13 15:05:42240 "../rtc_base:checks",
Oleh Prypin5ab68542017-09-25 09:18:00241 "../rtc_base:rtc_base_approved",
242 "../system_wrappers",
Oleh Prypin5ab68542017-09-25 09:18:00243 "//testing/gtest",
Mirko Bonadei401d0562017-12-14 10:24:00244 "//third_party/libyuv",
Oleh Prypin5ab68542017-09-25 09:18:00245 ]
246
247 if (!is_ios) {
248 deps += [ "//third_party:jpeg" ]
249 sources += [ "testsupport/jpeg_frame_writer.cc" ]
250 } else {
251 sources += [ "testsupport/jpeg_frame_writer_ios.cc" ]
252 }
253
Oleh Prypin5ab68542017-09-25 09:18:00254 if (!build_with_chromium && is_clang) {
255 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
256 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
257 }
258
259 if (is_android) {
260 deps += [ "//base:base" ]
261 }
Oleh Prypin5ab68542017-09-25 09:18:00262 }
263
Edward Lemuraf8659a2017-09-27 12:46:24264 rtc_source_set("test_support_test_artifacts") {
Oleh Prypin5ab68542017-09-25 09:18:00265 testonly = true
266 sources = [
Edward Lemuraf8659a2017-09-27 12:46:24267 "testsupport/test_artifacts.cc",
268 "testsupport/test_artifacts.h",
Oleh Prypin5ab68542017-09-25 09:18:00269 ]
270 deps = [
271 ":fileutils",
272 "../rtc_base:rtc_base_approved",
273 ]
274 }
275
276 test_support_unittests_resources = [
277 "../resources/foreman_cif_short.yuv",
278 "../resources/video_coding/frame-ethernet-ii.pcap",
279 "../resources/video_coding/frame-loopback.pcap",
280 "../resources/video_coding/pltype103.rtp",
281 "../resources/video_coding/pltype103_header_only.rtp",
282 "../resources/video_coding/ssrcs-2.pcap",
283 "../resources/video_coding/ssrcs-3.pcap",
Oleh Prypin90ce84e2017-09-25 08:27:22284 ]
Oleh Prypin90ce84e2017-09-25 08:27:22285
286 if (is_ios) {
Oleh Prypin5ab68542017-09-25 09:18:00287 bundle_data("test_support_unittests_bundle_data") {
288 testonly = true
289 sources = test_support_unittests_resources
290 outputs = [
291 "{{bundle_resources_dir}}/{{source_file_part}}",
292 ]
293 }
Oleh Prypin90ce84e2017-09-25 08:27:22294 }
295
Oleh Prypin5ab68542017-09-25 09:18:00296 rtc_test("test_support_unittests") {
297 deps = [
Sebastian Jansson09408112018-04-24 12:41:22298 ":direct_transport",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27299 ":fake_video_codecs",
Patrik Höglund7696bef2018-03-15 14:05:39300 ":fileutils",
Mirko Bonadei46399992018-08-22 13:32:38301 ":fileutils_unittests",
Edward Lemure66572b2018-01-05 14:34:09302 ":perf_test",
Oleh Prypin5ab68542017-09-25 09:18:00303 ":rtp_test_utils",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27304 ":test_common",
Mirko Bonadei9098b302018-04-06 08:48:10305 ":test_main",
306 ":test_support",
307 ":test_support_test_artifacts",
308 ":video_test_common",
309 ":video_test_support",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27310 "../api:create_simulcast_test_fixture_api",
311 "../api:simulcast_test_fixture_api",
Niels Möllerc6ce9c52018-05-11 09:15:30312 "../api/video:video_frame_i420",
Mirko Bonadei9098b302018-04-06 08:48:10313 "../modules/rtp_rtcp:rtp_rtcp",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27314 "../modules/video_capture",
315 "../modules/video_coding:simulcast_test_fixture_impl",
Oleh Prypin5ab68542017-09-25 09:18:00316 "../rtc_base:rtc_base_approved",
Mirko Bonadei9098b302018-04-06 08:48:10317 "../test:single_threaded_task_queue",
Sebastian Jansson98b07e912018-09-27 11:47:01318 "scenario:scenario_unittests",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27319 "//testing/gmock",
Mirko Bonadei9098b302018-04-06 08:48:10320 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 09:40:33321 "//third_party/abseil-cpp/absl/memory",
Oleh Prypin5ab68542017-09-25 09:18:00322 ]
323 sources = [
Sebastian Jansson09408112018-04-24 12:41:22324 "direct_transport_unittest.cc",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27325 "fake_vp8_encoder_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00326 "frame_generator_unittest.cc",
327 "rtp_file_reader_unittest.cc",
328 "rtp_file_writer_unittest.cc",
329 "single_threaded_task_queue_unittest.cc",
330 "testsupport/always_passing_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00331 "testsupport/perf_test_unittest.cc",
Edward Lemuraf8659a2017-09-27 12:46:24332 "testsupport/test_artifacts_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00333 "testsupport/y4m_frame_writer_unittest.cc",
334 "testsupport/yuv_frame_reader_unittest.cc",
335 "testsupport/yuv_frame_writer_unittest.cc",
336 ]
337
Oleh Prypin5ab68542017-09-25 09:18:00338 if (!build_with_chromium && is_clang) {
339 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
340 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
341 }
342
343 data = test_support_unittests_resources
344 if (is_android) {
345 deps += [ "//testing/android/native_test:native_test_support" ]
346 shard_timeout = 900
347 }
348
349 if (is_ios) {
350 deps += [ ":test_support_unittests_bundle_data" ]
351 }
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27352
Mirko Bonadei9098b302018-04-06 08:48:10353 if (!is_android && !build_with_chromium) {
354 # This is needed in order to avoid:
355 # undefined symbol: webrtc::videocapturemodule::VideoCaptureImpl::Create
356 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
357 }
Oleh Prypin5ab68542017-09-25 09:18:00358 }
Oleh Prypin90ce84e2017-09-25 08:27:22359}
360
mbonadeicd95a4e2017-08-24 06:55:54361if (is_ios) {
Patrik Höglund8434aeb32018-10-05 12:52:11362 rtc_source_set("fileutils_ios_objc") {
mbonadei9c296b32017-09-05 12:11:41363 visibility = [ ":fileutils" ]
mbonadeicd95a4e2017-08-24 06:55:54364 sources = [
Patrik Höglund8434aeb32018-10-05 12:52:11365 "testsupport/iosfileutils.h",
mbonadeicd95a4e2017-08-24 06:55:54366 "testsupport/iosfileutils.mm",
367 ]
368 deps = [
369 "..:webrtc_common",
Patrik Höglunda8005cf2017-12-13 15:05:42370 "../rtc_base:checks",
mbonadeicd95a4e2017-08-24 06:55:54371 "../rtc_base:rtc_base_approved",
Anders Carlsson7bca8ca2018-08-30 07:30:29372 "../sdk:helpers_objc",
mbonadeicd95a4e2017-08-24 06:55:54373 ]
374 }
375}
376
Patrik Höglund8434aeb32018-10-05 12:52:11377if (is_mac) {
378 rtc_source_set("fileutils_mac_objc") {
379 visibility = [ ":fileutils" ]
380 sources = [
381 "testsupport/macfileutils.h",
382 "testsupport/macfileutils.mm",
383 ]
384 deps = [
385 "../rtc_base:checks",
386 ]
387 }
388}
389
mbonadei9452c622017-04-27 19:29:29390rtc_source_set("fileutils") {
391 testonly = true
Patrik Höglund7696bef2018-03-15 14:05:39392 visibility = [ "*" ]
mbonadei9452c622017-04-27 19:29:29393 sources = [
394 "testsupport/fileutils.cc",
395 "testsupport/fileutils.h",
396 ]
mbonadei3edccb92017-06-01 11:47:20397 deps = [
398 "..:webrtc_common",
Patrik Höglunda8005cf2017-12-13 15:05:42399 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47400 "../rtc_base:rtc_base_approved",
Niels Möllera12c42a2018-07-25 14:05:48401 "../rtc_base/system:arch",
Danil Chapovalov431abd92018-06-18 10:54:17402 "//third_party/abseil-cpp/absl/types:optional",
mbonadei3edccb92017-06-01 11:47:20403 ]
mbonadei9452c622017-04-27 19:29:29404 if (is_ios) {
Patrik Höglund8434aeb32018-10-05 12:52:11405 deps += [ ":fileutils_ios_objc" ]
406 }
407 if (is_mac) {
408 deps += [ ":fileutils_mac_objc" ]
mbonadei3edccb92017-06-01 11:47:20409 }
410 if (is_win) {
ehmaldonadof6a861a2017-07-19 17:40:47411 deps += [ "../rtc_base:rtc_base" ]
mbonadei9452c622017-04-27 19:29:29412 }
mbonadei9452c622017-04-27 19:29:29413}
414
415rtc_source_set("run_test") {
416 testonly = true
mbonadeicd95a4e2017-08-24 06:55:54417 if (is_mac) {
418 public_deps = [
419 ":run_test_objc",
420 ]
421 } else {
422 public_deps = [
423 ":run_test_generic",
424 ]
425 }
426}
427
428rtc_source_set("run_test_interface") {
mbonadei9452c622017-04-27 19:29:29429 sources = [
430 "run_test.h",
431 ]
mbonadeicd95a4e2017-08-24 06:55:54432}
433
434if (is_mac) {
435 rtc_source_set("run_test_objc") {
436 testonly = true
mbonadei9c296b32017-09-05 12:11:41437 visibility = [ ":run_test" ]
mbonadeicd95a4e2017-08-24 06:55:54438 sources = [
439 "mac/run_test.mm",
440 ]
mbonadei9c296b32017-09-05 12:11:41441 deps = [
mbonadeicd95a4e2017-08-24 06:55:54442 ":run_test_interface",
443 ]
mbonadei9452c622017-04-27 19:29:29444 }
445}
446
mbonadeicd95a4e2017-08-24 06:55:54447rtc_source_set("run_test_generic") {
448 testonly = true
mbonadei9c296b32017-09-05 12:11:41449 visibility = [ ":run_test" ]
mbonadeicd95a4e2017-08-24 06:55:54450 sources = [
451 "run_test.cc",
452 ]
mbonadei9c296b32017-09-05 12:11:41453 deps = [
mbonadeicd95a4e2017-08-24 06:55:54454 ":run_test_interface",
455 ]
456}
457
ehmaldonado37535bf2016-12-05 14:42:45458rtc_source_set("fileutils_unittests") {
459 testonly = true
kjellandere0629c02017-04-25 11:04:50460 visibility = [ ":*" ] # Only targets in this file can depend on this.
ehmaldonado37535bf2016-12-05 14:42:45461 sources = [
462 "testsupport/fileutils_unittest.cc",
463 ]
464 deps = [
465 ":fileutils",
mbonadei3edccb92017-06-01 11:47:20466 ":test_support",
Patrik Höglunda8005cf2017-12-13 15:05:42467 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47468 "../rtc_base:rtc_base_approved",
ehmaldonado37535bf2016-12-05 14:42:45469 "//testing/gtest",
Danil Chapovalov431abd92018-06-18 10:54:17470 "//third_party/abseil-cpp/absl/types:optional",
ehmaldonado37535bf2016-12-05 14:42:45471 ]
472}
kjellander0f380d82016-06-01 11:48:26473
perkj488c5dc2017-02-08 13:55:51474rtc_source_set("direct_transport") {
Per Kjellandera7f2d842018-01-10 15:54:53475 visibility = [ "*" ]
perkj488c5dc2017-02-08 13:55:51476 testonly = true
477 sources = [
478 "direct_transport.cc",
479 "direct_transport.h",
perkj488c5dc2017-02-08 13:55:51480 ]
481 if (!build_with_chromium && is_clang) {
482 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
483 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
484 }
485 deps = [
mbonadei3edccb92017-06-01 11:47:20486 "..:webrtc_common",
Artem Titov46c4e602018-08-17 12:26:54487 "../api:simulated_network_api",
perkj488c5dc2017-02-08 13:55:51488 "../api:transport_api",
Mirko Bonadeia0e1a552017-12-04 09:50:51489 "../call:call_interfaces",
Artem Titov46c4e602018-08-17 12:26:54490 "../call:simulated_packet_receiver",
mbonadei3edccb92017-06-01 11:47:20491 "../modules/rtp_rtcp",
ehmaldonadof6a861a2017-07-19 17:40:47492 "../rtc_base:rtc_base_approved",
eladalon413ee9a2017-08-22 11:02:52493 "../rtc_base:sequenced_task_checker",
mbonadei3edccb92017-06-01 11:47:20494 "../system_wrappers",
Karl Wiberg918f50c2018-07-05 09:40:33495 "//third_party/abseil-cpp/absl/memory",
perkj488c5dc2017-02-08 13:55:51496 ]
eladalon413ee9a2017-08-22 11:02:52497 public_deps = [
498 ":single_threaded_task_queue",
Erik Språng09708512018-03-14 14:16:50499 "../call:fake_network",
eladalon413ee9a2017-08-22 11:02:52500 ]
501}
502
503rtc_source_set("single_threaded_task_queue") {
504 testonly = true
505 sources = [
506 "single_threaded_task_queue.cc",
507 "single_threaded_task_queue.h",
508 ]
509 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42510 "../rtc_base:checks",
eladalon413ee9a2017-08-22 11:02:52511 "../rtc_base:rtc_base_approved",
Karl Wiberg918f50c2018-07-05 09:40:33512 "//third_party/abseil-cpp/absl/memory",
eladalon413ee9a2017-08-22 11:02:52513 ]
perkj488c5dc2017-02-08 13:55:51514}
515
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27516rtc_source_set("fake_video_codecs") {
517 testonly = true
518 visibility = [ "*" ]
519 sources = [
520 "configurable_frame_size_encoder.cc",
521 "configurable_frame_size_encoder.h",
522 "fake_decoder.cc",
523 "fake_decoder.h",
524 "fake_encoder.cc",
525 "fake_encoder.h",
Per Kjellander841c9122018-10-04 16:40:28526 "fake_vp8_decoder.cc",
527 "fake_vp8_decoder.h",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27528 "fake_vp8_encoder.cc",
529 "fake_vp8_encoder.h",
530 ]
531 if (!build_with_chromium && is_clang) {
532 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
533 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
534 }
535 deps = [
536 "..:webrtc_common",
Niels Möller4dc66c52018-10-05 12:17:58537 "../api/video:encoded_image",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27538 "../api/video:video_frame_i420",
539 "../api/video_codecs:video_codecs_api",
540 "../common_video:common_video",
541 "../modules/video_coding:video_codec_interface",
542 "../modules/video_coding:video_coding_utility",
543 "../modules/video_coding:webrtc_h264",
544 "../modules/video_coding:webrtc_vp8",
545 "../modules/video_coding:webrtc_vp9",
546 "../rtc_base:checks",
547 "../rtc_base:rtc_base_approved",
548 "../rtc_base:rtc_task_queue",
549 "../rtc_base:sequenced_task_checker",
550 "../system_wrappers",
551 ]
552}
553
ehmaldonado38a21322016-09-02 11:10:34554rtc_source_set("test_common") {
kjellander0f380d82016-06-01 11:48:26555 testonly = true
556 sources = [
557 "call_test.cc",
558 "call_test.h",
kjellander0f380d82016-06-01 11:48:26559 "constants.cc",
560 "constants.h",
kjellander0f380d82016-06-01 11:48:26561 "drifting_clock.cc",
562 "drifting_clock.h",
563 "encoder_settings.cc",
564 "encoder_settings.h",
sakal55d932b2016-09-30 13:19:08565 "fake_videorenderer.h",
Rasmus Brandt0cedc052018-05-31 10:53:00566 "function_video_decoder_factory.h",
Niels Möller4db138e2018-04-19 07:04:13567 "function_video_encoder_factory.h",
kjellander0f380d82016-06-01 11:48:26568 "layer_filtering_transport.cc",
569 "layer_filtering_transport.h",
Danil Chapovalovdd7e2842018-03-09 15:37:03570 "mock_transport.cc",
kjellander0f380d82016-06-01 11:48:26571 "mock_transport.h",
kjellander0f380d82016-06-01 11:48:26572 "null_transport.cc",
573 "null_transport.h",
574 "rtp_rtcp_observer.h",
575 "statistics.cc",
576 "statistics.h",
Niels Möllercbcbc222018-09-28 07:07:24577 "video_decoder_proxy_factory.h",
578 "video_encoder_proxy_factory.h",
kjellander0f380d82016-06-01 11:48:26579 "win/run_loop_win.cc",
580 ]
581 if (!is_win) {
582 sources += [
583 "run_loop.cc",
584 "run_loop.h",
585 ]
586 }
587
kjellandere40a7ee2016-10-17 06:56:12588 if (!build_with_chromium && is_clang) {
589 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 11:10:34590 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander0f380d82016-06-01 11:48:26591 }
592
593 deps = [
perkj488c5dc2017-02-08 13:55:51594 ":direct_transport",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27595 ":fake_video_codecs",
Patrik Höglund7696bef2018-03-15 14:05:39596 ":fileutils",
kjellander0f380d82016-06-01 11:48:26597 ":rtp_test_utils",
598 ":test_support",
perkjc5726c12017-03-01 11:37:08599 ":video_test_common",
Patrik Höglundbe214a22018-01-04 11:14:35600 "../api:libjingle_peerconnection_api",
Artem Titov46c4e602018-08-17 12:26:54601 "../api:simulated_network_api",
mbonadei3edccb92017-06-01 11:47:20602 "../api:transport_api",
mbonadei3edccb92017-06-01 11:47:20603 "../api/audio_codecs:builtin_audio_decoder_factory",
ossueb1fde42017-05-02 13:46:30604 "../api/audio_codecs:builtin_audio_encoder_factory",
Niels Möllerc6ce9c52018-05-11 09:15:30605 "../api/video:video_frame",
ilnikd60d06a2017-04-05 10:02:20606 "../api/video_codecs:video_codecs_api",
kjellander94cee312016-06-10 08:56:57607 "../audio",
kjellander94cee312016-06-10 08:56:57608 "../call",
Mirko Bonadeia0e1a552017-12-04 09:50:51609 "../call:call_interfaces",
Artem Titov4e199e92018-08-20 11:30:39610 "../call:fake_network",
sprangdb2a9fc2017-08-09 13:42:32611 "../call:rtp_sender",
Artem Titov4e199e92018-08-20 11:30:39612 "../call:simulated_network",
Artem Titov46c4e602018-08-17 12:26:54613 "../call:simulated_packet_receiver",
aleloi440b6d92017-08-22 12:43:23614 "../call:video_stream_api",
mbonadei3edccb92017-06-01 11:47:20615 "../logging:rtc_event_log_api",
Qingsi Wang970b0882018-02-01 19:04:46616 "../logging:rtc_event_log_impl_base",
Emircan Uysaler03e6ec92018-03-09 23:03:26617 "../media:rtc_internal_video_codecs",
Mirko Bonadeiad627922017-11-30 16:16:21618 "../media:rtc_media_base",
Artem Titov3faa8322018-03-07 13:44:00619 "../modules/audio_device",
Paulina Hensman7bd79a02018-03-15 11:44:12620 "../modules/audio_device:audio_device_impl",
mbonadei3edccb92017-06-01 11:47:20621 "../modules/audio_device:mock_audio_device",
aleloi10111bc2016-11-17 14:48:48622 "../modules/audio_mixer:audio_mixer_impl",
aleloidd310712016-11-17 14:28:59623 "../modules/audio_processing",
Sebastian Jansson50eb4c42018-08-03 11:25:17624 "../modules/congestion_controller/bbr",
mbonadei3edccb92017-06-01 11:47:20625 "../modules/rtp_rtcp",
626 "../modules/rtp_rtcp:mock_rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:33627 "../modules/rtp_rtcp:rtp_rtcp_format",
charujaincb728ea2017-09-18 10:08:08628 "../modules/video_coding:video_coding_utility",
mbonadei3edccb92017-06-01 11:47:20629 "../modules/video_coding:webrtc_h264",
Emircan Uysaler03e6ec92018-03-09 23:03:26630 "../modules/video_coding:webrtc_multiplex",
Sergio Garcia Murillo43800f92018-06-21 14:16:38631 "../modules/video_coding:webrtc_vp8",
mbonadei3edccb92017-06-01 11:47:20632 "../modules/video_coding:webrtc_vp9",
Patrik Höglunda8005cf2017-12-13 15:05:42633 "../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 17:40:47634 "../rtc_base:rtc_base_approved",
Sebastian Jansson50eb4c42018-08-03 11:25:17635 "../rtc_base/experiments:congestion_controller_experiment",
mbonadei3edccb92017-06-01 11:47:20636 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:10637 "../system_wrappers:field_trial",
kjellander94cee312016-06-10 08:56:57638 "../video",
kjellander0f380d82016-06-01 11:48:26639 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 09:40:33640 "//third_party/abseil-cpp/absl/memory",
kjellander0f380d82016-06-01 11:48:26641 ]
mbonadei148d5a22017-04-28 12:24:50642 if (!is_android && !build_with_chromium) {
oprypin92220ff2017-03-23 10:40:03643 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
644 }
kjellander0f380d82016-06-01 11:48:26645}
646
ehmaldonado38a21322016-09-02 11:10:34647rtc_source_set("test_renderer") {
mbonadei9c296b32017-09-05 12:11:41648 public_deps = [
649 ":test_renderer_generic",
650 ]
kjellander0f380d82016-06-01 11:48:26651 testonly = true
mbonadeicd95a4e2017-08-24 06:55:54652 if (is_mac) {
mbonadei9c296b32017-09-05 12:11:41653 public_deps += [ ":test_renderer_objc" ]
mbonadeicd95a4e2017-08-24 06:55:54654 }
655}
656
657if (is_mac) {
658 rtc_source_set("test_renderer_objc") {
659 testonly = true
mbonadei9c296b32017-09-05 12:11:41660 visibility = [ ":test_renderer" ]
mbonadeicd95a4e2017-08-24 06:55:54661 sources = [
662 "mac/video_renderer_mac.h",
663 "mac/video_renderer_mac.mm",
664 ]
mbonadeicd95a4e2017-08-24 06:55:54665 deps = [
mbonadei9c296b32017-09-05 12:11:41666 ":test_renderer_generic",
mbonadeicd95a4e2017-08-24 06:55:54667 "../rtc_base:rtc_base_approved",
668 ]
669 libs = [
670 "Cocoa.framework",
671 "OpenGL.framework",
672 "CoreVideo.framework",
673 ]
674 if (!build_with_chromium && is_clang) {
675 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
676 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
677 }
678 }
679}
680
681rtc_source_set("test_renderer_generic") {
682 testonly = true
mbonadei9c296b32017-09-05 12:11:41683 visibility = [
684 ":test_renderer",
685 ":test_renderer_objc",
686 ]
kjellander0f380d82016-06-01 11:48:26687 libs = []
688 sources = [
kjellander0f380d82016-06-01 11:48:26689 "video_renderer.cc",
690 "video_renderer.h",
691 "win/d3d_renderer.cc",
692 "win/d3d_renderer.h",
693 ]
mbonadeicd95a4e2017-08-24 06:55:54694 deps = [
695 ":test_support",
696 "..:webrtc_common",
Niels Möllerc6ce9c52018-05-11 09:15:30697 "../api/video:video_frame",
mbonadeicd95a4e2017-08-24 06:55:54698 "../common_video",
Mirko Bonadeiad627922017-11-30 16:16:21699 "../media:rtc_media_base",
Patrik Höglunda8005cf2017-12-13 15:05:42700 "../rtc_base:checks",
mbonadeicd95a4e2017-08-24 06:55:54701 "../rtc_base:rtc_base_approved",
702 "//testing/gtest",
703 ]
Joachim Bauch75f18fc2017-12-20 20:25:47704 if (!(is_linux && rtc_use_x11) && !is_mac && !is_win) {
kjellander0f380d82016-06-01 11:48:26705 sources += [ "null_platform_renderer.cc" ]
706 }
Joachim Bauch75f18fc2017-12-20 20:25:47707 if ((is_linux && rtc_use_x11) || is_mac) {
kjellander0f380d82016-06-01 11:48:26708 sources += [
709 "gl/gl_renderer.cc",
710 "gl/gl_renderer.h",
711 ]
712 }
713
Joachim Bauch75f18fc2017-12-20 20:25:47714 if (is_linux && rtc_use_x11) {
Edward Lemur84a87c42017-11-07 18:07:31715 sources += [
716 "linux/glx_renderer.cc",
717 "linux/glx_renderer.h",
718 "linux/video_renderer_linux.cc",
719 ]
kjellander0f380d82016-06-01 11:48:26720 libs += [
721 "Xext",
722 "X11",
723 "GL",
724 ]
725 }
726 if (is_android) {
727 libs += [
728 "GLESv2",
729 "log",
730 ]
731 }
kjellander0f380d82016-06-01 11:48:26732
kjellandere40a7ee2016-10-17 06:56:12733 if (!build_with_chromium && is_clang) {
734 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 11:10:34735 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander0f380d82016-06-01 11:48:26736 }
kjellander0f380d82016-06-01 11:48:26737}
kwiberg37e99fd2017-04-10 12:15:48738
739rtc_source_set("audio_codec_mocks") {
740 testonly = true
741 sources = [
kwiberg2b3aa142017-06-14 10:31:17742 "mock_audio_decoder.cc",
kwiberg37e99fd2017-04-10 12:15:48743 "mock_audio_decoder.h",
744 "mock_audio_decoder_factory.h",
ossueb1fde42017-05-02 13:46:30745 "mock_audio_encoder.cc",
746 "mock_audio_encoder.h",
747 "mock_audio_encoder_factory.h",
748 ]
749
750 deps = [
mbonadei3edccb92017-06-01 11:47:20751 ":test_support",
kwiberg529662a2017-09-04 12:43:17752 "../api:array_view",
ossueb1fde42017-05-02 13:46:30753 "../api/audio_codecs:audio_codecs_api",
mbonadei3edccb92017-06-01 11:47:20754 "../api/audio_codecs:builtin_audio_decoder_factory",
ehmaldonadof6a861a2017-07-19 17:40:47755 "../rtc_base:rtc_base_approved",
kwiberg37e99fd2017-04-10 12:15:48756 ]
757}
sakald7fdb802017-05-26 08:51:53758
759if (!build_with_chromium && is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33760 rtc_android_library("native_test_java") {
sakald7fdb802017-05-26 08:51:53761 testonly = true
762 java_files = [
763 "android/org/webrtc/native_test/RTCNativeUnitTest.java",
764 "android/org/webrtc/native_test/RTCNativeUnitTestActivity.java",
765 ]
766 deps = [
jianjun.zhuc0247402017-07-11 13:20:45767 "../rtc_base:base_java",
sakald7fdb802017-05-26 08:51:53768 "//testing/android/native_test:native_test_java",
sakald7fdb802017-05-26 08:51:53769 ]
770 }
771}