Since this is a test for a fake network, it's only natural that it uses a fake clock as well. This makes the tests much faster, less flaky, and lets them be moved out of "webrtc_nonparallel_tests", since they no longer have a dependency on any "real" thing (sockets, or time) and can be run in parallel as easily as any other tests. As part of this CL, added the fake clock as an argument to VirtualSocketServer's and TestClient's constructors, since these classes have methods that wait synchronously for something to occur, and if the test is using a fake clock, they need to advance it in order to make progress. Lastly, added a DCHECK in Thread::ProcessMessages. If called with a nonzero time while a fake clock is used, it will get stuck in an infinite loop; a DCHECK is easier to notice than an infinite loop. BUG=webrtc:7727, webrtc:2409 Review-Url: https://codereview.webrtc.org/2927413002 Cr-Commit-Position: refs/heads/master@{#18544}
1033 lines
26 KiB
Plaintext
1033 lines
26 KiB
Plaintext
# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
import("//build/config/crypto.gni")
|
|
import("//build/config/ui.gni")
|
|
import("../webrtc.gni")
|
|
|
|
if (is_android) {
|
|
import("//build/config/android/config.gni")
|
|
import("//build/config/android/rules.gni")
|
|
}
|
|
if (is_win) {
|
|
import("//build/config/clang/clang.gni")
|
|
}
|
|
|
|
group("base") {
|
|
public_deps = [
|
|
":rtc_base",
|
|
":rtc_base_approved",
|
|
":rtc_task_queue",
|
|
":sequenced_task_checker",
|
|
":weak_ptr",
|
|
]
|
|
if (is_android) {
|
|
public_deps += [ ":base_java" ]
|
|
}
|
|
}
|
|
|
|
config("rtc_base_approved_all_dependent_config") {
|
|
if (is_mac && !build_with_chromium) {
|
|
libs = [ "Foundation.framework" ] # needed for logging_mac.mm
|
|
}
|
|
}
|
|
|
|
config("rtc_base_chromium_config") {
|
|
defines = [ "NO_MAIN_THREAD_WRAPPING" ]
|
|
}
|
|
|
|
config("rtc_base_all_dependent_config") {
|
|
if (is_ios) {
|
|
libs = [
|
|
"CFNetwork.framework",
|
|
"Security.framework",
|
|
"SystemConfiguration.framework",
|
|
"UIKit.framework",
|
|
]
|
|
}
|
|
if (is_mac) {
|
|
libs = [
|
|
"Cocoa.framework",
|
|
"Foundation.framework",
|
|
"IOKit.framework",
|
|
"Security.framework",
|
|
"SystemConfiguration.framework",
|
|
]
|
|
}
|
|
}
|
|
|
|
if (!rtc_build_ssl) {
|
|
config("external_ssl_library") {
|
|
assert(rtc_ssl_root != "",
|
|
"You must specify rtc_ssl_root when rtc_build_ssl==0.")
|
|
include_dirs = [ rtc_ssl_root ]
|
|
}
|
|
}
|
|
|
|
source_set("protobuf_utils") {
|
|
sources = [
|
|
"protobuf_utils.h",
|
|
]
|
|
if (rtc_enable_protobuf) {
|
|
public_deps = [
|
|
"//third_party/protobuf:protobuf_lite",
|
|
]
|
|
}
|
|
}
|
|
|
|
source_set("compile_assert_c") {
|
|
sources = [
|
|
"compile_assert_c.h",
|
|
]
|
|
}
|
|
|
|
# The subset of rtc_base approved for use outside of libjingle.
|
|
rtc_static_library("rtc_base_approved") {
|
|
# TODO(kjellander): Remove (bugs.webrtc.org/7480)
|
|
# Enabling GN check triggers a cyclic dependency caused by rate_limiter.cc:
|
|
# :rtc_base_approved -> //webrtc/system_wrappers -> :rtc_base_approved
|
|
check_includes = false
|
|
defines = []
|
|
libs = []
|
|
deps = []
|
|
all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
|
|
|
|
sources = [
|
|
"array_view.h",
|
|
"arraysize.h",
|
|
"atomicops.h",
|
|
"base64.cc",
|
|
"base64.h",
|
|
"basictypes.h",
|
|
"bind.h",
|
|
"bitbuffer.cc",
|
|
"bitbuffer.h",
|
|
"buffer.h",
|
|
"bufferqueue.cc",
|
|
"bufferqueue.h",
|
|
"bytebuffer.cc",
|
|
"bytebuffer.h",
|
|
"byteorder.h",
|
|
"checks.cc",
|
|
"checks.h",
|
|
"constructormagic.h",
|
|
"copyonwritebuffer.cc",
|
|
"copyonwritebuffer.h",
|
|
"criticalsection.cc",
|
|
"criticalsection.h",
|
|
"deprecation.h",
|
|
"event.cc",
|
|
"event.h",
|
|
"event_tracer.cc",
|
|
"event_tracer.h",
|
|
"file.cc",
|
|
"file.h",
|
|
"flags.cc",
|
|
"flags.h",
|
|
"format_macros.h",
|
|
"function_view.h",
|
|
"ignore_wundef.h",
|
|
"location.cc",
|
|
"location.h",
|
|
"mod_ops.h",
|
|
"onetimeevent.h",
|
|
"optional.cc",
|
|
"optional.h",
|
|
"pathutils.cc",
|
|
"pathutils.h",
|
|
"platform_file.cc",
|
|
"platform_file.h",
|
|
"platform_thread.cc",
|
|
"platform_thread.h",
|
|
"platform_thread_types.h",
|
|
"ptr_util.h",
|
|
"race_checker.cc",
|
|
"race_checker.h",
|
|
"random.cc",
|
|
"random.h",
|
|
"rate_limiter.cc",
|
|
"rate_limiter.h",
|
|
"rate_statistics.cc",
|
|
"rate_statistics.h",
|
|
"ratetracker.cc",
|
|
"ratetracker.h",
|
|
"refcount.h",
|
|
"refcountedobject.h",
|
|
"safe_compare.h",
|
|
"safe_conversions.h",
|
|
"safe_conversions_impl.h",
|
|
"safe_minmax.h",
|
|
"sanitizer.h",
|
|
"scoped_ref_ptr.h",
|
|
"string_to_number.cc",
|
|
"string_to_number.h",
|
|
"stringencode.cc",
|
|
"stringencode.h",
|
|
"stringize_macros.h",
|
|
"stringutils.cc",
|
|
"stringutils.h",
|
|
"swap_queue.h",
|
|
"template_util.h",
|
|
"thread_annotations.h",
|
|
"thread_checker.h",
|
|
"thread_checker_impl.cc",
|
|
"thread_checker_impl.h",
|
|
"timestampaligner.cc",
|
|
"timestampaligner.h",
|
|
"timeutils.cc",
|
|
"timeutils.h",
|
|
"trace_event.h",
|
|
"type_traits.h",
|
|
]
|
|
|
|
if (is_android) {
|
|
libs += [ "log" ]
|
|
}
|
|
|
|
if (is_posix) {
|
|
sources += [ "file_posix.cc" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
sources += [ "file_win.cc" ]
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
# Dependency on chromium's logging (in //base).
|
|
deps += [ "//base:base" ]
|
|
sources += [
|
|
"../../webrtc_overrides/webrtc/base/logging.cc",
|
|
"../../webrtc_overrides/webrtc/base/logging.h",
|
|
]
|
|
} else {
|
|
sources += [
|
|
"logging.cc",
|
|
"logging.h",
|
|
"logging_mac.mm",
|
|
]
|
|
}
|
|
if (is_component_build && is_win) {
|
|
# Copy the VS runtime DLLs into the isolate so that they don't have to be
|
|
# preinstalled on the target machine. The debug runtimes have a "d" at
|
|
# the end.
|
|
# This is a copy of https://codereview.chromium.org/1783973002.
|
|
# TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
|
|
# so we don't have to copy their changes and risk breakages.
|
|
# See http://crbug.com/653569
|
|
if (is_debug) {
|
|
vcrt_suffix = "d"
|
|
} else {
|
|
vcrt_suffix = ""
|
|
}
|
|
|
|
# These runtime files are copied to the output directory by the
|
|
# vs_toolchain script that runs as part of toolchain configuration.
|
|
data = [
|
|
"$root_out_dir/msvcp140${vcrt_suffix}.dll",
|
|
"$root_out_dir/vccorlib140${vcrt_suffix}.dll",
|
|
"$root_out_dir/vcruntime140${vcrt_suffix}.dll",
|
|
|
|
# Universal Windows 10 CRT files
|
|
"$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
|
|
"$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
|
|
"$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
|
|
"$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
|
|
"$root_out_dir/ucrtbase${vcrt_suffix}.dll",
|
|
]
|
|
if (is_asan) {
|
|
if (current_cpu == "x64") {
|
|
data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
|
|
} else {
|
|
data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
|
|
}
|
|
}
|
|
}
|
|
if (is_nacl) {
|
|
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
|
|
}
|
|
}
|
|
|
|
config("enable_libevent_config") {
|
|
defines = [ "WEBRTC_BUILD_LIBEVENT" ]
|
|
}
|
|
|
|
rtc_static_library("rtc_task_queue") {
|
|
public_deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
|
|
if (build_with_chromium) {
|
|
sources = [
|
|
"../../webrtc_overrides/webrtc/base/task_queue.cc",
|
|
"../../webrtc_overrides/webrtc/base/task_queue.h",
|
|
]
|
|
} else {
|
|
sources = [
|
|
"task_queue.h",
|
|
"task_queue_posix.h",
|
|
]
|
|
if (rtc_build_libevent) {
|
|
deps = [
|
|
"//base/third_party/libevent",
|
|
]
|
|
}
|
|
|
|
if (rtc_enable_libevent) {
|
|
sources += [
|
|
"task_queue_libevent.cc",
|
|
"task_queue_posix.cc",
|
|
]
|
|
all_dependent_configs = [ ":enable_libevent_config" ]
|
|
} else {
|
|
if (is_mac || is_ios) {
|
|
sources += [
|
|
"task_queue_gcd.cc",
|
|
"task_queue_posix.cc",
|
|
]
|
|
}
|
|
if (is_win) {
|
|
sources += [ "task_queue_win.cc" ]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
rtc_static_library("sequenced_task_checker") {
|
|
sources = [
|
|
"sequenced_task_checker.h",
|
|
"sequenced_task_checker_impl.cc",
|
|
"sequenced_task_checker_impl.h",
|
|
]
|
|
deps = [
|
|
":rtc_task_queue",
|
|
]
|
|
}
|
|
|
|
rtc_static_library("weak_ptr") {
|
|
sources = [
|
|
"weak_ptr.cc",
|
|
"weak_ptr.h",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
":sequenced_task_checker",
|
|
]
|
|
}
|
|
|
|
rtc_static_library("rtc_numerics") {
|
|
sources = [
|
|
"numerics/exp_filter.cc",
|
|
"numerics/exp_filter.h",
|
|
"numerics/percentile_filter.h",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
}
|
|
|
|
config("rtc_base_warnings_config") {
|
|
if (is_win && is_clang) {
|
|
cflags = [
|
|
# Disable warnings failing when compiling with Clang on Windows.
|
|
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
|
|
"-Wno-sign-compare",
|
|
"-Wno-missing-braces",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_json") {
|
|
defines = []
|
|
sources = [
|
|
"json.cc",
|
|
"json.h",
|
|
]
|
|
if (rtc_build_json) {
|
|
public_deps = [
|
|
"//third_party/jsoncpp",
|
|
]
|
|
} else {
|
|
include_dirs = [ "$rtc_jsoncpp_root" ]
|
|
|
|
# When defined changes the include path for json.h to where it is
|
|
# expected to be when building json outside of the standalone build.
|
|
defines += [ "WEBRTC_EXTERNAL_JSON" ]
|
|
}
|
|
}
|
|
|
|
rtc_static_library("rtc_base") {
|
|
cflags = []
|
|
cflags_cc = []
|
|
libs = []
|
|
defines = []
|
|
deps = [
|
|
"..:webrtc_common",
|
|
]
|
|
public_deps = [
|
|
":rtc_base_approved",
|
|
]
|
|
public_configs = []
|
|
|
|
all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
|
|
|
|
sources = [
|
|
"applefilesystem.mm",
|
|
"asyncinvoker-inl.h",
|
|
"asyncinvoker.cc",
|
|
"asyncinvoker.h",
|
|
"asyncpacketsocket.cc",
|
|
"asyncpacketsocket.h",
|
|
"asyncresolverinterface.cc",
|
|
"asyncresolverinterface.h",
|
|
"asyncsocket.cc",
|
|
"asyncsocket.h",
|
|
"asynctcpsocket.cc",
|
|
"asynctcpsocket.h",
|
|
"asyncudpsocket.cc",
|
|
"asyncudpsocket.h",
|
|
"crc32.cc",
|
|
"crc32.h",
|
|
"cryptstring.cc",
|
|
"cryptstring.h",
|
|
"filerotatingstream.cc",
|
|
"filerotatingstream.h",
|
|
"fileutils.cc",
|
|
"fileutils.h",
|
|
"gunit_prod.h",
|
|
"helpers.cc",
|
|
"helpers.h",
|
|
"httpbase.cc",
|
|
"httpbase.h",
|
|
"httpcommon-inl.h",
|
|
"httpcommon.cc",
|
|
"httpcommon.h",
|
|
"ipaddress.cc",
|
|
"ipaddress.h",
|
|
"messagedigest.cc",
|
|
"messagedigest.h",
|
|
"messagehandler.cc",
|
|
"messagehandler.h",
|
|
"messagequeue.cc",
|
|
"messagequeue.h",
|
|
"nethelpers.cc",
|
|
"nethelpers.h",
|
|
"network.cc",
|
|
"network.h",
|
|
"networkmonitor.cc",
|
|
"networkmonitor.h",
|
|
"nullsocketserver.cc",
|
|
"nullsocketserver.h",
|
|
"openssl.h",
|
|
"openssladapter.cc",
|
|
"openssladapter.h",
|
|
"openssldigest.cc",
|
|
"openssldigest.h",
|
|
"opensslidentity.cc",
|
|
"opensslidentity.h",
|
|
"opensslstreamadapter.cc",
|
|
"opensslstreamadapter.h",
|
|
"physicalsocketserver.cc",
|
|
"physicalsocketserver.h",
|
|
"proxyinfo.cc",
|
|
"proxyinfo.h",
|
|
"ratelimiter.cc",
|
|
"ratelimiter.h",
|
|
"rtccertificate.cc",
|
|
"rtccertificate.h",
|
|
"rtccertificategenerator.cc",
|
|
"rtccertificategenerator.h",
|
|
"signalthread.cc",
|
|
"signalthread.h",
|
|
"sigslot.cc",
|
|
"sigslot.h",
|
|
"sigslotrepeater.h",
|
|
"socket.h",
|
|
"socketadapters.cc",
|
|
"socketadapters.h",
|
|
"socketaddress.cc",
|
|
"socketaddress.h",
|
|
"socketaddresspair.cc",
|
|
"socketaddresspair.h",
|
|
"socketfactory.h",
|
|
"socketserver.h",
|
|
"socketstream.cc",
|
|
"socketstream.h",
|
|
"ssladapter.cc",
|
|
"ssladapter.h",
|
|
"sslfingerprint.cc",
|
|
"sslfingerprint.h",
|
|
"sslidentity.cc",
|
|
"sslidentity.h",
|
|
"sslstreamadapter.cc",
|
|
"sslstreamadapter.h",
|
|
"stream.cc",
|
|
"stream.h",
|
|
"thread.cc",
|
|
"thread.h",
|
|
]
|
|
|
|
# TODO(henrike): issue 3307, make rtc_base build with the Chromium default
|
|
# compiler settings.
|
|
suppressed_configs += [ "//build/config/compiler:chromium_code" ]
|
|
configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
if (!is_win) {
|
|
cflags += [ "-Wno-uninitialized" ]
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
if (is_win) {
|
|
sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
|
|
}
|
|
include_dirs = [ "../../boringssl/src/include" ]
|
|
public_configs += [ ":rtc_base_chromium_config" ]
|
|
} else {
|
|
configs += [ ":rtc_base_warnings_config" ]
|
|
sources += [
|
|
"callback.h",
|
|
"logsinks.cc",
|
|
"logsinks.h",
|
|
"mathutils.h",
|
|
"optionsfile.cc",
|
|
"optionsfile.h",
|
|
"rollingaccumulator.h",
|
|
"sslroots.h",
|
|
"transformadapter.cc",
|
|
"transformadapter.h",
|
|
"window.h",
|
|
]
|
|
|
|
if (is_win) {
|
|
sources += [
|
|
"win32socketinit.cc",
|
|
"win32socketinit.h",
|
|
"win32socketserver.cc",
|
|
"win32socketserver.h",
|
|
]
|
|
}
|
|
} # !build_with_chromium
|
|
|
|
if (rtc_build_ssl) {
|
|
deps += [ "//third_party/boringssl" ]
|
|
} else {
|
|
configs += [ ":external_ssl_library" ]
|
|
}
|
|
|
|
if (is_android) {
|
|
sources += [
|
|
"ifaddrs-android.cc",
|
|
"ifaddrs-android.h",
|
|
]
|
|
|
|
libs += [
|
|
"log",
|
|
"GLESv2",
|
|
]
|
|
}
|
|
|
|
if (is_ios || is_mac) {
|
|
sources += [
|
|
"macifaddrs_converter.cc",
|
|
"thread_darwin.mm",
|
|
]
|
|
}
|
|
|
|
if (use_x11) {
|
|
libs += [
|
|
"dl",
|
|
"rt",
|
|
"Xext",
|
|
"X11",
|
|
"Xcomposite",
|
|
"Xrender",
|
|
]
|
|
}
|
|
|
|
if (is_linux) {
|
|
libs += [
|
|
"dl",
|
|
"rt",
|
|
]
|
|
}
|
|
|
|
if (is_mac) {
|
|
sources += [
|
|
"macutils.cc",
|
|
"macutils.h",
|
|
]
|
|
libs += [
|
|
# For ProcessInformationCopyDictionary in unixfilesystem.cc.
|
|
"ApplicationServices.framework",
|
|
]
|
|
}
|
|
|
|
if (is_win) {
|
|
sources += [
|
|
"win32.cc",
|
|
"win32.h",
|
|
"win32filesystem.cc",
|
|
"win32filesystem.h",
|
|
"win32securityerrors.cc",
|
|
"win32window.cc",
|
|
"win32window.h",
|
|
]
|
|
|
|
libs += [
|
|
"crypt32.lib",
|
|
"iphlpapi.lib",
|
|
"secur32.lib",
|
|
]
|
|
|
|
cflags += [
|
|
# Suppress warnings about WIN32_LEAN_AND_MEAN.
|
|
"/wd4005",
|
|
"/wd4703",
|
|
]
|
|
|
|
defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
|
|
}
|
|
|
|
if (is_posix) {
|
|
sources += [
|
|
"ifaddrs_converter.cc",
|
|
"ifaddrs_converter.h",
|
|
"unixfilesystem.cc",
|
|
"unixfilesystem.h",
|
|
]
|
|
}
|
|
|
|
if (is_nacl) {
|
|
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
|
|
defines += [ "timezone=_timezone" ]
|
|
sources -= [ "ifaddrs_converter.cc" ]
|
|
}
|
|
if (is_win && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("gtest_prod") {
|
|
sources = [
|
|
"gtest_prod_util.h",
|
|
]
|
|
}
|
|
|
|
config("rtc_base_tests_utils_exported_config") {
|
|
defines = [ "GTEST_RELATIVE_PATH" ]
|
|
}
|
|
|
|
config("rtc_base_tests_utils_warnings_config") {
|
|
if (is_win && is_clang) {
|
|
cflags = [
|
|
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
|
|
"-Wno-reorder",
|
|
"-Wno-sign-compare",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_tests_utils") {
|
|
testonly = true
|
|
sources = [
|
|
# Also use this as a convenient dumping ground for misc files that are
|
|
# included by multiple targets below.
|
|
"cpu_time.cc",
|
|
"cpu_time.h",
|
|
"fakeclock.cc",
|
|
"fakeclock.h",
|
|
"fakenetwork.h",
|
|
"fakesslidentity.h",
|
|
"firewallsocketserver.cc",
|
|
"firewallsocketserver.h",
|
|
"gunit.h",
|
|
"httpserver.cc",
|
|
"httpserver.h",
|
|
"md5.cc",
|
|
"md5.h",
|
|
"md5digest.cc",
|
|
"md5digest.h",
|
|
"memory_usage.cc",
|
|
"memory_usage.h",
|
|
"natserver.cc",
|
|
"natserver.h",
|
|
"natsocketfactory.cc",
|
|
"natsocketfactory.h",
|
|
"nattypes.cc",
|
|
"nattypes.h",
|
|
"proxyserver.cc",
|
|
"proxyserver.h",
|
|
"sha1.cc",
|
|
"sha1.h",
|
|
"sha1digest.cc",
|
|
"sha1digest.h",
|
|
"sigslottester.h",
|
|
"sigslottester.h.pump",
|
|
"testbase64.h",
|
|
"testclient.cc",
|
|
"testclient.h",
|
|
"testechoserver.h",
|
|
"testutils.h",
|
|
"timedelta.h",
|
|
"virtualsocketserver.cc",
|
|
"virtualsocketserver.h",
|
|
]
|
|
configs += [ ":rtc_base_tests_utils_warnings_config" ]
|
|
public_configs = [ ":rtc_base_tests_utils_exported_config" ]
|
|
deps = [
|
|
":rtc_base",
|
|
"../test:field_trial",
|
|
"../test:test_support",
|
|
]
|
|
public_deps = [
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
if (rtc_include_tests) {
|
|
rtc_source_set("rtc_base_tests_main") {
|
|
testonly = true
|
|
sources = [
|
|
"unittest_main.cc",
|
|
]
|
|
public_configs = [ ":rtc_base_tests_utils_exported_config" ]
|
|
deps = [
|
|
":rtc_base",
|
|
":rtc_base_approved",
|
|
":rtc_base_tests_utils",
|
|
"../test:field_trial",
|
|
"../test:test_support",
|
|
]
|
|
|
|
public_deps = [
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_nonparallel_tests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:webrtc_nonparallel_tests" ]
|
|
}
|
|
sources = [
|
|
"cpu_time_unittest.cc",
|
|
"filerotatingstream_unittest.cc",
|
|
"nullsocketserver_unittest.cc",
|
|
"physicalsocketserver_unittest.cc",
|
|
"socket_unittest.cc",
|
|
"socket_unittest.h",
|
|
"socketaddress_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base",
|
|
":rtc_base_tests_main",
|
|
":rtc_base_tests_utils",
|
|
"../system_wrappers:system_wrappers",
|
|
"../test:test_support",
|
|
"//testing/gtest",
|
|
]
|
|
if (is_win) {
|
|
sources += [ "win32socketserver_unittest.cc" ]
|
|
}
|
|
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_base_approved_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"array_view_unittest.cc",
|
|
"atomicops_unittest.cc",
|
|
"base64_unittest.cc",
|
|
"basictypes_unittest.cc",
|
|
"bind_unittest.cc",
|
|
"bitbuffer_unittest.cc",
|
|
"buffer_unittest.cc",
|
|
"bufferqueue_unittest.cc",
|
|
"bytebuffer_unittest.cc",
|
|
"byteorder_unittest.cc",
|
|
"copyonwritebuffer_unittest.cc",
|
|
"criticalsection_unittest.cc",
|
|
"event_tracer_unittest.cc",
|
|
"event_unittest.cc",
|
|
"file_unittest.cc",
|
|
"function_view_unittest.cc",
|
|
"logging_unittest.cc",
|
|
"md5digest_unittest.cc",
|
|
"mod_ops_unittest.cc",
|
|
"onetimeevent_unittest.cc",
|
|
"optional_unittest.cc",
|
|
"pathutils_unittest.cc",
|
|
"platform_thread_unittest.cc",
|
|
"random_unittest.cc",
|
|
"rate_limiter_unittest.cc",
|
|
"rate_statistics_unittest.cc",
|
|
"ratetracker_unittest.cc",
|
|
"refcountedobject_unittest.cc",
|
|
"safe_compare_unittest.cc",
|
|
"safe_minmax_unittest.cc",
|
|
"string_to_number_unittest.cc",
|
|
"stringencode_unittest.cc",
|
|
"stringize_macros_unittest.cc",
|
|
"stringutils_unittest.cc",
|
|
"swap_queue_unittest.cc",
|
|
"thread_annotations_unittest.cc",
|
|
"thread_checker_unittest.cc",
|
|
"timestampaligner_unittest.cc",
|
|
"timeutils_unittest.cc",
|
|
"virtualsocket_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base",
|
|
":rtc_base_approved",
|
|
":rtc_base_tests_main",
|
|
":rtc_base_tests_utils",
|
|
":rtc_task_queue",
|
|
"../system_wrappers:system_wrappers",
|
|
"../test:test_support",
|
|
]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("rtc_task_queue_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"task_queue_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
":rtc_base_tests_utils",
|
|
":rtc_task_queue",
|
|
"../test:test_support",
|
|
]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
|
|
rtc_source_set("sequenced_task_checker_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"sequenced_task_checker_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
":rtc_base_tests_main",
|
|
":rtc_task_queue",
|
|
":sequenced_task_checker",
|
|
"../test:test_support",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("weak_ptr_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"weak_ptr_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
":rtc_base_tests_utils",
|
|
":rtc_task_queue",
|
|
":weak_ptr",
|
|
"../test:test_support",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("rtc_numerics_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"numerics/exp_filter_unittest.cc",
|
|
"numerics/percentile_filter_unittest.cc",
|
|
]
|
|
deps = [
|
|
":rtc_base_approved",
|
|
":rtc_base_tests_main",
|
|
":rtc_numerics",
|
|
"../test:test_support",
|
|
]
|
|
}
|
|
|
|
config("rtc_base_unittests_config") {
|
|
if (is_clang) {
|
|
cflags = [ "-Wno-unused-const-variable" ]
|
|
}
|
|
}
|
|
rtc_source_set("rtc_base_unittests") {
|
|
testonly = true
|
|
|
|
# Skip restricting visibility on mobile platforms since the tests on those
|
|
# gets additional generated targets which would require many lines here to
|
|
# cover (which would be confusing to read and hard to maintain).
|
|
if (!is_android && !is_ios) {
|
|
visibility = [ "//webrtc:rtc_unittests" ]
|
|
}
|
|
sources = [
|
|
"callback_unittest.cc",
|
|
"crc32_unittest.cc",
|
|
"fileutils_unittest.cc",
|
|
"helpers_unittest.cc",
|
|
"httpbase_unittest.cc",
|
|
"httpcommon_unittest.cc",
|
|
"httpserver_unittest.cc",
|
|
"ipaddress_unittest.cc",
|
|
"memory_usage_unittest.cc",
|
|
"messagedigest_unittest.cc",
|
|
"messagequeue_unittest.cc",
|
|
"nat_unittest.cc",
|
|
"network_unittest.cc",
|
|
"optionsfile_unittest.cc",
|
|
"proxy_unittest.cc",
|
|
"ptr_util_unittest.cc",
|
|
"ratelimiter_unittest.cc",
|
|
"rollingaccumulator_unittest.cc",
|
|
"rtccertificate_unittest.cc",
|
|
"rtccertificategenerator_unittest.cc",
|
|
"sha1digest_unittest.cc",
|
|
"signalthread_unittest.cc",
|
|
"sigslot_unittest.cc",
|
|
"sigslottester_unittest.cc",
|
|
"stream_unittest.cc",
|
|
"testclient_unittest.cc",
|
|
"thread_unittest.cc",
|
|
]
|
|
if (is_win) {
|
|
sources += [
|
|
"win32_unittest.cc",
|
|
"win32window_unittest.cc",
|
|
]
|
|
}
|
|
if (is_mac) {
|
|
sources += [ "macutils_unittest.cc" ]
|
|
}
|
|
if (is_posix) {
|
|
sources += [
|
|
"ssladapter_unittest.cc",
|
|
"sslidentity_unittest.cc",
|
|
"sslstreamadapter_unittest.cc",
|
|
]
|
|
}
|
|
deps = [
|
|
":rtc_base_tests_main",
|
|
":rtc_base_tests_utils",
|
|
"../test:test_support",
|
|
]
|
|
public_deps = [
|
|
":rtc_base",
|
|
]
|
|
configs += [ ":rtc_base_unittests_config" ]
|
|
if (!build_with_chromium && is_clang) {
|
|
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
|
|
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
if (is_android) {
|
|
android_library("base_java") {
|
|
java_files = [
|
|
"java/src/org/webrtc/ContextUtils.java",
|
|
"java/src/org/webrtc/Logging.java",
|
|
"java/src/org/webrtc/Size.java",
|
|
"java/src/org/webrtc/ThreadUtils.java",
|
|
]
|
|
}
|
|
}
|