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