blob: 5a891a72da79b692c870a087ad30c8f2272a752b [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
kjellander0f380d82016-06-01 11:48:269import("//build/config/ui.gni")
Andrey Logvin5e227ab2021-01-29 10:34:5510import("//third_party/google_benchmark/buildconfig.gni")
Robin Raymondce1b1402018-11-23 01:10:1111import("../webrtc.gni")
kjellander0f380d82016-06-01 11:48:2612if (is_android) {
13 import("//build/config/android/rules.gni")
14}
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:0215
Andrey Logvine7c79fd2021-02-01 09:56:3716if (!build_with_chromium) {
17 group("test") {
18 testonly = true
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:0219
Andrey Logvine7c79fd2021-02-01 09:56:3720 deps = [
21 ":copy_to_file_audio_capturer",
22 ":rtp_test_utils",
23 ":test_common",
24 ":test_renderer",
25 ":test_support",
26 ":video_test_common",
mbonadei148d5a22017-04-28 12:24:5027 ]
Andrey Logvine7c79fd2021-02-01 09:56:3728
29 if (rtc_include_tests) {
30 deps += [
31 ":test_main",
32 ":test_support_unittests",
33 "pc/e2e",
34 ]
35 }
mbonadei148d5a22017-04-28 12:24:5036 }
kjellander0f380d82016-06-01 11:48:2637}
38
Artem Titov33f9d2b2019-12-05 14:59:0039rtc_library("frame_generator_impl") {
40 visibility = [
Artem Titov33f9d2b2019-12-05 14:59:0041 ":*",
Artem Titov9d777622020-09-18 16:23:0842 "../api:create_frame_generator",
Artem Titov33f9d2b2019-12-05 14:59:0043 ]
44 testonly = true
45 sources = [
46 "frame_generator.cc",
47 "frame_generator.h",
48 "testsupport/ivf_video_frame_generator.cc",
49 "testsupport/ivf_video_frame_generator.h",
50 ]
51 deps = [
52 ":frame_utils",
53 "../api:frame_generator_api",
54 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:2455 "../api:sequence_checker",
Artem Titov33f9d2b2019-12-05 14:59:0056 "../api/video:encoded_image",
57 "../api/video:video_frame",
58 "../api/video:video_frame_i010",
Artem Titov33f9d2b2019-12-05 14:59:0059 "../api/video:video_rtp_headers",
60 "../api/video_codecs:video_codecs_api",
61 "../common_video",
62 "../media:rtc_media_base",
63 "../modules/video_coding:video_codec_interface",
64 "../modules/video_coding:video_coding_utility",
65 "../modules/video_coding:webrtc_h264",
66 "../modules/video_coding:webrtc_vp8",
67 "../modules/video_coding:webrtc_vp9",
68 "../rtc_base",
69 "../rtc_base:checks",
70 "../rtc_base:criticalsection",
Florent Castelli0af55ba2022-04-04 13:06:3071 "../rtc_base:logging",
Florent Castelli71337f32022-04-14 10:41:2672 "../rtc_base:random",
Artem Titov33f9d2b2019-12-05 14:59:0073 "../rtc_base:rtc_event",
Markus Handella5a4be12020-07-08 14:09:2174 "../rtc_base/synchronization:mutex",
Artem Titov33f9d2b2019-12-05 14:59:0075 "../rtc_base/system:file_wrapper",
76 "../system_wrappers",
Artem Titov33f9d2b2019-12-05 14:59:0077 ]
Mirko Bonadei2dcf3482020-06-05 12:30:4178 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Artem Titov33f9d2b2019-12-05 14:59:0079}
80
81rtc_library("frame_utils") {
82 visibility = [ "*" ]
83 testonly = true
84 sources = [
85 "frame_utils.cc",
86 "frame_utils.h",
87 ]
88 deps = [
89 "../api:scoped_refptr",
90 "../api/video:video_frame",
Artem Titov33f9d2b2019-12-05 14:59:0091 ]
92}
93
Mirko Bonadei86d053c2019-10-17 19:32:0494rtc_library("video_test_common") {
Per Kjellandera7f2d842018-01-10 15:54:5395 visibility = [ "*" ]
kjellander0f380d82016-06-01 11:48:2696 testonly = true
97 sources = [
98 "fake_texture_frame.cc",
99 "fake_texture_frame.h",
Niels Möller07d80672022-07-20 08:20:33100 "fake_videorenderer.h",
Artem Titov33f9d2b2019-12-05 14:59:00101 "frame_forwarder.cc",
102 "frame_forwarder.h",
ehmaldonado656610f2017-02-06 10:21:11103 "frame_generator_capturer.cc",
104 "frame_generator_capturer.h",
Henrik Boströmbd9e4a92021-03-22 11:24:30105 "mappable_native_buffer.cc",
106 "mappable_native_buffer.h",
Sebastian Janssonf1f363f2018-08-13 12:24:58107 "test_video_capturer.cc",
108 "test_video_capturer.h",
mflodman351424e2017-08-10 09:43:14109 "video_codec_settings.h",
Niels Möller07d80672022-07-20 08:20:33110 "video_decoder_proxy_factory.h",
111 "video_encoder_nullable_proxy_factory.h",
112 "video_encoder_proxy_factory.h",
kjellander0f380d82016-06-01 11:48:26113 ]
114
kjellander0f380d82016-06-01 11:48:26115 deps = [
Sebastian Jansson53571c72019-07-31 15:30:03116 ":fileutils",
Artem Titov33f9d2b2019-12-05 14:59:00117 ":frame_utils",
Jonas Oreland4476b822022-03-10 14:21:28118 ":scoped_key_value_config",
Henrik Boströmbd9e4a92021-03-22 11:24:30119 "../api:array_view",
Artem Titov33f9d2b2019-12-05 14:59:00120 "../api:create_frame_generator",
Artem Titov503d7232019-12-04 11:37:13121 "../api:frame_generator_api",
Mirko Bonadeid9708072019-01-25 19:26:48122 "../api:scoped_refptr",
Sebastian Janssonfb14c5d2019-02-28 12:30:04123 "../api/task_queue",
Niels Möllerc6ce9c52018-05-11 09:15:30124 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38125 "../api/video:video_rtp_headers",
mflodman351424e2017-08-10 09:43:14126 "../api/video_codecs:video_codecs_api",
kjellander0f380d82016-06-01 11:48:26127 "../common_video",
sprangc5d62e22017-04-03 06:53:04128 "../media:rtc_media_base",
Artem Titov94b57c02019-03-21 12:35:10129 "../rtc_base",
Patrik Höglunda8005cf2017-12-13 15:05:42130 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12131 "../rtc_base:criticalsection",
132 "../rtc_base:logging",
133 "../rtc_base:refcount",
ehmaldonadof6a861a2017-07-19 17:40:47134 "../rtc_base:rtc_task_queue",
Artem Titov2aaf4af2019-11-22 12:25:12135 "../rtc_base:timeutils",
Markus Handella3765182020-07-08 11:13:32136 "../rtc_base/synchronization:mutex",
Sebastian Janssonecb68972019-01-18 09:30:54137 "../rtc_base/task_utils:repeating_task",
mbonadei3edccb92017-06-01 11:47:20138 "../system_wrappers",
kjellander0f380d82016-06-01 11:48:26139 ]
Henrik Boströmbd9e4a92021-03-22 11:24:30140 absl_deps = [
141 "//third_party/abseil-cpp/absl/algorithm:container",
142 "//third_party/abseil-cpp/absl/strings",
143 ]
kjellander0f380d82016-06-01 11:48:26144}
145
Niels Möller07d80672022-07-20 08:20:33146rtc_library("audio_test_common") {
147 visibility = [ "*" ]
148 testonly = true
149 sources = [
150 "audio_decoder_proxy_factory.h",
151 "function_audio_decoder_factory.h",
152 ]
153 deps = [
154 "../api/audio_codecs:audio_codecs_api",
155 "../rtc_base:checks",
156 ]
157 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
158}
159
Kári Tristan Helgasonede7cb22019-03-06 09:34:09160if (!build_with_chromium) {
161 if (is_mac || is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04162 rtc_library("video_test_mac") {
Kári Tristan Helgasonede7cb22019-03-06 09:34:09163 testonly = true
164 sources = [
165 "mac_capturer.h",
166 "mac_capturer.mm",
167 ]
168 deps = [
169 ":video_test_common",
170 "../api:libjingle_peerconnection_api",
Niels Möllere942b142019-09-17 12:30:41171 "../api:media_stream_interface",
Kári Tristan Helgasonede7cb22019-03-06 09:34:09172 "../api:scoped_refptr",
173 "../modules/video_capture:video_capture_module",
Artem Titov94b57c02019-03-21 12:35:10174 "../rtc_base",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01175 "../rtc_base:threading",
Kári Tristan Helgasonede7cb22019-03-06 09:34:09176 "../sdk:base_objc",
177 "../sdk:native_api",
178 "../sdk:native_video",
179 "../sdk:videocapture_objc",
180 ]
181 }
182 }
183
Mirko Bonadei86d053c2019-10-17 19:32:04184 rtc_library("platform_video_capturer") {
Kári Tristan Helgasonede7cb22019-03-06 09:34:09185 testonly = true
186 sources = [
187 "platform_video_capturer.cc",
188 "platform_video_capturer.h",
189 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41190 deps = [ ":video_test_common" ]
191 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Kári Tristan Helgasonede7cb22019-03-06 09:34:09192 if (is_mac || is_ios) {
193 deps += [ ":video_test_mac" ]
194 } else {
195 sources += [
196 "vcm_capturer.cc",
197 "vcm_capturer.h",
198 ]
199 deps += [
Jonas Oreland4476b822022-03-10 14:21:28200 ":scoped_key_value_config",
Kári Tristan Helgasonede7cb22019-03-06 09:34:09201 "../api:scoped_refptr",
202 "../modules/video_capture:video_capture_module",
203 "../rtc_base:checks",
204 "../rtc_base:logging",
205 ]
206 }
207 }
208}
209
Mirko Bonadei86d053c2019-10-17 19:32:04210rtc_library("rtp_test_utils") {
kjellander0f380d82016-06-01 11:48:26211 testonly = true
212 sources = [
213 "rtcp_packet_parser.cc",
214 "rtcp_packet_parser.h",
215 "rtp_file_reader.cc",
216 "rtp_file_reader.h",
217 "rtp_file_writer.cc",
218 "rtp_file_writer.h",
219 ]
220
kjellander0f380d82016-06-01 11:48:26221 deps = [
kwiberg529662a2017-09-04 12:43:17222 "../api:array_view",
Tommi25eb47c2019-08-29 14:39:05223 "../api:rtp_parameters",
kjellander0f380d82016-06-01 11:48:26224 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:33225 "../modules/rtp_rtcp:rtp_rtcp_format",
Patrik Höglunda8005cf2017-12-13 15:05:42226 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12227 "../rtc_base:criticalsection",
228 "../rtc_base:logging",
229 "../rtc_base:macromagic",
Markus Handell60ed4592020-07-09 13:18:06230 "../rtc_base/synchronization:mutex",
Niels Möllera12c42a2018-07-25 14:05:48231 "../rtc_base/system:arch",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02232 ]
Ali Tofigh714e3cb2022-07-20 10:53:07233 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02234}
235
Mirko Bonadei86d053c2019-10-17 19:32:04236rtc_library("field_trial") {
Mirko Bonadei3db07432022-06-29 19:04:17237 testonly = true
Per Kjellandera7f2d842018-01-10 15:54:53238 visibility = [ "*" ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02239 sources = [
240 "field_trial.cc",
241 "field_trial.h",
242 ]
243
Danil Chapovalov385b6c52022-04-08 14:01:50244 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Mirko Bonadeif3db00f2021-08-23 15:39:58245 deps = [
246 "../rtc_base:checks",
247 "../system_wrappers:field_trial",
248 ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02249}
250
Björn Tereliusae1892d2020-06-17 09:55:55251rtc_library("explicit_key_value_config") {
252 sources = [
253 "explicit_key_value_config.cc",
254 "explicit_key_value_config.h",
255 ]
256
257 deps = [
Jonas Orelande62c2f22022-03-29 09:04:48258 "../api:field_trials_view",
Björn Tereliusae1892d2020-06-17 09:55:55259 "../rtc_base:checks",
Jonas Orelanded99dae2022-03-09 08:28:10260 ]
261 absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
262}
263
264rtc_library("scoped_key_value_config") {
Mirko Bonadei3db07432022-06-29 19:04:17265 testonly = true
Jonas Orelandeaf632a2022-04-08 13:54:13266 visibility = [ "*" ]
Jonas Orelanded99dae2022-03-09 08:28:10267 sources = [
268 "scoped_key_value_config.cc",
269 "scoped_key_value_config.h",
270 ]
271
272 deps = [
273 ":field_trial",
Jonas Orelande62c2f22022-03-29 09:04:48274 "../api:field_trials_view",
Jonas Orelanded99dae2022-03-09 08:28:10275 "../rtc_base:checks",
Jonas Orelandd7f95502022-03-22 15:52:08276 "../system_wrappers:field_trial",
Björn Tereliusae1892d2020-06-17 09:55:55277 ]
278 absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
279}
280
Mirko Bonadei86d053c2019-10-17 19:32:04281rtc_library("perf_test") {
Per Kjellandera7f2d842018-01-10 15:54:53282 visibility = [ "*" ]
Patrik Höglund2ea27962020-01-13 14:10:40283 testonly = true
Edward Lemure66572b2018-01-05 14:34:09284 sources = [
285 "testsupport/perf_test.cc",
286 "testsupport/perf_test.h",
Patrik Höglund2ea27962020-01-13 14:10:40287 "testsupport/perf_test_histogram_writer.h",
288 "testsupport/perf_test_result_writer.h",
Edward Lemure66572b2018-01-05 14:34:09289 ]
290 deps = [
Edward Lemure66572b2018-01-05 14:34:09291 "../api:array_view",
Artem Titov9d777622020-09-18 16:23:08292 "../api/numerics",
Oleh Prypind136b282018-10-03 11:53:44293 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12294 "../rtc_base:criticalsection",
Patrik Höglund7f585b32020-01-31 10:22:42295 "../rtc_base:logging",
Artem Titov087be5c2019-09-12 18:30:54296 "../rtc_base:rtc_numerics",
Artem Titov0710b402021-02-11 11:54:04297 "../rtc_base:stringutils",
Markus Handella5a4be12020-07-08 14:09:21298 "../rtc_base/synchronization:mutex",
Jeremy Lecontec5152e82020-09-29 07:26:02299 "../test:fileutils",
Mirko Bonadei2dcf3482020-06-05 12:30:41300 ]
Artem Titov0710b402021-02-11 11:54:04301 absl_deps = [
302 "//third_party/abseil-cpp/absl/strings",
303 "//third_party/abseil-cpp/absl/types:optional",
304 ]
Patrik Höglund7f585b32020-01-31 10:22:42305 if (rtc_enable_protobuf) {
306 sources += [ "testsupport/perf_test_histogram_writer.cc" ]
307 deps += [
308 "//third_party/catapult/tracing/tracing:histogram",
309 "//third_party/catapult/tracing/tracing:reserved_infos",
310 ]
311 } else {
312 sources += [ "testsupport/perf_test_histogram_writer_no_protobuf.cc" ]
313 }
Edward Lemure66572b2018-01-05 14:34:09314}
315
mbonadeicd95a4e2017-08-24 06:55:54316if (is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04317 rtc_library("test_support_objc") {
mbonadeicd95a4e2017-08-24 06:55:54318 testonly = true
Björn Terelius49850c32022-05-04 08:59:56319 visibility = [
320 ":google_test_runner_objc",
321 ":test_support",
322 ]
mbonadeicd95a4e2017-08-24 06:55:54323 sources = [
Artem Titarenko34fc3462018-11-06 11:29:29324 "ios/coverage_util_ios.h",
325 "ios/coverage_util_ios.mm",
Byoungchan Leeb66cfb72021-07-26 07:32:10326 "ios/google_test_runner_delegate.h",
mbonadeicd95a4e2017-08-24 06:55:54327 "ios/test_support.h",
328 "ios/test_support.mm",
329 ]
denicijad207a392017-09-11 13:43:28330 deps = [
Edward Lemure66572b2018-01-05 14:34:09331 ":perf_test",
Artem Titovf5808fc2022-09-23 10:06:56332 "../api/test/metrics:chrome_perf_dashboard_metrics_exporter",
333 "../api/test/metrics:global_metrics_logger_and_exporter",
334 "../api/test/metrics:metrics_exporter",
335 "../api/test/metrics:print_result_proxy_metrics_exporter",
336 "../api/test/metrics:stdout_metrics_exporter",
Anders Carlsson7bca8ca2018-08-30 07:30:29337 "../sdk:helpers_objc",
denicijad207a392017-09-11 13:43:28338 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41339 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Artem Titarenko34fc3462018-11-06 11:29:29340 configs += [ ":test_support_objc_config" ]
341 }
342
Björn Terelius49850c32022-05-04 08:59:56343 rtc_library("google_test_runner_objc") {
344 testonly = true
345 visibility = [ "*" ]
346 sources = [ "ios/google_test_runner.mm" ]
347 deps = [ ":test_support_objc" ]
348 configs += [ "//build/config/ios:xctest_config" ]
349 frameworks = [ "UIKit.framework" ]
350 }
351
Artem Titarenko34fc3462018-11-06 11:29:29352 config("test_support_objc_config") {
353 defines = []
354
355 if (use_clang_coverage) {
356 defines += [ "WEBRTC_IOS_ENABLE_COVERAGE" ]
357 }
mbonadeicd95a4e2017-08-24 06:55:54358 }
359}
360
Patrik Höglund34924c22018-01-19 08:11:07361config("suppress_warning_4373") {
362 if (is_win) {
363 cflags = [
364 # MSVC has a bug which generates this warning when using mocks; see the
365 # section on warning 4373 in he googlemock FAQ. This warning isn't the
366 # least relevant for us, anyway.
367 "/wd4373",
368 ]
369 }
370}
371
Sebastian Jansson2afd2812018-08-23 12:44:05372config("test_main_direct_config") {
373 visibility = [ ":*" ]
Andrey Logvinb95d90b2020-12-09 12:49:39374 defines = [ "WEBRTC_UNIT_TEST" ]
Sebastian Jansson2afd2812018-08-23 12:44:05375}
mbonadei148d5a22017-04-28 12:24:50376rtc_source_set("test_support") {
Per Kjellandera7f2d842018-01-10 15:54:53377 visibility = [ "*" ]
mbonadei148d5a22017-04-28 12:24:50378 testonly = true
kjellander32c4a202016-08-30 09:53:49379
Mirko Bonadei65ce3112018-01-26 10:57:47380 all_dependent_configs = [
381 ":suppress_warning_4373",
382 "//third_party/googletest:gmock_config",
383 "//third_party/googletest:gtest_config",
384 ]
Patrik Höglund34924c22018-01-19 08:11:07385
mbonadei148d5a22017-04-28 12:24:50386 sources = [
387 "gmock.h",
388 "gtest.h",
mbonadei148d5a22017-04-28 12:24:50389 ]
390
Kári Tristan Helgasonede7cb22019-03-06 09:34:09391 public_deps = [] # no-presubmit-check TODO(webrtc:8603)
Kári Tristan Helgasone2baffb2017-06-09 08:31:58392 if (is_ios) {
Patrik Höglund81c7a602020-01-30 10:32:33393 public_deps += # no-presubmit-check TODO(webrtc:8603)
394 [ ":test_support_objc" ]
Kári Tristan Helgasone2baffb2017-06-09 08:31:58395 }
396
Sebastian Jansson2afd2812018-08-23 12:44:05397 public_configs = [ ":test_main_direct_config" ]
mbonadei148d5a22017-04-28 12:24:50398 deps = [
Mirko Bonadei3663ed32019-10-19 10:03:23399 "../rtc_base:ignore_wundef",
mbonadei148d5a22017-04-28 12:24:50400 "//testing/gmock",
401 "//testing/gtest",
402 ]
kjellander32c4a202016-08-30 09:53:49403}
404
Artem Titove4bda7d2022-07-15 21:46:03405rtc_library("fixed_fps_video_frame_writer_adapter") {
406 visibility = [ "*" ]
407 testonly = true
408 sources = [
409 "testsupport/fixed_fps_video_frame_writer_adapter.cc",
410 "testsupport/fixed_fps_video_frame_writer_adapter.h",
411 ]
412 deps = [
413 ":video_test_support",
414 "../api/units:time_delta",
415 "../api/video:video_frame",
416 "../rtc_base:checks",
417 "../system_wrappers",
418 ]
419 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
420}
421
Mirko Bonadeia9e10262020-02-06 09:35:58422rtc_library("video_test_support") {
423 testonly = true
424
425 sources = [
426 "testsupport/frame_reader.h",
427 "testsupport/frame_writer.h",
428 "testsupport/mock/mock_frame_reader.h",
429 "testsupport/video_frame_writer.cc",
430 "testsupport/video_frame_writer.h",
431 "testsupport/y4m_frame_reader.cc",
432 "testsupport/y4m_frame_writer.cc",
433 "testsupport/yuv_frame_reader.cc",
434 "testsupport/yuv_frame_writer.cc",
435 ]
436
437 deps = [
438 ":fileutils",
439 ":frame_utils",
440 ":test_support",
441 ":video_test_common",
442 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24443 "../api:sequence_checker",
Mirko Bonadeia9e10262020-02-06 09:35:58444 "../api/video:encoded_image",
445 "../api/video:video_frame",
Mirko Bonadeia9e10262020-02-06 09:35:58446 "../api/video_codecs:video_codecs_api",
447 "../common_video",
448 "../media:rtc_media_base",
449 "../modules/video_coding:video_codec_interface",
450 "../modules/video_coding:video_coding_utility",
451 "../modules/video_coding:webrtc_h264",
452 "../modules/video_coding:webrtc_vp8",
453 "../modules/video_coding:webrtc_vp9",
Florent Castellif9c59842022-04-19 15:07:23454 "../rtc_base:buffer",
Mirko Bonadeia9e10262020-02-06 09:35:58455 "../rtc_base:checks",
456 "../rtc_base:criticalsection",
457 "../rtc_base:logging",
Mirko Bonadeia9e10262020-02-06 09:35:58458 "../rtc_base:rtc_event",
Mirko Bonadeia9e10262020-02-06 09:35:58459 "../rtc_base/system:file_wrapper",
Mirko Bonadeia9e10262020-02-06 09:35:58460 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41461 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Mirko Bonadeia9e10262020-02-06 09:35:58462
463 if (!is_ios) {
464 deps += [ "//third_party:jpeg" ]
465 sources += [ "testsupport/jpeg_frame_writer.cc" ]
466 } else {
467 sources += [ "testsupport/jpeg_frame_writer_ios.cc" ]
468 }
Mirko Bonadeia9e10262020-02-06 09:35:58469}
470
Andrey Logvine7c79fd2021-02-01 09:56:37471if (rtc_include_tests && enable_google_benchmarks) {
472 rtc_library("benchmark_main") {
473 testonly = true
474 sources = [ "benchmark_main.cc" ]
475
476 deps = [ "//third_party/google_benchmark" ]
477 }
478}
479
480if (rtc_include_tests && !build_with_chromium) {
Mirko Bonadei08ce9862020-06-11 09:25:32481 rtc_library("resources_dir_flag") {
482 testonly = true
483 visibility = [ "*" ]
484 sources = [
485 "testsupport/resources_dir_flag.cc",
486 "testsupport/resources_dir_flag.h",
487 ]
488 absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ]
489 }
490
Mirko Bonadei054ea472022-07-21 07:52:32491 rtc_library("test_flags") {
492 visibility = [ "*" ]
493 testonly = true
494 sources = [
495 "test_flags.cc",
496 "test_flags.h",
497 ]
498 absl_deps = [ "//third_party/abseil-cpp/absl/flags:flag" ]
499 }
500
Mirko Bonadei86d053c2019-10-17 19:32:04501 rtc_library("test_main_lib") {
Per Kjellandera7f2d842018-01-10 15:54:53502 visibility = [ "*" ]
Oleh Prypin90ce84e2017-09-25 08:27:22503 testonly = true
Oleh Prypin5ab68542017-09-25 09:18:00504 sources = [
Artem Titov40a7a352018-10-15 13:25:34505 "test_main_lib.cc",
506 "test_main_lib.h",
Oleh Prypin5ab68542017-09-25 09:18:00507 ]
508
Oleh Prypin5ab68542017-09-25 09:18:00509 deps = [
510 ":field_trial",
Edward Lemure66572b2018-01-05 14:34:09511 ":perf_test",
Patrik Höglund844600e2019-10-15 10:19:36512 ":resources_dir_flag",
Mirko Bonadei054ea472022-07-21 07:52:32513 ":test_flags",
Artem Titov40a7a352018-10-15 13:25:34514 ":test_support",
Artem Titovf5808fc2022-09-23 10:06:56515 "../api/test/metrics:chrome_perf_dashboard_metrics_exporter",
Artem Titov36806052022-09-21 14:08:03516 "../api/test/metrics:global_metrics_logger_and_exporter",
517 "../api/test/metrics:metrics_exporter",
Artem Titovf5808fc2022-09-23 10:06:56518 "../api/test/metrics:print_result_proxy_metrics_exporter",
Artem Titov36806052022-09-21 14:08:03519 "../api/test/metrics:stdout_metrics_exporter",
Artem Titov94b57c02019-03-21 12:35:10520 "../rtc_base",
Yves Gerey3e707812018-11-28 15:47:49521 "../rtc_base:checks",
Florent Castellia30aef32022-04-19 15:47:13522 "../rtc_base:event_tracer",
Artem Titov2aaf4af2019-11-22 12:25:12523 "../rtc_base:logging",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01524 "../rtc_base:threading",
Mirko Bonadei17f48782018-09-28 06:51:10525 "../system_wrappers:field_trial",
526 "../system_wrappers:metrics",
Mirko Bonadei2dcf3482020-06-05 12:30:41527 ]
528 absl_deps = [
Mirko Bonadei2ab97f62019-07-18 11:44:12529 "//third_party/abseil-cpp/absl/flags:flag",
Artem Titov694b74b2020-02-20 22:52:26530 "//third_party/abseil-cpp/absl/memory",
Tommiec3ba732020-05-17 12:33:40531 "//third_party/abseil-cpp/absl/strings:strings",
Artem Titov694b74b2020-02-20 22:52:26532 "//third_party/abseil-cpp/absl/types:optional",
mbonadei9452c622017-04-27 19:29:29533 ]
534 }
mbonadei9452c622017-04-27 19:29:29535
Mirko Bonadei86d053c2019-10-17 19:32:04536 rtc_library("test_main") {
Artem Titov40a7a352018-10-15 13:25:34537 visibility = [ "*" ]
538 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:10539 sources = [ "test_main.cc" ]
Artem Titov40a7a352018-10-15 13:25:34540
Artem Titovbcb42f12020-08-11 10:19:18541 deps = [
542 ":test_main_lib",
543 ":test_support",
544 ]
545
Mirko Bonadei2dcf3482020-06-05 12:30:41546 absl_deps = [
Danil Chapovalov40dc98a2019-08-12 11:40:47547 "//third_party/abseil-cpp/absl/debugging:failure_signal_handler",
548 "//third_party/abseil-cpp/absl/debugging:symbolize",
Artem Titovbcb42f12020-08-11 10:19:18549 "//third_party/abseil-cpp/absl/flags:parse",
Artem Titov40a7a352018-10-15 13:25:34550 ]
551 }
552
Mirko Bonadei86d053c2019-10-17 19:32:04553 rtc_library("test_support_test_artifacts") {
Oleh Prypin5ab68542017-09-25 09:18:00554 testonly = true
555 sources = [
Edward Lemuraf8659a2017-09-27 12:46:24556 "testsupport/test_artifacts.cc",
557 "testsupport/test_artifacts.h",
Oleh Prypin5ab68542017-09-25 09:18:00558 ]
559 deps = [
560 ":fileutils",
Artem Titov2aaf4af2019-11-22 12:25:12561 "../rtc_base:logging",
Niels Möllerb7edf692019-02-08 15:40:53562 "../rtc_base/system:file_wrapper",
Mirko Bonadei2dcf3482020-06-05 12:30:41563 ]
564 absl_deps = [
Mirko Bonadei2ab97f62019-07-18 11:44:12565 "//third_party/abseil-cpp/absl/flags:flag",
566 "//third_party/abseil-cpp/absl/flags:parse",
Oleh Prypin5ab68542017-09-25 09:18:00567 ]
568 }
569
570 test_support_unittests_resources = [
571 "../resources/foreman_cif_short.yuv",
572 "../resources/video_coding/frame-ethernet-ii.pcap",
573 "../resources/video_coding/frame-loopback.pcap",
574 "../resources/video_coding/pltype103.rtp",
575 "../resources/video_coding/pltype103_header_only.rtp",
576 "../resources/video_coding/ssrcs-2.pcap",
577 "../resources/video_coding/ssrcs-3.pcap",
Oleh Prypin90ce84e2017-09-25 08:27:22578 ]
Oleh Prypin90ce84e2017-09-25 08:27:22579
580 if (is_ios) {
Oleh Prypin5ab68542017-09-25 09:18:00581 bundle_data("test_support_unittests_bundle_data") {
582 testonly = true
583 sources = test_support_unittests_resources
Mirko Bonadeiccbe95f2020-01-21 11:10:10584 outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
Oleh Prypin5ab68542017-09-25 09:18:00585 }
Oleh Prypin90ce84e2017-09-25 08:27:22586 }
587
Artem Titove4bda7d2022-07-15 21:46:03588 rtc_library("fixed_fps_video_frame_writer_adapter_test") {
589 testonly = true
590 sources = [ "testsupport/fixed_fps_video_frame_writer_adapter_test.cc" ]
591 deps = [
592 ":fixed_fps_video_frame_writer_adapter",
593 ":test_support",
594 ":video_test_support",
595 "../api/units:time_delta",
596 "../api/units:timestamp",
597 "../api/video:video_frame",
598 "../rtc_base/synchronization:mutex",
599 "time_controller",
600 ]
601 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
602 }
603
Oleh Prypin5ab68542017-09-25 09:18:00604 rtc_test("test_support_unittests") {
605 deps = [
Benjamin Wright9db8b882019-01-14 23:30:20606 ":call_config_utils",
Artem Titov8861d022019-11-27 12:28:47607 ":copy_to_file_audio_capturer_unittest",
Sebastian Jansson09408112018-04-24 12:41:22608 ":direct_transport",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27609 ":fake_video_codecs",
Patrik Höglund7696bef2018-03-15 14:05:39610 ":fileutils",
Artem Titov8861d022019-11-27 12:28:47611 ":fileutils_unittests",
Artem Titove4bda7d2022-07-15 21:46:03612 ":fixed_fps_video_frame_writer_adapter_test",
Artem Titov33f9d2b2019-12-05 14:59:00613 ":frame_generator_impl",
Edward Lemure66572b2018-01-05 14:34:09614 ":perf_test",
Artem Titov9dc209a2019-11-28 16:09:30615 ":rtc_expect_death",
Oleh Prypin5ab68542017-09-25 09:18:00616 ":rtp_test_utils",
Niels Möller65b2d8a2022-05-19 14:06:23617 ":run_loop",
Jonas Oreland4476b822022-03-10 14:21:28618 ":scoped_key_value_config",
Mirko Bonadei9098b302018-04-06 08:48:10619 ":test_main",
620 ":test_support",
621 ":test_support_test_artifacts",
622 ":video_test_common",
623 ":video_test_support",
Danil Chapovalov33fdb342021-07-23 13:28:17624 "../api:array_view",
Artem Titov33f9d2b2019-12-05 14:59:00625 "../api:create_frame_generator",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27626 "../api:create_simulcast_test_fixture_api",
Artem Titov33f9d2b2019-12-05 14:59:00627 "../api:frame_generator_api",
Mirko Bonadeid9708072019-01-25 19:26:48628 "../api:scoped_refptr",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27629 "../api:simulcast_test_fixture_api",
Artem Titov8861d022019-11-27 12:28:47630 "../api/task_queue:task_queue_test",
Danil Chapovalov99b71df2018-10-26 13:57:48631 "../api/test/video:function_video_factory",
Danil Chapovalov9c125c62022-07-07 18:29:30632 "../api/units:time_delta",
Artem Titova101a4f2019-11-25 22:19:42633 "../api/video:encoded_image",
Yves Gerey3e707812018-11-28 15:47:49634 "../api/video:video_frame",
Artem Titova101a4f2019-11-25 22:19:42635 "../api/video_codecs:video_codecs_api",
Benjamin Wright9db8b882019-01-14 23:30:20636 "../call:video_stream_api",
Artem Titova101a4f2019-11-25 22:19:42637 "../common_video",
638 "../media:rtc_media_base",
Artem Titova101a4f2019-11-25 22:19:42639 "../modules/rtp_rtcp:rtp_rtcp_format",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27640 "../modules/video_coding:simulcast_test_fixture_impl",
Artem Titova101a4f2019-11-25 22:19:42641 "../modules/video_coding:video_codec_interface",
642 "../modules/video_coding:video_coding_utility",
643 "../modules/video_coding:webrtc_h264",
644 "../modules/video_coding:webrtc_vp8",
645 "../modules/video_coding:webrtc_vp9",
646 "../rtc_base:criticalsection",
647 "../rtc_base:rtc_event",
Tommi9e46cf52020-05-04 14:43:05648 "../rtc_base:rtc_task_queue",
Markus Handella5a4be12020-07-08 14:09:21649 "../rtc_base/synchronization:mutex",
Niels Möllerb7edf692019-02-08 15:40:53650 "../rtc_base/system:file_wrapper",
Artem Titov8861d022019-11-27 12:28:47651 "pc/e2e:e2e_unittests",
652 "peer_scenario/tests",
653 "scenario:scenario_unittests",
Artem Titov2aaf4af2019-11-22 12:25:12654 "time_controller:time_controller",
Artem Titov8861d022019-11-27 12:28:47655 "time_controller:time_controller_unittests",
Artem Titov0710b402021-02-11 11:54:04656 ]
657 absl_deps = [
Mirko Bonadei2ab97f62019-07-18 11:44:12658 "//third_party/abseil-cpp/absl/flags:flag",
Artem Titov645df9e2019-01-14 13:21:59659 "//third_party/abseil-cpp/absl/strings",
Artem Titova101a4f2019-11-25 22:19:42660 "//third_party/abseil-cpp/absl/types:optional",
Oleh Prypin5ab68542017-09-25 09:18:00661 ]
662 sources = [
Benjamin Wright9db8b882019-01-14 23:30:20663 "call_config_utils_unittest.cc",
Sebastian Jansson09408112018-04-24 12:41:22664 "direct_transport_unittest.cc",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27665 "fake_vp8_encoder_unittest.cc",
Sebastian Jansson53571c72019-07-31 15:30:03666 "frame_generator_capturer_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00667 "frame_generator_unittest.cc",
668 "rtp_file_reader_unittest.cc",
669 "rtp_file_writer_unittest.cc",
Tommi9e46cf52020-05-04 14:43:05670 "run_loop_unittest.cc",
Artem Titova101a4f2019-11-25 22:19:42671 "testsupport/ivf_video_frame_generator_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00672 "testsupport/perf_test_unittest.cc",
Edward Lemuraf8659a2017-09-27 12:46:24673 "testsupport/test_artifacts_unittest.cc",
Artem Titov08a9b612019-01-17 20:37:19674 "testsupport/video_frame_writer_unittest.cc",
Artem Titov645df9e2019-01-14 13:21:59675 "testsupport/y4m_frame_reader_unittest.cc",
Oleh Prypin5ab68542017-09-25 09:18:00676 "testsupport/y4m_frame_writer_unittest.cc",
677 "testsupport/yuv_frame_reader_unittest.cc",
678 "testsupport/yuv_frame_writer_unittest.cc",
679 ]
680
Patrik Höglund7f585b32020-01-31 10:22:42681 if (rtc_enable_protobuf) {
682 sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ]
683 deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
684 }
685
Oleh Prypin5ab68542017-09-25 09:18:00686 data = test_support_unittests_resources
687 if (is_android) {
688 deps += [ "//testing/android/native_test:native_test_support" ]
689 shard_timeout = 900
690 }
691
692 if (is_ios) {
693 deps += [ ":test_support_unittests_bundle_data" ]
694 }
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27695
Andrey Logvine7c79fd2021-02-01 09:56:37696 if (!is_android) {
Mirko Bonadei9098b302018-04-06 08:48:10697 # This is needed in order to avoid:
698 # undefined symbol: webrtc::videocapturemodule::VideoCaptureImpl::Create
699 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
700 }
Oleh Prypin5ab68542017-09-25 09:18:00701 }
Oleh Prypin90ce84e2017-09-25 08:27:22702}
703
mbonadeicd95a4e2017-08-24 06:55:54704if (is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04705 rtc_library("fileutils_ios_objc") {
Artem Titov8f726be2018-10-23 13:50:10706 visibility = [
707 ":fileutils",
708 ":fileutils_override_impl",
709 ]
mbonadeicd95a4e2017-08-24 06:55:54710 sources = [
Steve Anton10542f22019-01-11 17:11:00711 "testsupport/ios_file_utils.h",
712 "testsupport/ios_file_utils.mm",
mbonadeicd95a4e2017-08-24 06:55:54713 ]
714 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42715 "../rtc_base:checks",
Anders Carlsson7bca8ca2018-08-30 07:30:29716 "../sdk:helpers_objc",
mbonadeicd95a4e2017-08-24 06:55:54717 ]
Ali Tofigh1d6de142022-03-24 18:34:34718 absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
mbonadeicd95a4e2017-08-24 06:55:54719 }
720}
721
Patrik Höglund8434aeb32018-10-05 12:52:11722if (is_mac) {
Mirko Bonadei86d053c2019-10-17 19:32:04723 rtc_library("fileutils_mac_objc") {
Artem Titov8f726be2018-10-23 13:50:10724 visibility = [
725 ":fileutils",
726 ":fileutils_override_impl",
727 ]
Patrik Höglund8434aeb32018-10-05 12:52:11728 sources = [
Steve Anton10542f22019-01-11 17:11:00729 "testsupport/mac_file_utils.h",
730 "testsupport/mac_file_utils.mm",
Patrik Höglund8434aeb32018-10-05 12:52:11731 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10732 deps = [ "../rtc_base:checks" ]
Patrik Höglund8434aeb32018-10-05 12:52:11733 }
734}
735
Mirko Bonadei86d053c2019-10-17 19:32:04736rtc_library("fileutils") {
mbonadei9452c622017-04-27 19:29:29737 testonly = true
Patrik Höglund7696bef2018-03-15 14:05:39738 visibility = [ "*" ]
mbonadei9452c622017-04-27 19:29:29739 sources = [
Steve Anton10542f22019-01-11 17:11:00740 "testsupport/file_utils.cc",
741 "testsupport/file_utils.h",
mbonadei9452c622017-04-27 19:29:29742 ]
mbonadei3edccb92017-06-01 11:47:20743 deps = [
Artem Titov8f726be2018-10-23 13:50:10744 ":fileutils_override_api",
745 ":fileutils_override_impl",
Artem Titov8f726be2018-10-23 13:50:10746 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12747 "../rtc_base:stringutils",
Artem Titov8f726be2018-10-23 13:50:10748 ]
Ali Tofigh1d6de142022-03-24 18:34:34749 absl_deps = [
750 "//third_party/abseil-cpp/absl/strings:strings",
751 "//third_party/abseil-cpp/absl/types:optional",
752 ]
Artem Titov8f726be2018-10-23 13:50:10753 if (is_ios) {
754 deps += [ ":fileutils_ios_objc" ]
755 }
756 if (is_mac) {
757 deps += [ ":fileutils_mac_objc" ]
758 }
759 if (is_win) {
Tommi16db7ff2020-09-26 09:57:26760 deps += [ "../rtc_base:win32" ]
Artem Titov8f726be2018-10-23 13:50:10761 }
762}
763
764# We separate header into own target to make it possible for downstream
765# projects to override implementation.
766rtc_source_set("fileutils_override_api") {
767 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:10768 sources = [ "testsupport/file_utils_override.h" ]
Ali Tofigh1d6de142022-03-24 18:34:34769 absl_deps = [ "//third_party/abseil-cpp/absl/strings:strings" ]
Artem Titov8f726be2018-10-23 13:50:10770}
771
Mirko Bonadei86d053c2019-10-17 19:32:04772rtc_library("fileutils_override_impl") {
Artem Titov8f726be2018-10-23 13:50:10773 testonly = true
774 visibility = [ ":fileutils" ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10775 sources = [ "testsupport/file_utils_override.cc" ]
Artem Titov8f726be2018-10-23 13:50:10776 deps = [
777 ":fileutils_override_api",
Patrik Höglunda8005cf2017-12-13 15:05:42778 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12779 "../rtc_base:macromagic",
780 "../rtc_base:stringutils",
mbonadei3edccb92017-06-01 11:47:20781 ]
Ali Tofigh1d6de142022-03-24 18:34:34782 absl_deps = [
783 "//third_party/abseil-cpp/absl/strings:strings",
784 "//third_party/abseil-cpp/absl/types:optional",
785 ]
mbonadei9452c622017-04-27 19:29:29786 if (is_ios) {
Patrik Höglund8434aeb32018-10-05 12:52:11787 deps += [ ":fileutils_ios_objc" ]
788 }
789 if (is_mac) {
790 deps += [ ":fileutils_mac_objc" ]
mbonadei3edccb92017-06-01 11:47:20791 }
792 if (is_win) {
Tommi16db7ff2020-09-26 09:57:26793 deps += [ "../rtc_base:win32" ]
mbonadei9452c622017-04-27 19:29:29794 }
mbonadei9452c622017-04-27 19:29:29795}
796
797rtc_source_set("run_test") {
798 testonly = true
mbonadeicd95a4e2017-08-24 06:55:54799 if (is_mac) {
Mirko Bonadeiccbe95f2020-01-21 11:10:10800 public_deps = [ ":run_test_objc" ] # no-presubmit-check TODO(webrtc:8603)
mbonadeicd95a4e2017-08-24 06:55:54801 } else {
Patrik Höglund81c7a602020-01-30 10:32:33802 public_deps = # no-presubmit-check TODO(webrtc:8603)
803 [ ":run_test_generic" ]
mbonadeicd95a4e2017-08-24 06:55:54804 }
805}
806
807rtc_source_set("run_test_interface") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10808 sources = [ "run_test.h" ]
mbonadeicd95a4e2017-08-24 06:55:54809}
810
811if (is_mac) {
Mirko Bonadei86d053c2019-10-17 19:32:04812 rtc_library("run_test_objc") {
mbonadeicd95a4e2017-08-24 06:55:54813 testonly = true
mbonadei9c296b32017-09-05 12:11:41814 visibility = [ ":run_test" ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10815 sources = [ "mac/run_test.mm" ]
816 deps = [ ":run_test_interface" ]
mbonadei9452c622017-04-27 19:29:29817 }
818}
819
Mirko Bonadei86d053c2019-10-17 19:32:04820rtc_library("run_test_generic") {
mbonadeicd95a4e2017-08-24 06:55:54821 testonly = true
mbonadei9c296b32017-09-05 12:11:41822 visibility = [ ":run_test" ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10823 sources = [ "run_test.cc" ]
824 deps = [ ":run_test_interface" ]
mbonadeicd95a4e2017-08-24 06:55:54825}
826
Mirko Bonadei86d053c2019-10-17 19:32:04827rtc_library("fileutils_unittests") {
ehmaldonado37535bf2016-12-05 14:42:45828 testonly = true
kjellandere0629c02017-04-25 11:04:50829 visibility = [ ":*" ] # Only targets in this file can depend on this.
Mirko Bonadeiccbe95f2020-01-21 11:10:10830 sources = [ "testsupport/file_utils_unittest.cc" ]
ehmaldonado37535bf2016-12-05 14:42:45831 deps = [
832 ":fileutils",
mbonadei3edccb92017-06-01 11:47:20833 ":test_support",
Patrik Höglunda8005cf2017-12-13 15:05:42834 "../rtc_base:checks",
ehmaldonado37535bf2016-12-05 14:42:45835 ]
Ali Tofigh1d6de142022-03-24 18:34:34836 absl_deps = [
837 "//third_party/abseil-cpp/absl/strings:strings",
838 "//third_party/abseil-cpp/absl/types:optional",
839 ]
ehmaldonado37535bf2016-12-05 14:42:45840}
kjellander0f380d82016-06-01 11:48:26841
Mirko Bonadei86d053c2019-10-17 19:32:04842rtc_library("direct_transport") {
Per Kjellandera7f2d842018-01-10 15:54:53843 visibility = [ "*" ]
perkj488c5dc2017-02-08 13:55:51844 testonly = true
845 sources = [
846 "direct_transport.cc",
847 "direct_transport.h",
perkj488c5dc2017-02-08 13:55:51848 ]
perkj488c5dc2017-02-08 13:55:51849 deps = [
Artem Titovd15a5752021-02-10 13:31:24850 "../api:sequence_checker",
Artem Titov46c4e602018-08-17 12:26:54851 "../api:simulated_network_api",
perkj488c5dc2017-02-08 13:55:51852 "../api:transport_api",
Danil Chapovalovba2ba592019-09-27 09:10:45853 "../api/task_queue",
854 "../api/units:time_delta",
Mirko Bonadeia0e1a552017-12-04 09:50:51855 "../call:call_interfaces",
Artem Titov46c4e602018-08-17 12:26:54856 "../call:simulated_packet_receiver",
Danil Chapovalov00ca0042021-07-05 17:06:17857 "../modules/rtp_rtcp:rtp_rtcp_format",
Artem Titov2aaf4af2019-11-22 12:25:12858 "../rtc_base:macromagic",
859 "../rtc_base:timeutils",
Markus Handella5a4be12020-07-08 14:09:21860 "../rtc_base/synchronization:mutex",
Danil Chapovalovba2ba592019-09-27 09:10:45861 "../rtc_base/task_utils:repeating_task",
perkj488c5dc2017-02-08 13:55:51862 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41863 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Patrik Höglund81c7a602020-01-30 10:32:33864 public_deps = # no-presubmit-check TODO(webrtc:8603)
865 [ "../call:fake_network" ]
eladalon413ee9a2017-08-22 11:02:52866}
867
Mirko Bonadei86d053c2019-10-17 19:32:04868rtc_library("fake_video_codecs") {
Emircan Uysaler7c03bdc2019-01-16 20:07:56869 allow_poison = [ "software_video_codecs" ]
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27870 visibility = [ "*" ]
871 sources = [
872 "configurable_frame_size_encoder.cc",
873 "configurable_frame_size_encoder.h",
874 "fake_decoder.cc",
875 "fake_decoder.h",
876 "fake_encoder.cc",
877 "fake_encoder.h",
Per Kjellander841c9122018-10-04 16:40:28878 "fake_vp8_decoder.cc",
879 "fake_vp8_decoder.h",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27880 "fake_vp8_encoder.cc",
881 "fake_vp8_encoder.h",
882 ]
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27883 deps = [
Elad Alon8f01c4e2019-06-28 13:19:43884 "../api:fec_controller_api",
Mirko Bonadeid9708072019-01-25 19:26:48885 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24886 "../api:sequence_checker",
Danil Chapovalov471783f2019-03-11 13:26:02887 "../api/task_queue",
Niels Möller4dc66c52018-10-05 12:17:58888 "../api/video:encoded_image",
Yves Gerey3e707812018-11-28 15:47:49889 "../api/video:video_bitrate_allocation",
890 "../api/video:video_frame",
Chen Xing5d24b162019-06-10 10:59:38891 "../api/video:video_rtp_headers",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27892 "../api/video_codecs:video_codecs_api",
Elad Aloncde8ab22019-03-20 10:56:20893 "../api/video_codecs:vp8_temporal_layers_factory",
Yves Gerey3e707812018-11-28 15:47:49894 "../modules/video_coding:codec_globals_headers",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27895 "../modules/video_coding:video_codec_interface",
896 "../modules/video_coding:video_coding_utility",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27897 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:12898 "../rtc_base:criticalsection",
899 "../rtc_base:macromagic",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27900 "../rtc_base:rtc_task_queue",
Artem Titov2aaf4af2019-11-22 12:25:12901 "../rtc_base:timeutils",
Markus Handella3765182020-07-08 11:13:32902 "../rtc_base/synchronization:mutex",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27903 "../system_wrappers",
904 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41905 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27906}
907
Mirko Bonadei86d053c2019-10-17 19:32:04908rtc_library("null_transport") {
Danil Chapovalovce928172019-04-24 16:17:42909 testonly = true
910 sources = [
911 "null_transport.cc",
912 "null_transport.h",
913 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10914 deps = [ "../api:transport_api" ]
Danil Chapovalovce928172019-04-24 16:17:42915}
916
Mirko Bonadei86d053c2019-10-17 19:32:04917rtc_library("encoder_settings") {
Danil Chapovalovce928172019-04-24 16:17:42918 testonly = true
919 sources = [
920 "encoder_settings.cc",
921 "encoder_settings.h",
922 ]
923 deps = [
924 "../api:scoped_refptr",
925 "../api/video_codecs:video_codecs_api",
926 "../call:rtp_interfaces",
927 "../call:video_stream_api",
928 "../rtc_base:checks",
929 "../rtc_base:refcount",
Jonas Oreland6c2dae22022-09-29 08:28:24930 "../video/config:encoder_config",
Danil Chapovalovce928172019-04-24 16:17:42931 ]
932}
933
Artem Titov9dc209a2019-11-28 16:09:30934rtc_library("rtc_expect_death") {
935 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:10936 sources = [ "testsupport/rtc_expect_death.h" ]
937 deps = [ ":test_support" ]
Artem Titov9dc209a2019-11-28 16:09:30938}
939
Niels Möller65b2d8a2022-05-19 14:06:23940rtc_library("run_loop") {
941 testonly = true
942 sources = [
943 "run_loop.cc",
944 "run_loop.h",
945 ]
946 deps = [
Danil Chapovalov9c125c62022-07-07 18:29:30947 "../api/task_queue",
Niels Möller65b2d8a2022-05-19 14:06:23948 "../rtc_base:threading",
949 "../rtc_base:timeutils",
Niels Möller65b2d8a2022-05-19 14:06:23950 ]
Danil Chapovalov9c125c62022-07-07 18:29:30951 absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
Niels Möller65b2d8a2022-05-19 14:06:23952}
953
Mirko Bonadei86d053c2019-10-17 19:32:04954rtc_library("test_common") {
kjellander0f380d82016-06-01 11:48:26955 testonly = true
956 sources = [
957 "call_test.cc",
958 "call_test.h",
kjellander0f380d82016-06-01 11:48:26959 "drifting_clock.cc",
960 "drifting_clock.h",
kjellander0f380d82016-06-01 11:48:26961 "layer_filtering_transport.cc",
962 "layer_filtering_transport.h",
kjellander0f380d82016-06-01 11:48:26963 "rtp_rtcp_observer.h",
kjellander0f380d82016-06-01 11:48:26964 ]
kjellander0f380d82016-06-01 11:48:26965
kjellander0f380d82016-06-01 11:48:26966 deps = [
perkj488c5dc2017-02-08 13:55:51967 ":direct_transport",
Danil Chapovalovce928172019-04-24 16:17:42968 ":encoder_settings",
Ilya Nikolaevskiyb0588e62018-08-27 12:12:27969 ":fake_video_codecs",
Patrik Höglund7696bef2018-03-15 14:05:39970 ":fileutils",
Tim Na9526c552020-02-20 19:53:13971 ":mock_transport",
Niels Möller65b2d8a2022-05-19 14:06:23972 ":run_loop",
Jonas Oreland8ca06132022-03-14 11:52:48973 ":scoped_key_value_config",
kjellander0f380d82016-06-01 11:48:26974 ":test_support",
perkjc5726c12017-03-01 11:37:08975 ":video_test_common",
Danil Chapovalov00ca0042021-07-05 17:06:17976 "../api:array_view",
Artem Titov33f9d2b2019-12-05 14:59:00977 "../api:create_frame_generator",
978 "../api:frame_generator_api",
Niels Mölleref1052a2019-03-20 07:40:23979 "../api:rtp_headers",
Niels Möller6dcd4dc2019-08-26 08:45:28980 "../api:rtp_parameters",
Artem Titov46c4e602018-08-17 12:26:54981 "../api:simulated_network_api",
mbonadei3edccb92017-06-01 11:47:20982 "../api:transport_api",
mbonadei3edccb92017-06-01 11:47:20983 "../api/audio_codecs:builtin_audio_decoder_factory",
ossueb1fde42017-05-02 13:46:30984 "../api/audio_codecs:builtin_audio_encoder_factory",
Danil Chapovalov83bbe912019-08-07 10:24:53985 "../api/rtc_event_log",
Danil Chapovalova92e6242019-04-18 08:58:56986 "../api/task_queue",
987 "../api/task_queue:default_task_queue_factory",
Danil Chapovalovddc84e92018-10-24 15:01:58988 "../api/test/video:function_video_factory",
Erik Språng014dd3c2019-11-28 12:44:25989 "../api/transport:field_trial_based_config",
Markus Handellf4f22872022-08-16 11:02:45990 "../api/units:time_delta",
Jiawei Ouc2ebe212018-11-08 18:02:56991 "../api/video:builtin_video_bitrate_allocator_factory",
992 "../api/video:video_bitrate_allocator_factory",
Niels Möllerc6ce9c52018-05-11 09:15:30993 "../api/video:video_frame",
ilnikd60d06a2017-04-05 10:02:20994 "../api/video_codecs:video_codecs_api",
Mirko Bonadei6f2bf6d2022-09-27 11:49:20995 "../call",
Mirko Bonadeia0e1a552017-12-04 09:50:51996 "../call:call_interfaces",
Artem Titov4e199e92018-08-20 11:30:39997 "../call:fake_network",
Artem Titov4e199e92018-08-20 11:30:39998 "../call:simulated_network",
Artem Titov46c4e602018-08-17 12:26:54999 "../call:simulated_packet_receiver",
aleloi440b6d92017-08-22 12:43:231000 "../call:video_stream_api",
Paulina Hensman7bd79a02018-03-15 11:44:121001 "../modules/audio_device:audio_device_impl",
aleloi10111bc2016-11-17 14:48:481002 "../modules/audio_mixer:audio_mixer_impl",
mbonadei3edccb92017-06-01 11:47:201003 "../modules/rtp_rtcp",
Mirko Bonadeib5728d92017-12-06 06:51:331004 "../modules/rtp_rtcp:rtp_rtcp_format",
Yves Gerey3e707812018-11-28 15:47:491005 "../modules/rtp_rtcp:rtp_video_header",
1006 "../modules/video_coding:codec_globals_headers",
Patrik Höglunda8005cf2017-12-13 15:05:421007 "../rtc_base:checks",
Artem Titov2aaf4af2019-11-22 12:25:121008 "../rtc_base:criticalsection",
Tommi9e46cf52020-05-04 14:43:051009 "../rtc_base:rtc_base",
Artem Titov2aaf4af2019-11-22 12:25:121010 "../rtc_base:rtc_event",
Danil Chapovalov82a3f0a2019-10-21 07:24:271011 "../rtc_base:task_queue_for_test",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011012 "../rtc_base:threading",
Florent Castellidd837e22022-04-04 15:16:151013 "../rtc_base:timeutils",
mbonadei3edccb92017-06-01 11:47:201014 "../system_wrappers",
Mirko Bonadei17f48782018-09-28 06:51:101015 "../system_wrappers:field_trial",
Jonas Oreland6c2dae22022-09-29 08:28:241016 "../video/config:encoder_config",
kjellander0f380d82016-06-01 11:48:261017 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411018 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
mbonadei148d5a22017-04-28 12:24:501019 if (!is_android && !build_with_chromium) {
oprypin92220ff2017-03-23 10:40:031020 deps += [ "../modules/video_capture:video_capture_internal_impl" ]
1021 }
kjellander0f380d82016-06-01 11:48:261022}
1023
Tim Na9526c552020-02-20 19:53:131024rtc_library("mock_transport") {
1025 testonly = true
1026 sources = [
1027 "mock_transport.cc",
1028 "mock_transport.h",
1029 ]
1030 deps = [
1031 ":test_support",
1032 "../api:transport_api",
1033 ]
1034}
1035
ehmaldonado38a21322016-09-02 11:10:341036rtc_source_set("test_renderer") {
Patrik Höglund81c7a602020-01-30 10:32:331037 public_deps = # no-presubmit-check TODO(webrtc:8603)
1038 [ ":test_renderer_generic" ]
kjellander0f380d82016-06-01 11:48:261039 testonly = true
mbonadeicd95a4e2017-08-24 06:55:541040 if (is_mac) {
Patrik Höglund81c7a602020-01-30 10:32:331041 public_deps += # no-presubmit-check TODO(webrtc:8603)
1042 [ ":test_renderer_objc" ]
mbonadeicd95a4e2017-08-24 06:55:541043 }
1044}
1045
Marina Ciocea1148fd52020-04-29 20:39:131046rtc_library("mock_frame_transformer") {
1047 visibility = [ "*" ]
1048 testonly = true
1049 sources = [ "mock_frame_transformer.h" ]
1050 deps = [
1051 "../api:frame_transformer_interface",
1052 "../test:test_support",
1053 ]
1054}
1055
Marina Ciocea455e8022020-05-04 14:03:031056rtc_library("mock_transformable_frame") {
1057 visibility = [ "*" ]
1058
1059 testonly = true
1060 sources = [ "mock_transformable_frame.h" ]
1061
1062 deps = [
1063 "../api:frame_transformer_interface",
1064 "../test:test_support",
1065 ]
1066}
1067
mbonadeicd95a4e2017-08-24 06:55:541068if (is_mac) {
Mirko Bonadei86d053c2019-10-17 19:32:041069 rtc_library("test_renderer_objc") {
mbonadeicd95a4e2017-08-24 06:55:541070 testonly = true
mbonadei9c296b32017-09-05 12:11:411071 visibility = [ ":test_renderer" ]
mbonadeicd95a4e2017-08-24 06:55:541072 sources = [
1073 "mac/video_renderer_mac.h",
1074 "mac/video_renderer_mac.mm",
1075 ]
Björn Terelius49850c32022-05-04 08:59:561076 deps = [ ":test_renderer_generic" ]
Sylvain Defresnec7f0dff2020-07-03 08:19:301077 frameworks = [
mbonadeicd95a4e2017-08-24 06:55:541078 "Cocoa.framework",
1079 "OpenGL.framework",
1080 "CoreVideo.framework",
1081 ]
mbonadeicd95a4e2017-08-24 06:55:541082 }
1083}
1084
Mirko Bonadei86d053c2019-10-17 19:32:041085rtc_library("test_renderer_generic") {
mbonadeicd95a4e2017-08-24 06:55:541086 testonly = true
mbonadei9c296b32017-09-05 12:11:411087 visibility = [
1088 ":test_renderer",
1089 ":test_renderer_objc",
1090 ]
kjellander0f380d82016-06-01 11:48:261091 libs = []
1092 sources = [
kjellander0f380d82016-06-01 11:48:261093 "video_renderer.cc",
1094 "video_renderer.h",
kjellander0f380d82016-06-01 11:48:261095 ]
mbonadeicd95a4e2017-08-24 06:55:541096 deps = [
Niels Möllerc6ce9c52018-05-11 09:15:301097 "../api/video:video_frame",
mbonadeicd95a4e2017-08-24 06:55:541098 "../common_video",
Patrik Höglunda8005cf2017-12-13 15:05:421099 "../rtc_base:checks",
mbonadeicd95a4e2017-08-24 06:55:541100 ]
Mirko Bonadei470b2d52019-10-29 18:39:171101 if (is_win) {
1102 sources += [
1103 "win/d3d_renderer.cc",
1104 "win/d3d_renderer.h",
1105 ]
Artem Titov2aaf4af2019-11-22 12:25:121106 deps += [ "../api:scoped_refptr" ]
Mirko Bonadei470b2d52019-10-29 18:39:171107 }
Hidehiko Abef264e702020-09-10 09:10:111108 if (!((is_linux || is_chromeos) && rtc_use_x11) && !is_mac && !is_win) {
kjellander0f380d82016-06-01 11:48:261109 sources += [ "null_platform_renderer.cc" ]
1110 }
Hidehiko Abef264e702020-09-10 09:10:111111 if (((is_linux || is_chromeos) && rtc_use_x11) || is_mac) {
kjellander0f380d82016-06-01 11:48:261112 sources += [
1113 "gl/gl_renderer.cc",
1114 "gl/gl_renderer.h",
1115 ]
1116 }
1117
Hidehiko Abef264e702020-09-10 09:10:111118 if ((is_linux || is_chromeos) && rtc_use_x11) {
Edward Lemur84a87c42017-11-07 18:07:311119 sources += [
1120 "linux/glx_renderer.cc",
1121 "linux/glx_renderer.h",
1122 "linux/video_renderer_linux.cc",
1123 ]
kjellander0f380d82016-06-01 11:48:261124 libs += [
1125 "Xext",
1126 "X11",
1127 "GL",
1128 ]
1129 }
1130 if (is_android) {
1131 libs += [
1132 "GLESv2",
1133 "log",
1134 ]
1135 }
kjellander0f380d82016-06-01 11:48:261136}
kwiberg37e99fd2017-04-10 12:15:481137
Mirko Bonadei86d053c2019-10-17 19:32:041138rtc_library("audio_codec_mocks") {
kwiberg37e99fd2017-04-10 12:15:481139 testonly = true
1140 sources = [
kwiberg2b3aa142017-06-14 10:31:171141 "mock_audio_decoder.cc",
kwiberg37e99fd2017-04-10 12:15:481142 "mock_audio_decoder.h",
1143 "mock_audio_decoder_factory.h",
ossueb1fde42017-05-02 13:46:301144 "mock_audio_encoder.cc",
1145 "mock_audio_encoder.h",
1146 "mock_audio_encoder_factory.h",
1147 ]
1148
1149 deps = [
mbonadei3edccb92017-06-01 11:47:201150 ":test_support",
kwiberg529662a2017-09-04 12:43:171151 "../api:array_view",
Niels Möller105711e2022-06-14 13:48:261152 "../api:make_ref_counted",
Mirko Bonadeid9708072019-01-25 19:26:481153 "../api:scoped_refptr",
ossueb1fde42017-05-02 13:46:301154 "../api/audio_codecs:audio_codecs_api",
mbonadei3edccb92017-06-01 11:47:201155 "../api/audio_codecs:builtin_audio_decoder_factory",
kwiberg37e99fd2017-04-10 12:15:481156 ]
1157}
sakald7fdb802017-05-26 08:51:531158
Mirko Bonadei86d053c2019-10-17 19:32:041159rtc_library("copy_to_file_audio_capturer") {
Artem Titov66a29b92019-01-15 13:43:201160 testonly = true
1161 sources = [
1162 "testsupport/copy_to_file_audio_capturer.cc",
1163 "testsupport/copy_to_file_audio_capturer.h",
1164 ]
1165 deps = [
1166 "../api:array_view",
Artem Titov94b57c02019-03-21 12:35:101167 "../common_audio",
Artem Titov66a29b92019-01-15 13:43:201168 "../modules/audio_device:audio_device_impl",
Florent Castellif9c59842022-04-19 15:07:231169 "../rtc_base:buffer",
Artem Titov66a29b92019-01-15 13:43:201170 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411171 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Artem Titov66a29b92019-01-15 13:43:201172}
1173
Mirko Bonadei86d053c2019-10-17 19:32:041174rtc_library("copy_to_file_audio_capturer_unittest") {
Artem Titov66a29b92019-01-15 13:43:201175 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:101176 sources = [ "testsupport/copy_to_file_audio_capturer_unittest.cc" ]
Artem Titov66a29b92019-01-15 13:43:201177 deps = [
1178 ":copy_to_file_audio_capturer",
1179 ":fileutils",
1180 ":test_support",
1181 "../modules/audio_device:audio_device_impl",
Artem Titov66a29b92019-01-15 13:43:201182 ]
1183}
1184
sakald7fdb802017-05-26 08:51:531185if (!build_with_chromium && is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:331186 rtc_android_library("native_test_java") {
sakald7fdb802017-05-26 08:51:531187 testonly = true
Natalie Chouinard65bbcab2019-12-23 22:02:251188 sources = [
sakald7fdb802017-05-26 08:51:531189 "android/org/webrtc/native_test/RTCNativeUnitTest.java",
1190 "android/org/webrtc/native_test/RTCNativeUnitTestActivity.java",
1191 ]
1192 deps = [
jianjun.zhuc0247402017-07-11 13:20:451193 "../rtc_base:base_java",
sakald7fdb802017-05-26 08:51:531194 "//testing/android/native_test:native_test_java",
sakald7fdb802017-05-26 08:51:531195 ]
1196 }
1197}
Benjamin Wright8efafdf2019-01-11 18:48:421198
Mirko Bonadei86d053c2019-10-17 19:32:041199rtc_library("call_config_utils") {
Mirko Bonadei2c9d5e42019-07-15 11:17:481200 # TODO(bugs.webrtc.org/10814): Remove rtc_json_suppressions as soon as it
1201 # gets removed upstream.
1202 public_configs = [ "../rtc_base:rtc_json_suppressions" ]
Benjamin Wright8efafdf2019-01-11 18:48:421203 sources = [
1204 "call_config_utils.cc",
1205 "call_config_utils.h",
1206 ]
1207 deps = [
Benjamin Wright8efafdf2019-01-11 18:48:421208 "../call:video_stream_api",
1209 "../rtc_base:rtc_json",
1210 ]
1211}
Evan Shrubsolea0ee64c2022-04-26 08:09:041212
1213rtc_library("fake_encoded_frame") {
1214 testonly = true
1215 sources = [
1216 "fake_encoded_frame.cc",
1217 "fake_encoded_frame.h",
1218 ]
1219 deps = [
1220 ":test_support",
1221 "../api:rtp_packet_info",
1222 "../api/video:encoded_frame",
Evan Shrubsolea4062722022-05-02 15:46:071223 "../api/video:encoded_image",
1224 "../api/video:video_frame_type",
Evan Shrubsolea0ee64c2022-04-26 08:09:041225 "../api/video:video_rtp_headers",
1226 ]
1227 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
1228}