xref: /aosp_15_r20/external/webrtc/test/network/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2018 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
9import("../../webrtc.gni")
10
11rtc_library("emulated_network") {
12  visibility = [
13    ":*",
14    "../../api:create_network_emulation_manager",
15    "../../api/test/network_emulation:create_cross_traffic",
16  ]
17  if (rtc_include_tests) {
18    visibility += [
19      "../peer_scenario:*",
20      "../scenario:*",
21    ]
22  }
23  testonly = true
24  sources = [
25    "cross_traffic.cc",
26    "cross_traffic.h",
27    "emulated_network_manager.cc",
28    "emulated_network_manager.h",
29    "emulated_turn_server.cc",
30    "emulated_turn_server.h",
31    "fake_network_socket_server.cc",
32    "fake_network_socket_server.h",
33    "network_emulation.cc",
34    "network_emulation.h",
35    "network_emulation_manager.cc",
36    "network_emulation_manager.h",
37    "traffic_route.cc",
38    "traffic_route.h",
39  ]
40  deps = [
41    "../../api:array_view",
42    "../../api:field_trials_view",
43    "../../api:network_emulation_manager_api",
44    "../../api:packet_socket_factory",
45    "../../api:scoped_refptr",
46    "../../api:sequence_checker",
47    "../../api:simulated_network_api",
48    "../../api:time_controller",
49    "../../api/numerics",
50    "../../api/task_queue:pending_task_safety_flag",
51    "../../api/test/network_emulation",
52    "../../api/transport:stun_types",
53    "../../api/units:data_rate",
54    "../../api/units:data_size",
55    "../../api/units:time_delta",
56    "../../api/units:timestamp",
57    "../../call:simulated_network",
58    "../../p2p:p2p_server_utils",
59    "../../p2p:rtc_p2p",
60    "../../rtc_base",
61    "../../rtc_base:copy_on_write_buffer",
62    "../../rtc_base:ip_address",
63    "../../rtc_base:logging",
64    "../../rtc_base:macromagic",
65    "../../rtc_base:network_constants",
66    "../../rtc_base:random",
67    "../../rtc_base:rtc_base_tests_utils",
68    "../../rtc_base:rtc_event",
69    "../../rtc_base:rtc_task_queue",
70    "../../rtc_base:safe_minmax",
71    "../../rtc_base:socket",
72    "../../rtc_base:socket_address",
73    "../../rtc_base:socket_server",
74    "../../rtc_base:stringutils",
75    "../../rtc_base:task_queue_for_test",
76    "../../rtc_base:threading",
77    "../../rtc_base/memory:always_valid_pointer",
78    "../../rtc_base/synchronization:mutex",
79    "../../rtc_base/system:no_unique_address",
80    "../../rtc_base/task_utils:repeating_task",
81    "../../system_wrappers",
82    "../../test:scoped_key_value_config",
83    "../scenario:column_printer",
84    "../time_controller",
85  ]
86  absl_deps = [
87    "//third_party/abseil-cpp/absl/algorithm:container",
88    "//third_party/abseil-cpp/absl/memory",
89    "//third_party/abseil-cpp/absl/strings",
90    "//third_party/abseil-cpp/absl/types:optional",
91  ]
92}
93
94rtc_library("network_emulation_unittest") {
95  testonly = true
96  sources = [ "network_emulation_unittest.cc" ]
97  deps = [
98    ":emulated_network",
99    "../:test_support",
100    "../../api:simulated_network_api",
101    "../../api/units:time_delta",
102    "../../call:simulated_network",
103    "../../rtc_base:gunit_helpers",
104    "../../rtc_base:logging",
105    "../../rtc_base:rtc_event",
106    "../../rtc_base:task_queue_for_test",
107    "../../rtc_base/synchronization:mutex",
108  ]
109}
110
111if (rtc_include_tests && !build_with_chromium) {
112  rtc_library("network_emulation_pc_unittest") {
113    testonly = true
114    sources = [ "network_emulation_pc_unittest.cc" ]
115    deps = [
116      ":emulated_network",
117      "../:test_support",
118      "../../api:callfactory_api",
119      "../../api:libjingle_peerconnection_api",
120      "../../api:scoped_refptr",
121      "../../api:simulated_network_api",
122      "../../api/rtc_event_log:rtc_event_log_factory",
123      "../../api/task_queue:default_task_queue_factory",
124      "../../api/transport:field_trial_based_config",
125      "../../call:simulated_network",
126      "../../media:rtc_audio_video",
127      "../../media:rtc_media_engine_defaults",
128      "../../modules/audio_device:audio_device_impl",
129      "../../p2p:rtc_p2p",
130      "../../pc:pc_test_utils",
131      "../../pc:peerconnection_wrapper",
132      "../../rtc_base",
133      "../../rtc_base:gunit_helpers",
134      "../../rtc_base:logging",
135      "../../rtc_base:rtc_event",
136      "../../rtc_base:task_queue_for_test",
137    ]
138  }
139}
140
141rtc_library("cross_traffic_unittest") {
142  testonly = true
143  sources = [ "cross_traffic_unittest.cc" ]
144  deps = [
145    ":emulated_network",
146    "../:test_support",
147    "../../api:network_emulation_manager_api",
148    "../../api:simulated_network_api",
149    "../../call:simulated_network",
150    "../../rtc_base",
151    "../../rtc_base:logging",
152    "../../rtc_base:network_constants",
153    "../../rtc_base:rtc_event",
154    "../time_controller",
155  ]
156  absl_deps = [
157    "//third_party/abseil-cpp/absl/memory",
158    "//third_party/abseil-cpp/absl/types:optional",
159  ]
160}
161
162if (rtc_include_tests) {
163  rtc_library("feedback_generator") {
164    testonly = true
165    sources = [
166      "feedback_generator.cc",
167      "feedback_generator.h",
168    ]
169    deps = [
170      ":emulated_network",
171      "../../api/transport:network_control",
172      "../../api/transport:test_feedback_generator_interface",
173      "../../call:simulated_network",
174      "../../rtc_base:checks",
175      "../time_controller",
176    ]
177    absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
178  }
179
180  rtc_library("feedback_generator_unittest") {
181    testonly = true
182    sources = [ "feedback_generator_unittest.cc" ]
183    deps = [
184      "../:test_support",
185      "../../api/transport:test_feedback_generator",
186    ]
187  }
188
189  if (!build_with_chromium) {
190    rtc_library("network_emulation_unittests") {
191      testonly = true
192      deps = [
193        ":cross_traffic_unittest",
194        ":feedback_generator_unittest",
195        ":network_emulation_pc_unittest",
196        ":network_emulation_unittest",
197      ]
198    }
199  }
200}
201