GN: Add SDK tests to rtc_unittests.

In https://codereview.webrtc.org/2034923003 it was discovered
that a test binary rtc_sdk_peerconnection_objc_tests was
a dependency to rtc_unittests. Unfortunately gtest doesn't
include dependent executables into the same test executable;
only libraries (so theses tests weren't run).

This CL incorporates those tests into rtc_unittests and
does the same changes to the GN build.

BUG=webrtc:5949
TESTED=Built and ran rtc_unittests locally on Mac.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2041743003
Cr-Commit-Position: refs/heads/master@{#13060}
This commit is contained in:
kjellander 2016-06-08 01:14:15 -07:00 committed by Commit bot
parent 6b4b5f3770
commit 3bcedd3595
7 changed files with 183 additions and 147 deletions

View File

@ -225,6 +225,13 @@ config("common_config") {
}
}
config("common_objc") {
cflags = [ "-Wobjc-missing-property-synthesis" ]
precompiled_header = "sdk/objc/WebRTC-Prefix.pch"
precompiled_source = "sdk/objc/WebRTC-Prefix.pch"
}
source_set("webrtc") {
sources = [
"call.h",
@ -569,5 +576,28 @@ if (rtc_include_tests) {
if (is_android) {
deps += [ "//testing/android/native_test:native_test_support" ]
}
if (is_ios || (is_mac && mac_deployment_target == "10.7")) {
deps += [
"sdk:rtc_sdk_peerconnection_objc",
"system_wrappers:system_wrappers_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",
]
# TODO(tkchin): Cleanup this warning.
cflags = [ "-Wno-objc-property-no-attribute" ]
# |-ObjC| flag needed to make sure category method implementations
# are included:
# https://developer.apple.com/library/mac/qa/qa1490/_index.html
ldflags = [ "-ObjC" ]
}
}
}

View File

@ -49,7 +49,7 @@ config("rtc_base_all_dependent_config") {
#"Foundation.framework", # Already in //build/config:default_libs.
"Security.framework",
"SystemConfiguration.framework",
"UIKit.framework", # Already in //build/config:default_libs.
"UIKit.framework",
]
}
if (is_mac) {
@ -61,7 +61,7 @@ config("rtc_base_all_dependent_config") {
"SystemConfiguration.framework",
]
if (current_cpu == "x86") {
libs = [ "Carbon.framework" ] # Already in //build/config:default_libs.
libs = [ "Carbon.framework" ]
}
}
}
@ -558,7 +558,13 @@ static_library("rtc_base") {
"macutils.cc",
"macutils.h",
]
libs += [ "CoreServices.framework" ] # For GetGestalt in macutils.cc.
libs += [
# For ProcessInformationCopyDictionary in unixfilesystem.cc.
"ApplicationServices.framework",
# For GetGestalt in macutils.cc.
"CoreServices.framework",
]
}
if (is_win) {

View File

@ -184,12 +184,10 @@ if (is_ios) {
"codecs/h264/h264_video_toolbox_nalu.h",
]
configs += [ "//build/config/compiler:enable_arc" ]
cflags = [ "-Wobjc-missing-property-synthesis" ]
precompiled_header = "../../sdk/objc/WebRTC-Prefix.pch"
precompiled_source = "../../sdk/objc/WebRTC-Prefix.pch"
configs += [
"../..:common_objc",
"//build/config/compiler:enable_arc",
]
deps = [
"../../sdk:rtc_sdk_common_objc",

View File

@ -8,8 +8,9 @@
import("../build/webrtc.gni")
import("//build_overrides/webrtc.gni")
import("//build/config/mac/mac_sdk.gni")
if (is_ios) {
if (is_ios || (is_mac && mac_deployment_target == "10.7")) {
config("rtc_sdk_common_objc_config") {
include_dirs = [
"objc/Framework/Classes",
@ -21,8 +22,10 @@ if (is_ios) {
deps = [
"../base:rtc_base",
]
cflags = [ "-fobjc-arc" ]
configs += [ "..:common_config" ]
configs += [
"..:common_config",
"//build/config/compiler:enable_arc",
]
public_configs = [
"..:common_inherited_config",
":rtc_sdk_common_objc_config",
@ -30,15 +33,11 @@ if (is_ios) {
sources = [
"objc/Framework/Classes/NSString+StdString.h",
"objc/Framework/Classes/NSString+StdString.mm",
"objc/Framework/Classes/RTCCameraPreviewView.m",
"objc/Framework/Classes/RTCDispatcher.m",
"objc/Framework/Classes/RTCFieldTrials.mm",
"objc/Framework/Classes/RTCLogging.mm",
"objc/Framework/Classes/RTCSSLAdapter.mm",
"objc/Framework/Classes/RTCTracing.mm",
"objc/Framework/Classes/RTCUIApplication.h",
"objc/Framework/Classes/RTCUIApplication.mm",
"objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
"objc/Framework/Headers/WebRTC/RTCDispatcher.h",
"objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
"objc/Framework/Headers/WebRTC/RTCLogging.h",
@ -46,103 +45,114 @@ if (is_ios) {
"objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
"objc/Framework/Headers/WebRTC/RTCTracing.h",
]
if (is_ios) {
sources += [
"objc/Framework/Classes/RTCCameraPreviewView.m",
"objc/Framework/Classes/RTCUIApplication.h",
"objc/Framework/Classes/RTCUIApplication.mm",
"objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
]
libs = [ "AVFoundation.framework" ]
}
if (!build_with_chromium) {
sources += [
"objc/Framework/Classes/RTCFileLogger.mm",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h",
]
}
libs = [ "AVFoundation.framework" ]
}
source_set("rtc_sdk_peerconnection_objc") {
deps = [
":rtc_sdk_common_objc",
#"../../talk/libjingle:libjingle_peerconnection",
]
configs += [ "//build/config/compiler:enable_arc" ]
cflags = [ "-Wobjc-missing-property-synthesis" ]
sources = [
# Add these when there's a BUILD.gn for peer connection APIs
#"objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h",
#"objc/Framework/Classes/RTCAVFoundationVideoSource.mm",
#"objc/Framework/Classes/RTCAudioTrack+Private.h",
#"objc/Framework/Classes/RTCAudioTrack.mm",
#"objc/Framework/Classes/RTCConfiguration+Private.h",
#"objc/Framework/Classes/RTCConfiguration.mm",
#"objc/Framework/Classes/RTCDataChannel+Private.h",
#"objc/Framework/Classes/RTCDataChannel.mm",
#"objc/Framework/Classes/RTCDataChannelConfiguration+Private.h",
#"objc/Framework/Classes/RTCDataChannelConfiguration.mm",
#"objc/Framework/Classes/RTCIceCandidate+Private.h",
#"objc/Framework/Classes/RTCIceCandidate.mm",
#"objc/Framework/Classes/RTCIceServer+Private.h",
#"objc/Framework/Classes/RTCIceServer.mm",
#"objc/Framework/Classes/RTCMediaConstraints+Private.h",
#"objc/Framework/Classes/RTCMediaConstraints.mm",
#"objc/Framework/Classes/RTCMediaStream+Private.h",
#"objc/Framework/Classes/RTCMediaStream.mm",
#"objc/Framework/Classes/RTCMediaStreamTrack+Private.h",
#"objc/Framework/Classes/RTCMediaStreamTrack.mm",
#"objc/Framework/Classes/RTCOpenGLVideoRenderer.mm",
#"objc/Framework/Classes/RTCPeerConnection+Private.h",
#"objc/Framework/Classes/RTCPeerConnection.mm",
#"objc/Framework/Classes/RTCPeerConnectionFactory+Private.h",
#"objc/Framework/Classes/RTCPeerConnectionFactory.mm",
#"objc/Framework/Classes/RTCRtpEncodingParameters+Private.h",
#"objc/Framework/Classes/RTCRtpEncodingParameters.mm",
#"objc/Framework/Classes/RTCRtpParameters+Private.h",
#"objc/Framework/Classes/RTCRtpParameters.mm",
#"objc/Framework/Classes/RTCRtpReceiver+Private.h",
#"objc/Framework/Classes/RTCRtpReceiver.mm",
#"objc/Framework/Classes/RTCRtpSender+Private.h",
#"objc/Framework/Classes/RTCRtpSender.mm",
#"objc/Framework/Classes/RTCSessionDescription+Private.h",
#"objc/Framework/Classes/RTCSessionDescription.mm",
#"objc/Framework/Classes/RTCStatsReport+Private.h",
#"objc/Framework/Classes/RTCStatsReport.mm",
#"objc/Framework/Classes/RTCVideoFrame+Private.h",
#"objc/Framework/Classes/RTCVideoFrame.mm",
#"objc/Framework/Classes/RTCVideoRendererAdapter+Private.h",
#"objc/Framework/Classes/RTCVideoRendererAdapter.h",
#"objc/Framework/Classes/RTCVideoRendererAdapter.mm",
#"objc/Framework/Classes/RTCVideoSource+Private.h",
#"objc/Framework/Classes/RTCVideoSource.mm",
#"objc/Framework/Classes/RTCVideoTrack+Private.h",
#"objc/Framework/Classes/RTCVideoTrack.mm",
#"objc/Framework/Classes/avfoundationvideocapturer.h",
#"objc/Framework/Classes/avfoundationvideocapturer.mm",
#"objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
#"objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
#"objc/Framework/Headers/WebRTC/RTCConfiguration.h",
#"objc/Framework/Headers/WebRTC/RTCDataChannel.h",
#"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
#"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
#"objc/Framework/Headers/WebRTC/RTCIceServer.h",
#"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
#"objc/Framework/Headers/WebRTC/RTCMediaStream.h",
#"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
#"objc/Framework/Headers/WebRTC/RTCOpenGLVideoRenderer.h",
#"objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
#"objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
#"objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
#"objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
#"objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
#"objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
#"objc/Framework/Headers/WebRTC/RTCRtpSender.h",
#"objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
#"objc/Framework/Headers/WebRTC/RTCStatsReport.h",
#"objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
#"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
#"objc/Framework/Headers/WebRTC/RTCVideoSource.h",
#"objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
"objc/Framework/Classes/RTCAudioTrack+Private.h",
"objc/Framework/Classes/RTCAudioTrack.mm",
"objc/Framework/Classes/RTCConfiguration+Private.h",
"objc/Framework/Classes/RTCConfiguration.mm",
"objc/Framework/Classes/RTCDataChannel+Private.h",
"objc/Framework/Classes/RTCDataChannel.mm",
"objc/Framework/Classes/RTCDataChannelConfiguration+Private.h",
"objc/Framework/Classes/RTCDataChannelConfiguration.mm",
"objc/Framework/Classes/RTCIceCandidate+Private.h",
"objc/Framework/Classes/RTCIceCandidate.mm",
"objc/Framework/Classes/RTCIceServer+Private.h",
"objc/Framework/Classes/RTCIceServer.mm",
"objc/Framework/Classes/RTCMediaConstraints+Private.h",
"objc/Framework/Classes/RTCMediaConstraints.mm",
"objc/Framework/Classes/RTCMediaStream+Private.h",
"objc/Framework/Classes/RTCMediaStream.mm",
"objc/Framework/Classes/RTCMediaStreamTrack+Private.h",
"objc/Framework/Classes/RTCMediaStreamTrack.mm",
"objc/Framework/Classes/RTCOpenGLVideoRenderer.h",
"objc/Framework/Classes/RTCOpenGLVideoRenderer.mm",
"objc/Framework/Classes/RTCPeerConnection+DataChannel.mm",
"objc/Framework/Classes/RTCPeerConnection+Private.h",
"objc/Framework/Classes/RTCPeerConnection+Stats.mm",
"objc/Framework/Classes/RTCPeerConnection.mm",
"objc/Framework/Classes/RTCPeerConnectionFactory+Private.h",
"objc/Framework/Classes/RTCPeerConnectionFactory.mm",
"objc/Framework/Classes/RTCRtpCodecParameters+Private.h",
"objc/Framework/Classes/RTCRtpCodecParameters.mm",
"objc/Framework/Classes/RTCRtpEncodingParameters+Private.h",
"objc/Framework/Classes/RTCRtpEncodingParameters.mm",
"objc/Framework/Classes/RTCRtpParameters+Private.h",
"objc/Framework/Classes/RTCRtpParameters.mm",
"objc/Framework/Classes/RTCRtpReceiver+Private.h",
"objc/Framework/Classes/RTCRtpReceiver.mm",
"objc/Framework/Classes/RTCRtpSender+Private.h",
"objc/Framework/Classes/RTCRtpSender.mm",
"objc/Framework/Classes/RTCSessionDescription+Private.h",
"objc/Framework/Classes/RTCSessionDescription.mm",
"objc/Framework/Classes/RTCStatsReport+Private.h",
"objc/Framework/Classes/RTCStatsReport.mm",
"objc/Framework/Classes/RTCVideoFrame+Private.h",
"objc/Framework/Classes/RTCVideoFrame.mm",
"objc/Framework/Classes/RTCVideoRendererAdapter+Private.h",
"objc/Framework/Classes/RTCVideoRendererAdapter.h",
"objc/Framework/Classes/RTCVideoRendererAdapter.mm",
"objc/Framework/Classes/RTCVideoSource+Private.h",
"objc/Framework/Classes/RTCVideoSource.mm",
"objc/Framework/Classes/RTCVideoTrack+Private.h",
"objc/Framework/Classes/RTCVideoTrack.mm",
"objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
"objc/Framework/Headers/WebRTC/RTCConfiguration.h",
"objc/Framework/Headers/WebRTC/RTCDataChannel.h",
"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
"objc/Framework/Headers/WebRTC/RTCMediaStream.h",
"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
"objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
"objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
"objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
"objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
"objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
"objc/Framework/Headers/WebRTC/RTCRtpSender.h",
"objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
"objc/Framework/Headers/WebRTC/RTCStatsReport.h",
"objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
"objc/Framework/Headers/WebRTC/RTCVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
]
if (is_ios) {
sources += [
"objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h",
"objc/Framework/Classes/RTCAVFoundationVideoSource.mm",
"objc/Framework/Classes/RTCEAGLVideoView.m",
"objc/Framework/Classes/avfoundationvideocapturer.h",
"objc/Framework/Classes/avfoundationvideocapturer.mm",
"objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
]
libs = [
"CoreGraphics.framework",
"GLKit.framework",
"OpenGLES.framework",
"QuartzCore.framework",
]
}
if (is_mac) {
@ -150,6 +160,29 @@ if (is_ios) {
"objc/Framework/Classes/RTCNSGLVideoView.m",
"objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
]
libs = [ "OpenGL.framework" ]
}
configs += [
"..:common_objc",
"//build/config/compiler:enable_arc",
]
public_configs = [ ":rtc_sdk_common_objc_config" ]
if (is_clang) {
# Suppress warnings from the Chromium Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
configs -= [ "//build/config/clang:find_bad_constructs" ]
}
libs += [ "stdc++" ]
deps = [
":rtc_sdk_common_objc",
"../api:libjingle_peerconnection",
]
}
# TODO(tkchin): Add the rtc_sdk_framework_objc target.
}

View File

@ -1,43 +0,0 @@
# Copyright 2016 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.
{
'includes': [ '../build/common.gypi', ],
'conditions': [
['OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7")', {
'targets': [
{
'target_name': 'rtc_sdk_peerconnection_objc_tests',
'type': 'executable',
'includes': [
'../build/objc_common.gypi',
],
'dependencies': [
'<(webrtc_root)/base/base_tests.gyp:rtc_base_tests_utils',
'<(webrtc_root)/sdk/sdk.gyp:rtc_sdk_peerconnection_objc',
'<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default',
],
'sources': [
'objc/Framework/UnitTests/RTCConfigurationTest.mm',
'objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm',
'objc/Framework/UnitTests/RTCIceCandidateTest.mm',
'objc/Framework/UnitTests/RTCIceServerTest.mm',
'objc/Framework/UnitTests/RTCMediaConstraintsTest.mm',
'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'],
},
},
],
}], # OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7")
],
}

View File

@ -127,12 +127,6 @@
'webrtc_tests',
],
}],
['include_tests==1 and'
'(OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7"))', {
'dependencies': [
'sdk/sdk_tests.gyp:*',
],
}],
],
},
{

View File

@ -180,9 +180,27 @@
],
}],
['OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7")', {
'dependencies': [
'sdk/sdk_tests.gyp:rtc_sdk_peerconnection_objc_tests',
'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'],
},
}],
],
},