# 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', ], }, ], }], ], }