blob: 8e65412cde921beeac62adf2f6ecc7b7304c4c37 [file] [log] [blame]
# Copyright (c) 2013 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.
{
'targets': [
{
'target_name': 'rtc_unittests',
'type': '<(gtest_target_type)',
'dependencies': [
'base/base.gyp:rtc_base',
'base/base.gyp:rtc_task_queue',
'base/base_tests.gyp:rtc_base_tests_utils',
'p2p/p2p.gyp:rtc_p2p',
'p2p/p2p.gyp:libstunprober',
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/testing/gmock.gyp:gmock',
],
'sources': [
'base/array_view_unittest.cc',
'base/atomicops_unittest.cc',
'base/autodetectproxy_unittest.cc',
'base/bandwidthsmoother_unittest.cc',
'base/base64_unittest.cc',
'base/basictypes_unittest.cc',
'base/bind_unittest.cc',
'base/bitbuffer_unittest.cc',
'base/buffer_unittest.cc',
'base/bufferqueue_unittest.cc',
'base/bytebuffer_unittest.cc',
'base/byteorder_unittest.cc',
'base/callback_unittest.cc',
'base/copyonwritebuffer_unittest.cc',
'base/crc32_unittest.cc',
'base/criticalsection_unittest.cc',
'base/event_tracer_unittest.cc',
'base/event_unittest.cc',
'base/exp_filter_unittest.cc',
'base/filerotatingstream_unittest.cc',
'base/fileutils_unittest.cc',
'base/helpers_unittest.cc',
'base/httpbase_unittest.cc',
'base/httpcommon_unittest.cc',
'base/httpserver_unittest.cc',
'base/ipaddress_unittest.cc',
'base/logging_unittest.cc',
'base/md5digest_unittest.cc',
'base/messagedigest_unittest.cc',
'base/messagequeue_unittest.cc',
'base/mod_ops_unittest.cc',
'base/multipart_unittest.cc',
'base/nat_unittest.cc',
'base/network_unittest.cc',
'base/onetimeevent_unittest.cc',
'base/optional_unittest.cc',
'base/optionsfile_unittest.cc',
'base/pathutils_unittest.cc',
'base/platform_thread_unittest.cc',
'base/profiler_unittest.cc',
'base/proxy_unittest.cc',
'base/proxydetect_unittest.cc',
'base/random_unittest.cc',
'base/rate_statistics_unittest.cc',
'base/ratelimiter_unittest.cc',
'base/ratetracker_unittest.cc',
'base/referencecountedsingletonfactory_unittest.cc',
'base/rollingaccumulator_unittest.cc',
'base/rtccertificate_unittest.cc',
'base/rtccertificategenerator_unittest.cc',
'base/scopedptrcollection_unittest.cc',
'base/sha1digest_unittest.cc',
'base/sharedexclusivelock_unittest.cc',
'base/signalthread_unittest.cc',
'base/sigslot_unittest.cc',
'base/sigslottester.h',
'base/sigslottester.h.pump',
'base/stream_unittest.cc',
'base/stringencode_unittest.cc',
'base/stringutils_unittest.cc',
'base/swap_queue_unittest.cc',
# TODO(ronghuawu): Reenable this test.
# 'systeminfo_unittest.cc',
'base/task_queue_unittest.cc',
'base/task_unittest.cc',
'base/testclient_unittest.cc',
'base/thread_checker_unittest.cc',
'base/thread_unittest.cc',
'base/timeutils_unittest.cc',
'base/urlencode_unittest.cc',
'base/versionparsing_unittest.cc',
# TODO(ronghuawu): Reenable this test.
# 'windowpicker_unittest.cc',
'p2p/base/dtlstransportchannel_unittest.cc',
'p2p/base/fakeportallocator.h',
'p2p/base/faketransportcontroller.h',
'p2p/base/p2ptransportchannel_unittest.cc',
'p2p/base/port_unittest.cc',
'p2p/base/portallocator_unittest.cc',
'p2p/base/pseudotcp_unittest.cc',
'p2p/base/relayport_unittest.cc',
'p2p/base/relayserver_unittest.cc',
'p2p/base/stun_unittest.cc',
'p2p/base/stunport_unittest.cc',
'p2p/base/stunrequest_unittest.cc',
'p2p/base/stunserver_unittest.cc',
'p2p/base/testrelayserver.h',
'p2p/base/teststunserver.h',
'p2p/base/testturnserver.h',
'p2p/base/transport_unittest.cc',
'p2p/base/transportcontroller_unittest.cc',
'p2p/base/transportdescriptionfactory_unittest.cc',
'p2p/base/tcpport_unittest.cc',
'p2p/base/turnport_unittest.cc',
'p2p/client/basicportallocator_unittest.cc',
'p2p/stunprober/stunprober_unittest.cc',
],
'conditions': [
['OS=="linux"', {
'sources': [
'base/latebindingsymboltable_unittest.cc',
# TODO(ronghuawu): Reenable this test.
# 'linux_unittest.cc',
'base/linuxfdwalk_unittest.cc',
],
}],
['OS=="win"', {
'sources': [
'base/win32_unittest.cc',
'base/win32regkey_unittest.cc',
'base/win32window_unittest.cc',
'base/win32windowpicker_unittest.cc',
'base/winfirewall_unittest.cc',
],
}],
['OS=="win" and clang==1', {
'msvs_settings': {
'VCCLCompilerTool': {
'AdditionalOptions': [
# Disable warnings failing when compiling with Clang on Windows.
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
'-Wno-missing-braces',
'-Wno-sign-compare',
'-Wno-unused-const-variable',
],
},
},
}],
['OS=="mac"', {
'sources': [
'base/macutils_unittest.cc',
],
}],
['os_posix==1', {
'sources': [
'base/ssladapter_unittest.cc',
'base/sslidentity_unittest.cc',
'base/sslstreamadapter_unittest.cc',
],
}],
['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
'defines': [
'CARBON_DEPRECATED=YES',
],
}],
['use_quic==1', {
'sources': [
'p2p/quic/quicconnectionhelper_unittest.cc',
'p2p/quic/quicsession_unittest.cc',
'p2p/quic/quictransport_unittest.cc',
'p2p/quic/quictransportchannel_unittest.cc',
'p2p/quic/reliablequicstream_unittest.cc',
],
}],
['OS=="android"', {
'dependencies': [
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
],
}],
['OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7")', {
'includes': [
'build/objc_common.gypi',
],
'dependencies': [
'sdk/sdk.gyp:rtc_sdk_peerconnection_objc',
'system_wrappers/system_wrappers.gyp:metrics_default',
],
'sources': [
'sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm',
'sdk/objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm',
'sdk/objc/Framework/UnitTests/RTCIceCandidateTest.mm',
'sdk/objc/Framework/UnitTests/RTCIceServerTest.mm',
'sdk/objc/Framework/UnitTests/RTCMediaConstraintsTest.mm',
'sdk/objc/Framework/UnitTests/RTCSessionDescriptionTest.mm',
],
'xcode_settings': {
# |-ObjC| flag needed to make sure category method implementations
# are included:
# https://developer.apple.com/library/mac/qa/qa1490/_index.html
'OTHER_LDFLAGS': ['-ObjC'],
},
}],
],
},
{
'target_name': 'xmllite_xmpp_unittests',
'type': '<(gtest_target_type)',
'dependencies': [
'base/base_tests.gyp:rtc_base_tests_utils', # needed for main()
'libjingle/xmllite/xmllite.gyp:rtc_xmllite',
'libjingle/xmpp/xmpp.gyp:rtc_xmpp',
'<(DEPTH)/testing/gtest.gyp:gtest',
],
'sources': [
'libjingle/xmllite/qname_unittest.cc',
'libjingle/xmllite/xmlbuilder_unittest.cc',
'libjingle/xmllite/xmlelement_unittest.cc',
'libjingle/xmllite/xmlnsstack_unittest.cc',
'libjingle/xmllite/xmlparser_unittest.cc',
'libjingle/xmllite/xmlprinter_unittest.cc',
'libjingle/xmpp/fakexmppclient.h',
'libjingle/xmpp/hangoutpubsubclient_unittest.cc',
'libjingle/xmpp/jid_unittest.cc',
'libjingle/xmpp/mucroomconfigtask_unittest.cc',
'libjingle/xmpp/mucroomdiscoverytask_unittest.cc',
'libjingle/xmpp/mucroomlookuptask_unittest.cc',
'libjingle/xmpp/mucroomuniquehangoutidtask_unittest.cc',
'libjingle/xmpp/pingtask_unittest.cc',
'libjingle/xmpp/pubsubclient_unittest.cc',
'libjingle/xmpp/pubsubtasks_unittest.cc',
'libjingle/xmpp/util_unittest.cc',
'libjingle/xmpp/util_unittest.h',
'libjingle/xmpp/xmppengine_unittest.cc',
'libjingle/xmpp/xmpplogintask_unittest.cc',
'libjingle/xmpp/xmppstanzaparser_unittest.cc',
],
},
{
'target_name': 'webrtc_tests',
'type': 'none',
'dependencies': [
'video_engine_tests',
'video_loopback',
'video_replay',
'webrtc_perf_tests',
'webrtc_nonparallel_tests',
],
},
{
'target_name': 'video_quality_test',
'type': 'static_library',
'sources': [
'video/video_quality_test.cc',
'video/video_quality_test.h',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
'<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
'webrtc',
],
'conditions': [
['OS=="android"', {
'dependencies!': [
'<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
],
}],
],
},
{
'target_name': 'video_loopback',
'type': 'executable',
'sources': [
'test/mac/run_test.mm',
'test/run_test.cc',
'test/run_test.h',
'video/video_loopback.cc',
],
'conditions': [
['OS=="mac"', {
'sources!': [
'test/run_test.cc',
],
}],
],
'dependencies': [
'video_quality_test',
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'test/test.gyp:test_common',
'test/test.gyp:test_main',
'test/test.gyp:test_renderer',
'webrtc',
],
},
{
'target_name': 'screenshare_loopback',
'type': 'executable',
'sources': [
'test/mac/run_test.mm',
'test/run_test.cc',
'test/run_test.h',
'video/screenshare_loopback.cc',
],
'conditions': [
['OS=="mac"', {
'sources!': [
'test/run_test.cc',
],
}],
],
'dependencies': [
'video_quality_test',
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'test/test.gyp:test_common',
'test/test.gyp:test_main',
'test/test.gyp:test_renderer',
'webrtc',
],
},
{
'target_name': 'video_replay',
'type': 'executable',
'sources': [
'test/mac/run_test.mm',
'test/run_test.cc',
'test/run_test.h',
'video/replay.cc',
],
'conditions': [
['OS=="mac"', {
'sources!': [
'test/run_test.cc',
],
}],
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'test/test.gyp:test_common',
'test/test.gyp:test_renderer',
'<(webrtc_root)/modules/modules.gyp:video_capture',
'<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers_default',
'webrtc',
],
},
{
# TODO(solenberg): Rename to webrtc_call_tests.
'target_name': 'video_engine_tests',
'type': '<(gtest_target_type)',
'sources': [
'audio/audio_receive_stream_unittest.cc',
'audio/audio_send_stream_unittest.cc',
'audio/audio_state_unittest.cc',
'call/bitrate_allocator_unittest.cc',
'call/bitrate_estimator_tests.cc',
'call/call_unittest.cc',
'call/packet_injection_tests.cc',
'call/ringbuffer_unittest.cc',
'test/common_unittest.cc',
'test/testsupport/metrics/video_metrics_unittest.cc',
'video/call_stats_unittest.cc',
'video/encoder_state_feedback_unittest.cc',
'video/end_to_end_tests.cc',
'video/overuse_frame_detector_unittest.cc',
'video/payload_router_unittest.cc',
'video/report_block_stats_unittest.cc',
'video/send_delay_stats_unittest.cc',
'video/send_statistics_proxy_unittest.cc',
'video/stats_counter_unittest.cc',
'video/stream_synchronization_unittest.cc',
'video/video_capture_input_unittest.cc',
'video/video_decoder_unittest.cc',
'video/video_encoder_unittest.cc',
'video/video_send_stream_tests.cc',
'video/vie_remb_unittest.cc',
],
'dependencies': [
'<(DEPTH)/testing/gmock.gyp:gmock',
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(webrtc_root)/common.gyp:webrtc_common',
'<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
'<(webrtc_root)/modules/modules.gyp:video_capture',
'<(webrtc_root)/test/test.gyp:channel_transport',
'<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
'test/metrics.gyp:metrics',
'test/test.gyp:test_common',
'test/test.gyp:test_main',
'webrtc',
],
'conditions': [
['rtc_use_h264==1', {
'defines': [
'WEBRTC_END_TO_END_H264_TESTS',
],
}],
['OS=="android"', {
'dependencies': [
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
],
}],
['OS=="ios"', {
'mac_bundle_resources': [
'<(DEPTH)/resources/foreman_cif_short.yuv',
'<(DEPTH)/resources/voice_engine/audio_long16.pcm',
],
}],
['enable_protobuf==1', {
'defines': [
'ENABLE_RTC_EVENT_LOG',
],
'dependencies': [
'webrtc.gyp:rtc_event_log',
'webrtc.gyp:rtc_event_log_parser',
'webrtc.gyp:rtc_event_log_proto',
],
'sources': [
'call/rtc_event_log_unittest.cc',
'call/rtc_event_log_unittest_helper.cc'
],
}],
],
},
{
'target_name': 'webrtc_perf_tests',
'type': '<(gtest_target_type)',
'sources': [
'call/call_perf_tests.cc',
'call/rampup_tests.cc',
'call/rampup_tests.h',
'modules/audio_coding/neteq/test/neteq_performance_unittest.cc',
'modules/audio_processing/audio_processing_performance_unittest.cc',
'modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc',
'video/full_stack.cc',
],
'dependencies': [
'<(DEPTH)/testing/gmock.gyp:gmock',
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(webrtc_root)/modules/modules.gyp:audio_processing',
'<(webrtc_root)/modules/modules.gyp:audioproc_test_utils',
'<(webrtc_root)/modules/modules.gyp:video_capture',
'<(webrtc_root)/test/test.gyp:channel_transport',
'<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
'video_quality_test',
'modules/modules.gyp:neteq_test_support',
'modules/modules.gyp:bwe_simulator',
'modules/modules.gyp:rtp_rtcp',
'test/test.gyp:test_common',
'test/test.gyp:test_main',
'test/test.gyp:test_renderer',
'webrtc',
],
'conditions': [
['OS=="android"', {
'dependencies': [
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
],
}],
],
},
{
'target_name': 'webrtc_nonparallel_tests',
'type': '<(gtest_target_type)',
'sources': [
'base/nullsocketserver_unittest.cc',
'base/physicalsocketserver_unittest.cc',
'base/socket_unittest.cc',
'base/socket_unittest.h',
'base/socketaddress_unittest.cc',
'base/virtualsocket_unittest.cc',
],
'defines': [
'GTEST_RELATIVE_PATH',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'base/base.gyp:rtc_base',
'test/test.gyp:test_main',
],
'conditions': [
['OS=="android"', {
'dependencies': [
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
],
}],
['OS=="win"', {
'sources': [
'base/win32socketserver_unittest.cc',
],
'sources!': [
# TODO(ronghuawu): Fix TestUdpReadyToSendIPv6 on windows bot
# then reenable these tests.
# TODO(pbos): Move test disabling to ifdefs within the test files
# instead of here.
'base/physicalsocketserver_unittest.cc',
'base/socket_unittest.cc',
'base/win32socketserver_unittest.cc',
],
}],
['OS=="mac"', {
'sources': [
'base/macsocketserver_unittest.cc',
],
}],
['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
'defines': [
'CARBON_DEPRECATED=YES',
],
}],
],
},
],
'conditions': [
['OS=="android"', {
'targets': [
{
'target_name': 'rtc_unittests_apk_target',
'type': 'none',
'dependencies': [
'<(android_tests_path):rtc_unittests_apk',
],
},
{
'target_name': 'video_engine_tests_apk_target',
'type': 'none',
'dependencies': [
'<(android_tests_path):video_engine_tests_apk',
],
},
{
'target_name': 'webrtc_perf_tests_apk_target',
'type': 'none',
'dependencies': [
'<(android_tests_path):webrtc_perf_tests_apk',
],
},
{
'target_name': 'webrtc_nonparallel_tests_apk_target',
'type': 'none',
'dependencies': [
'<(android_tests_path):webrtc_nonparallel_tests_apk',
],
},
{
'target_name': 'android_junit_tests_target',
'type': 'none',
'dependencies': [
'<(android_tests_path):android_junit_tests',
],
},
],
'conditions': [
['test_isolation_mode != "noop"',
{
'targets': [
{
'target_name': 'rtc_unittests_apk_run',
'type': 'none',
'dependencies': [
'<(android_tests_path):rtc_unittests_apk',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'rtc_unittests_apk.isolate',
],
},
{
'target_name': 'video_engine_tests_apk_run',
'type': 'none',
'dependencies': [
'<(android_tests_path):video_engine_tests_apk',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'video_engine_tests_apk.isolate',
],
},
{
'target_name': 'webrtc_perf_tests_apk_run',
'type': 'none',
'dependencies': [
'<(android_tests_path):webrtc_perf_tests_apk',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'webrtc_perf_tests_apk.isolate',
],
},
{
'target_name': 'webrtc_nonparallel_tests_apk_run',
'type': 'none',
'dependencies': [
'<(android_tests_path):webrtc_nonparallel_tests_apk',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'webrtc_nonparallel_tests_apk.isolate',
],
},
],
},
],
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'rtc_unittests_run',
'type': 'none',
'dependencies': [
'rtc_unittests',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'rtc_unittests.isolate',
],
},
{
'target_name': 'video_engine_tests_run',
'type': 'none',
'dependencies': [
'video_engine_tests',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'video_engine_tests.isolate',
],
},
{
'target_name': 'webrtc_nonparallel_tests_run',
'type': 'none',
'dependencies': [
'webrtc_nonparallel_tests',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'webrtc_nonparallel_tests.isolate',
],
},
{
'target_name': 'webrtc_perf_tests_run',
'type': 'none',
'dependencies': [
'webrtc_perf_tests',
],
'includes': [
'build/isolate.gypi',
],
'sources': [
'webrtc_perf_tests.isolate',
],
},
],
}],
],
}