Remove objc tests from rtc_unittests and move tests to sdk_unittests

The tests in rtc_unittests_objc are old gtest based tests and
The tests in sdk_unittests are XCTest based tests.
The objc tests in rtc_unittest are causing problems [1],
so I think it's time to combine the two types of objc tests.

Renaming the files to match the existing sdk_unittests and
removing the use of gtest helper functions (eg, EXPECT_EQ)
are planned for follow-up CLs.

[1] https://webrtc-review.googlesource.com/c/src/+/261724/9

Bug: webrtc:8382
Change-Id: I9308b35f654c4479c9df72bf7cd7f4032e267eb2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262380
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36878}
This commit is contained in:
Byoungchan Lee 2022-05-13 19:59:49 +09:00 committed by WebRTC LUCI CQ
parent cbb8fb8337
commit c8a6fb2bb8
17 changed files with 99 additions and 431 deletions

View File

@ -596,10 +596,6 @@ if (rtc_include_tests && !build_with_chromium) {
] ]
shard_timeout = 900 shard_timeout = 900
} }
if (is_ios || is_mac) {
deps += [ "sdk:rtc_unittests_objc" ]
}
} }
if (enable_google_benchmarks) { if (enable_google_benchmarks) {

View File

@ -1056,17 +1056,32 @@ if (is_ios || is_mac) {
sources = [ sources = [
"objc/unittests/ObjCVideoTrackSource_xctest.mm", "objc/unittests/ObjCVideoTrackSource_xctest.mm",
"objc/unittests/RTCAudioSessionTest.mm",
"objc/unittests/RTCCVPixelBuffer_xctest.mm", "objc/unittests/RTCCVPixelBuffer_xctest.mm",
"objc/unittests/RTCCallbackLogger_xctest.m", "objc/unittests/RTCCallbackLogger_xctest.m",
"objc/unittests/RTCCameraVideoCapturerTests.mm",
"objc/unittests/RTCCertificateTest.mm",
"objc/unittests/RTCConfigurationTest.mm",
"objc/unittests/RTCDataChannelConfigurationTest.mm",
"objc/unittests/RTCEncodedImage_xctest.mm", "objc/unittests/RTCEncodedImage_xctest.mm",
"objc/unittests/RTCFileVideoCapturer_xctest.mm", "objc/unittests/RTCFileVideoCapturer_xctest.mm",
"objc/unittests/RTCH264ProfileLevelId_xctest.m", "objc/unittests/RTCH264ProfileLevelId_xctest.m",
"objc/unittests/RTCIceCandidateTest.mm",
"objc/unittests/RTCIceServerTest.mm",
"objc/unittests/RTCMTLVideoView_xctest.m", "objc/unittests/RTCMTLVideoView_xctest.m",
"objc/unittests/RTCMediaConstraintsTest.mm",
"objc/unittests/RTCNV12TextureCache_xctest.m", "objc/unittests/RTCNV12TextureCache_xctest.m",
"objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
"objc/unittests/RTCPeerConnectionFactory_xctest.m", "objc/unittests/RTCPeerConnectionFactory_xctest.m",
"objc/unittests/RTCPeerConnectionTest.mm",
"objc/unittests/RTCSessionDescriptionTest.mm",
"objc/unittests/RTCTracingTest.mm",
"objc/unittests/frame_buffer_helpers.h", "objc/unittests/frame_buffer_helpers.h",
"objc/unittests/frame_buffer_helpers.mm", "objc/unittests/frame_buffer_helpers.mm",
"objc/unittests/nalu_rewriter_xctest.mm", "objc/unittests/nalu_rewriter_xctest.mm",
"objc/unittests/objc_video_decoder_factory_tests.mm",
"objc/unittests/objc_video_encoder_factory_tests.mm",
"objc/unittests/scoped_cftyperef_tests.mm",
] ]
# TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning # TODO(bugs.webrtc.org/12937): Remove OpenGL deprecation warning
@ -1089,6 +1104,7 @@ if (is_ios || is_mac) {
":base_objc", ":base_objc",
":callback_logger_objc", ":callback_logger_objc",
":framework_objc", ":framework_objc",
":helpers_objc",
":mediaconstraints_objc", ":mediaconstraints_objc",
":metal_objc", ":metal_objc",
":native_api", ":native_api",
@ -1102,17 +1118,25 @@ if (is_ios || is_mac) {
":videosource_objc", ":videosource_objc",
":videotoolbox_objc", ":videotoolbox_objc",
"../api:scoped_refptr", "../api:scoped_refptr",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/task_queue:default_task_queue_factory", "../api/task_queue:default_task_queue_factory",
"../api/video:video_frame", "../api/video:video_frame",
"../api/video_codecs:video_codecs_api",
"../common_video", "../common_video",
"../media:rtc_media_base", "../media:rtc_media_base",
"../media:rtc_media_tests_utils", "../media:rtc_media_tests_utils",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:api",
"../modules/video_coding:video_codec_interface",
"../rtc_base", "../rtc_base",
"../rtc_base:gunit_helpers", "../rtc_base:gunit_helpers",
"../rtc_base:macromagic", "../rtc_base:macromagic",
"../rtc_base:refcount", "../rtc_base:refcount",
"../rtc_base:rtc_event",
"../rtc_base/system:unused", "../rtc_base/system:unused",
"../system_wrappers", "../system_wrappers",
"../test:test_support", # TODO(webrtc:8382): Remove use of gtest
"//third_party/libyuv", "//third_party/libyuv",
] ]
@ -1175,69 +1199,6 @@ if (is_ios || is_mac) {
] ]
} }
} }
# TODO(denicija): once all tests are migrated to xctest remove this source set.
rtc_library("rtc_unittests_objc") {
testonly = true
sources = [
"objc/unittests/RTCCertificateTest.mm",
"objc/unittests/RTCConfigurationTest.mm",
"objc/unittests/RTCDataChannelConfigurationTest.mm",
"objc/unittests/RTCIceCandidateTest.mm",
"objc/unittests/RTCIceServerTest.mm",
"objc/unittests/RTCMediaConstraintsTest.mm",
"objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
"objc/unittests/RTCPeerConnectionTest.mm",
"objc/unittests/RTCSessionDescriptionTest.mm",
"objc/unittests/RTCTracingTest.mm",
"objc/unittests/objc_video_decoder_factory_tests.mm",
"objc/unittests/objc_video_encoder_factory_tests.mm",
"objc/unittests/scoped_cftyperef_tests.mm",
]
if (is_ios) {
sources += [ "objc/unittests/RTCCameraVideoCapturerTests.mm" ]
}
# |-ObjC| flag needed to make sure category method implementations
# are included:
# https://developer.apple.com/library/mac/qa/qa1490/_index.html
ldflags = [ "-ObjC" ]
deps = [
":base_objc",
":helpers_objc",
":mediaconstraints_objc",
":native_api",
":native_video",
":peerconnectionfactory_base_objc",
":videocapture_objc",
":videocodec_objc",
":videoframebuffer_objc",
":videosource_objc",
":videotoolbox_objc",
"../api:libjingle_peerconnection_api",
"../api/audio_codecs:audio_codecs_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/video_codecs:video_codecs_api",
"../media:rtc_media_base",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing",
"../modules/audio_processing:api",
"../modules/video_coding:video_codec_interface",
"../rtc_base:gunit_helpers",
"../rtc_base:rtc_event",
"../rtc_base/system:unused",
"../test:test_support",
"//third_party/ocmock",
]
if (is_ios) {
sources += [ "objc/unittests/RTCAudioSessionTest.mm" ]
deps += [ ":audio_session_objc" ]
}
}
} }
if (is_ios) { if (is_ios) {

View File

@ -10,6 +10,7 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <OCMock/OCMock.h> #import <OCMock/OCMock.h>
#import <XCTest/XCTest.h>
#include <vector> #include <vector>
@ -111,8 +112,7 @@
@end @end
@interface RTCAudioSessionTest : XCTestCase
@interface RTCAudioSessionTest : NSObject
@end @end
@ -322,57 +322,3 @@ OCMLocation *OCMMakeLocation(id testCase, const char *fileCString, int line){
} }
@end @end
namespace webrtc {
class AudioSessionTest : public ::testing::Test {
protected:
void TearDown() override {
RTC_OBJC_TYPE(RTCAudioSession) *session = [RTC_OBJC_TYPE(RTCAudioSession) sharedInstance];
for (id<RTC_OBJC_TYPE(RTCAudioSessionDelegate)> delegate : session.delegates) {
[session removeDelegate:delegate];
}
}
};
TEST_F(AudioSessionTest, AddAndRemoveDelegates) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testAddAndRemoveDelegates];
}
TEST_F(AudioSessionTest, PushDelegate) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testPushDelegate];
}
TEST_F(AudioSessionTest, ZeroingWeakDelegate) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testZeroingWeakDelegate];
}
TEST_F(AudioSessionTest, RemoveDelegateOnDealloc) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testRemoveDelegateOnDealloc];
}
TEST_F(AudioSessionTest, AudioSessionActivation) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testAudioSessionActivation];
}
TEST_F(AudioSessionTest, ConfigureWebRTCSession) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testConfigureWebRTCSession];
}
TEST_F(AudioSessionTest, ConfigureWebRTCSessionWithoutLocking) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testConfigureWebRTCSessionWithoutLocking];
}
TEST_F(AudioSessionTest, AudioVolumeDidNotify) {
RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
[test testAudioVolumeDidNotify];
}
} // namespace webrtc

View File

@ -9,6 +9,7 @@
*/ */
#import <OCMock/OCMock.h> #import <OCMock/OCMock.h>
#import <XCTest/XCTest.h>
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@ -67,7 +68,7 @@ CMSampleBufferRef createTestSampleBufferRef() {
: (AVCaptureSession *)captureSession; : (AVCaptureSession *)captureSession;
@end @end
@interface RTCCameraVideoCapturerTests : NSObject @interface RTCCameraVideoCapturerTests : XCTestCase
@property(nonatomic, strong) id delegateMock; @property(nonatomic, strong) id delegateMock;
@property(nonatomic, strong) id deviceMock; @property(nonatomic, strong) id deviceMock;
@property(nonatomic, strong) id captureConnectionMock; @property(nonatomic, strong) id captureConnectionMock;
@ -455,112 +456,3 @@ CMSampleBufferRef createTestSampleBufferRef() {
} }
@end @end
TEST(RTCCameraVideoCapturerTests, SetupSession) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testSetupSession];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, SetupSessionOutput) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testSetupSessionOutput];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, SupportedFormatsForDevice) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testSupportedFormatsForDevice];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, DelegateCallbackNotCalledWhenInvalidBuffer) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testDelegateCallbackNotCalledWhenInvalidBuffer];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, DelegateCallbackWithValidBufferAndOrientationUpdate) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testDelegateCallbackWithValidBufferAndOrientationUpdate];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, RotationCameraBackLandscapeLeft) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testRotationCamera:AVCaptureDevicePositionBack
withOrientation:UIDeviceOrientationLandscapeLeft];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, RotationCameraFrontLandscapeLeft) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testRotationCamera:AVCaptureDevicePositionFront
withOrientation:UIDeviceOrientationLandscapeLeft];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, RotationCameraBackLandscapeRight) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testRotationCamera:AVCaptureDevicePositionBack
withOrientation:UIDeviceOrientationLandscapeRight];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, RotationCameraFrontLandscapeRight) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testRotationCamera:AVCaptureDevicePositionFront
withOrientation:UIDeviceOrientationLandscapeRight];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, RotationCameraFrame) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testRotationFrame];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, ImageExif) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setup];
[test testImageExif];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, StartAndStopCapture) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setupWithMockedCaptureSession];
[test testStartingAndStoppingCapture];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, StartCaptureFailingToLockForConfiguration) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setupWithMockedCaptureSession];
[test testStartCaptureFailingToLockForConfiguration];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, StartAndStopCaptureWithCallbacks) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setupWithMockedCaptureSession];
[test testStartingAndStoppingCaptureWithCallbacks];
[test tearDown];
}
TEST(RTCCameraVideoCapturerTests, StartCaptureFailingToLockForConfigurationWithCallback) {
RTCCameraVideoCapturerTests *test = [[RTCCameraVideoCapturerTests alloc] init];
[test setupWithMockedCaptureSession];
[test testStartCaptureFailingToLockForConfigurationWithCallback];
[test tearDown];
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <vector> #include <vector>
@ -22,8 +23,7 @@
#import "api/peerconnection/RTCPeerConnectionFactory.h" #import "api/peerconnection/RTCPeerConnectionFactory.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCCertificateTest : NSObject @interface RTCCertificateTest : XCTestCase
- (void)testCertificateIsUsedInConfig;
@end @end
@implementation RTCCertificateTest @implementation RTCCertificateTest
@ -71,8 +71,3 @@
} }
@end @end
TEST(CertificateTest, DISABLED_CertificateIsUsedInConfig) {
RTCCertificateTest *test = [[RTCCertificateTest alloc] init];
[test testCertificateIsUsedInConfig];
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <vector> #include <vector>
@ -19,9 +20,7 @@
#import "api/peerconnection/RTCIceServer.h" #import "api/peerconnection/RTCIceServer.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCConfigurationTest : NSObject @interface RTCConfigurationTest : XCTestCase
- (void)testConversionToNativeConfiguration;
- (void)testNativeConversionToConfiguration;
@end @end
@implementation RTCConfigurationTest @implementation RTCConfigurationTest
@ -161,12 +160,3 @@
} }
@end @end
TEST(RTCConfigurationTest, NativeConfigurationConversionTest) {
@autoreleasepool {
RTCConfigurationTest *test = [[RTCConfigurationTest alloc] init];
[test testConversionToNativeConfiguration];
[test testNativeConversionToConfiguration];
[test testDefaultValues];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include "rtc_base/gunit.h" #include "rtc_base/gunit.h"
@ -16,8 +17,7 @@
#import "api/peerconnection/RTCDataChannelConfiguration.h" #import "api/peerconnection/RTCDataChannelConfiguration.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCDataChannelConfigurationTest : NSObject @interface RTCDataChannelConfigurationTest : XCTestCase
- (void)testConversionToNativeDataChannelInit;
@end @end
@implementation RTCDataChannelConfigurationTest @implementation RTCDataChannelConfigurationTest
@ -49,11 +49,3 @@
} }
@end @end
TEST(RTC_OBJC_TYPE(RTCDataChannelConfiguration), NativeDataChannelInitConversionTest) {
@autoreleasepool {
RTCDataChannelConfigurationTest *test =
[[RTCDataChannelConfigurationTest alloc] init];
[test testConversionToNativeDataChannelInit];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <memory> #include <memory>
@ -18,9 +19,7 @@
#import "api/peerconnection/RTCIceCandidate.h" #import "api/peerconnection/RTCIceCandidate.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCIceCandidateTest : NSObject @interface RTCIceCandidateTest : XCTestCase
- (void)testCandidate;
- (void)testInitFromNativeCandidate;
@end @end
@implementation RTCIceCandidateTest @implementation RTCIceCandidateTest
@ -59,17 +58,3 @@
} }
@end @end
TEST(RTCIceCandidateTest, CandidateTest) {
@autoreleasepool {
RTCIceCandidateTest *test = [[RTCIceCandidateTest alloc] init];
[test testCandidate];
}
}
TEST(RTCIceCandidateTest, InitFromCandidateTest) {
@autoreleasepool {
RTCIceCandidateTest *test = [[RTCIceCandidateTest alloc] init];
[test testInitFromNativeCandidate];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <vector> #include <vector>
@ -18,11 +19,7 @@
#import "api/peerconnection/RTCIceServer.h" #import "api/peerconnection/RTCIceServer.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCIceServerTest : NSObject @interface RTCIceServerTest : XCTestCase
- (void)testOneURLServer;
- (void)testTwoURLServer;
- (void)testPasswordCredential;
- (void)testInitFromNativeServer;
@end @end
@implementation RTCIceServerTest @implementation RTCIceServerTest
@ -137,38 +134,3 @@
} }
@end @end
TEST(RTCIceServerTest, OneURLTest) {
@autoreleasepool {
RTCIceServerTest *test = [[RTCIceServerTest alloc] init];
[test testOneURLServer];
}
}
TEST(RTCIceServerTest, TwoURLTest) {
@autoreleasepool {
RTCIceServerTest *test = [[RTCIceServerTest alloc] init];
[test testTwoURLServer];
}
}
TEST(RTCIceServerTest, PasswordCredentialTest) {
@autoreleasepool {
RTCIceServerTest *test = [[RTCIceServerTest alloc] init];
[test testPasswordCredential];
}
}
TEST(RTCIceServerTest, HostnameTest) {
@autoreleasepool {
RTCIceServerTest *test = [[RTCIceServerTest alloc] init];
[test testHostname];
}
}
TEST(RTCIceServerTest, InitFromNativeServerTest) {
@autoreleasepool {
RTCIceServerTest *test = [[RTCIceServerTest alloc] init];
[test testInitFromNativeServer];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <memory> #include <memory>
@ -18,11 +19,10 @@
#import "api/peerconnection/RTCMediaConstraints.h" #import "api/peerconnection/RTCMediaConstraints.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCMediaConstraintsTest : NSObject @interface RTCMediaConstraintsTests : XCTestCase
- (void)testMediaConstraints;
@end @end
@implementation RTCMediaConstraintsTest @implementation RTCMediaConstraintsTests
- (void)testMediaConstraints { - (void)testMediaConstraints {
NSDictionary *mandatory = @{@"key1": @"value1", @"key2": @"value2"}; NSDictionary *mandatory = @{@"key1": @"value1", @"key2": @"value2"};
@ -56,10 +56,3 @@
} }
@end @end
TEST(RTCMediaConstraintsTest, MediaConstraintsTest) {
@autoreleasepool {
RTCMediaConstraintsTest *test = [[RTCMediaConstraintsTest alloc] init];
[test testMediaConstraints];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -30,12 +31,10 @@ extern "C" {
#include "rtc_base/gunit.h" #include "rtc_base/gunit.h"
#include "rtc_base/system/unused.h" #include "rtc_base/system/unused.h"
@interface RTCPeerConnectionFactoryBuilderTest : NSObject @interface RTCPeerConnectionFactoryBuilderTests : XCTestCase
- (void)testBuilder;
- (void)testDefaultComponentsBuilder;
@end @end
@implementation RTCPeerConnectionFactoryBuilderTest @implementation RTCPeerConnectionFactoryBuilderTests
- (void)testBuilder { - (void)testBuilder {
id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]); id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]);
@ -79,17 +78,3 @@ extern "C" {
OCMVerifyAll(factoryMock); OCMVerifyAll(factoryMock);
} }
@end @end
TEST(RTCPeerConnectionFactoryBuilderTest, BuilderTest) {
@autoreleasepool {
RTCPeerConnectionFactoryBuilderTest* test = [[RTCPeerConnectionFactoryBuilderTest alloc] init];
[test testBuilder];
}
}
TEST(RTCPeerConnectionFactoryBuilderTest, DefaultComponentsBuilderTest) {
@autoreleasepool {
RTCPeerConnectionFactoryBuilderTest* test = [[RTCPeerConnectionFactoryBuilderTest alloc] init];
[test testDefaultComponentsBuilder];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <memory> #include <memory>
#include <vector> #include <vector>
@ -27,14 +28,10 @@
#import "api/peerconnection/RTCSessionDescription.h" #import "api/peerconnection/RTCSessionDescription.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCPeerConnectionTest : NSObject @interface RTCPeerConnectionTests : XCTestCase
- (void)testConfigurationGetter;
- (void)testWithDependencies;
- (void)testWithInvalidSDP;
- (void)testWithInvalidIceCandidate;
@end @end
@implementation RTCPeerConnectionTest @implementation RTCPeerConnectionTests
- (void)testConfigurationGetter { - (void)testConfigurationGetter {
NSArray *urlStrings = @[ @"stun:stun1.example.net" ]; NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
@ -205,31 +202,3 @@
} }
@end @end
TEST(RTCPeerConnectionTest, ConfigurationGetterTest) {
@autoreleasepool {
RTCPeerConnectionTest *test = [[RTCPeerConnectionTest alloc] init];
[test testConfigurationGetter];
}
}
TEST(RTCPeerConnectionTest, TestWithDependencies) {
@autoreleasepool {
RTCPeerConnectionTest *test = [[RTCPeerConnectionTest alloc] init];
[test testWithDependencies];
}
}
TEST(RTCPeerConnectionTest, TestWithInvalidSDP) {
@autoreleasepool {
RTCPeerConnectionTest *test = [[RTCPeerConnectionTest alloc] init];
[test testWithInvalidSDP];
}
}
TEST(RTCPeerConnectionTest, TestWithInvalidIceCandidate) {
@autoreleasepool {
RTCPeerConnectionTest *test = [[RTCPeerConnectionTest alloc] init];
[test testWithInvalidIceCandidate];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include "rtc_base/gunit.h" #include "rtc_base/gunit.h"
@ -16,12 +17,10 @@
#import "api/peerconnection/RTCSessionDescription.h" #import "api/peerconnection/RTCSessionDescription.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCSessionDescriptionTest : NSObject @interface RTCSessionDescriptionTests : XCTestCase
- (void)testSessionDescriptionConversion;
- (void)testInitFromNativeSessionDescription;
@end @end
@implementation RTCSessionDescriptionTest @implementation RTCSessionDescriptionTests
/** /**
* Test conversion of an Objective-C RTC_OBJC_TYPE(RTCSessionDescription) to a native * Test conversion of an Objective-C RTC_OBJC_TYPE(RTCSessionDescription) to a native
@ -121,17 +120,3 @@
} }
@end @end
TEST(RTCSessionDescriptionTest, SessionDescriptionConversionTest) {
@autoreleasepool {
RTCSessionDescriptionTest *test = [[RTCSessionDescriptionTest alloc] init];
[test testSessionDescriptionConversion];
}
}
TEST(RTCSessionDescriptionTest, InitFromSessionDescriptionTest) {
@autoreleasepool {
RTCSessionDescriptionTest *test = [[RTCSessionDescriptionTest alloc] init];
[test testInitFromNativeSessionDescription];
}
}

View File

@ -9,6 +9,7 @@
*/ */
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>
#include <vector> #include <vector>
@ -17,11 +18,10 @@
#import "api/peerconnection/RTCTracing.h" #import "api/peerconnection/RTCTracing.h"
#import "helpers/NSString+StdString.h" #import "helpers/NSString+StdString.h"
@interface RTCTracingTest : NSObject @interface RTCTracingTests : XCTestCase
- (void)tracingTestNoInitialization;
@end @end
@implementation RTCTracingTest @implementation RTCTracingTests
- (NSString *)documentsFilePathForFileName:(NSString *)fileName { - (NSString *)documentsFilePathForFileName:(NSString *)fileName {
NSParameterAssert(fileName.length); NSParameterAssert(fileName.length);
@ -32,17 +32,10 @@
return filePath; return filePath;
} }
- (void)tracingTestNoInitialization { - (void)testTracingTestNoInitialization {
NSString *filePath = [self documentsFilePathForFileName:@"webrtc-trace.txt"]; NSString *filePath = [self documentsFilePathForFileName:@"webrtc-trace.txt"];
EXPECT_EQ(NO, RTCStartInternalCapture(filePath)); EXPECT_EQ(NO, RTCStartInternalCapture(filePath));
RTCStopInternalCapture(); RTCStopInternalCapture();
} }
@end @end
TEST(RTCTracingTest, TracingTestNoInitialization) {
@autoreleasepool {
RTCTracingTest *test = [[RTCTracingTest alloc] init];
[test tracingTestNoInitialization];
}
}

View File

@ -10,6 +10,7 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <OCMock/OCMock.h> #import <OCMock/OCMock.h>
#import <XCTest/XCTest.h>
#include "sdk/objc/native/src/objc_video_decoder_factory.h" #include "sdk/objc/native/src/objc_video_decoder_factory.h"
@ -55,21 +56,26 @@ std::unique_ptr<webrtc::VideoDecoder> GetObjCDecoder(
#pragma mark - #pragma mark -
TEST(ObjCVideoDecoderFactoryTest, ConfigureReturnsTrueOnSuccess) { @interface ObjCVideoDecoderFactoryTests : XCTestCase
@end
@implementation ObjCVideoDecoderFactoryTests
- (void)testConfigureReturnsTrueOnSuccess {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
webrtc::VideoDecoder::Settings settings; webrtc::VideoDecoder::Settings settings;
EXPECT_TRUE(decoder->Configure(settings)); EXPECT_TRUE(decoder->Configure(settings));
} }
TEST(ObjCVideoDecoderFactoryTest, ConfigureReturnsFalseOnFail) { - (void)testConfigureReturnsFalseOnFail {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
webrtc::VideoDecoder::Settings settings; webrtc::VideoDecoder::Settings settings;
EXPECT_FALSE(decoder->Configure(settings)); EXPECT_FALSE(decoder->Configure(settings));
} }
TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsOKOnSuccess) { - (void)testDecodeReturnsOKOnSuccess {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
webrtc::EncodedImage encoded_image; webrtc::EncodedImage encoded_image;
@ -78,7 +84,7 @@ TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsOKOnSuccess) {
EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_OK); EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_OK);
} }
TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsErrorOnFail) { - (void)testDecodeReturnsErrorOnFail {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
webrtc::EncodedImage encoded_image; webrtc::EncodedImage encoded_image;
@ -87,14 +93,15 @@ TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsErrorOnFail) {
EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_ERROR); EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_ERROR);
} }
TEST(ObjCVideoDecoderFactoryTest, ReleaseDecodeReturnsOKOnSuccess) { - (void)testReleaseDecodeReturnsOKOnSuccess {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_OK); EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_OK);
} }
TEST(ObjCVideoDecoderFactoryTest, ReleaseDecodeReturnsErrorOnFail) { - (void)testReleaseDecodeReturnsErrorOnFail {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory()); std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_ERROR); EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_ERROR);
} }
@end

View File

@ -10,6 +10,7 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <OCMock/OCMock.h> #import <OCMock/OCMock.h>
#import <XCTest/XCTest.h>
#include "sdk/objc/native/src/objc_video_encoder_factory.h" #include "sdk/objc/native/src/objc_video_encoder_factory.h"
@ -59,7 +60,12 @@ std::unique_ptr<webrtc::VideoEncoder> GetObjCEncoder(
#pragma mark - #pragma mark -
TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsOKOnSuccess) { @interface ObjCVideoEncoderFactoryTests : XCTestCase
@end
@implementation ObjCVideoEncoderFactoryTests
- (void)testInitEncodeReturnsOKOnSuccess {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
auto* settings = new webrtc::VideoCodec(); auto* settings = new webrtc::VideoCodec();
@ -68,7 +74,7 @@ TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsOKOnSuccess) {
WEBRTC_VIDEO_CODEC_OK); WEBRTC_VIDEO_CODEC_OK);
} }
TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsErrorOnFail) { - (void)testInitEncodeReturnsErrorOnFail {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
auto* settings = new webrtc::VideoCodec(); auto* settings = new webrtc::VideoCodec();
@ -77,7 +83,7 @@ TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsErrorOnFail) {
WEBRTC_VIDEO_CODEC_ERROR); WEBRTC_VIDEO_CODEC_ERROR);
} }
TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsOKOnSuccess) { - (void)testEncodeReturnsOKOnSuccess {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
CVPixelBufferRef pixel_buffer; CVPixelBufferRef pixel_buffer;
@ -95,7 +101,7 @@ TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsOKOnSuccess) {
EXPECT_EQ(encoder->Encode(frame, &frame_types), WEBRTC_VIDEO_CODEC_OK); EXPECT_EQ(encoder->Encode(frame, &frame_types), WEBRTC_VIDEO_CODEC_OK);
} }
TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsErrorOnFail) { - (void)testEncodeReturnsErrorOnFail {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
CVPixelBufferRef pixel_buffer; CVPixelBufferRef pixel_buffer;
@ -113,28 +119,30 @@ TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsErrorOnFail) {
EXPECT_EQ(encoder->Encode(frame, &frame_types), WEBRTC_VIDEO_CODEC_ERROR); EXPECT_EQ(encoder->Encode(frame, &frame_types), WEBRTC_VIDEO_CODEC_ERROR);
} }
TEST(ObjCVideoEncoderFactoryTest, ReleaseEncodeReturnsOKOnSuccess) { - (void)testReleaseEncodeReturnsOKOnSuccess {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_OK); EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_OK);
} }
TEST(ObjCVideoEncoderFactoryTest, ReleaseEncodeReturnsErrorOnFail) { - (void)testReleaseEncodeReturnsErrorOnFail {
std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory()); std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_ERROR); EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_ERROR);
} }
TEST(ObjCVideoEncoderFactoryTest, GetSupportedFormats) { - (void)testGetSupportedFormats {
webrtc::ObjCVideoEncoderFactory encoder_factory(CreateOKEncoderFactory()); webrtc::ObjCVideoEncoderFactory encoder_factory(CreateOKEncoderFactory());
std::vector<webrtc::SdpVideoFormat> supportedFormats = encoder_factory.GetSupportedFormats(); std::vector<webrtc::SdpVideoFormat> supportedFormats = encoder_factory.GetSupportedFormats();
EXPECT_EQ(supportedFormats.size(), 1u); EXPECT_EQ(supportedFormats.size(), 1u);
EXPECT_EQ(supportedFormats[0].name, "H264"); EXPECT_EQ(supportedFormats[0].name, "H264");
} }
TEST(ObjCVideoEncoderFactoryTest, GetImplementations) { - (void)testGetImplementations {
webrtc::ObjCVideoEncoderFactory encoder_factory(CreateOKEncoderFactory()); webrtc::ObjCVideoEncoderFactory encoder_factory(CreateOKEncoderFactory());
std::vector<webrtc::SdpVideoFormat> supportedFormats = encoder_factory.GetImplementations(); std::vector<webrtc::SdpVideoFormat> supportedFormats = encoder_factory.GetImplementations();
EXPECT_EQ(supportedFormats.size(), 1u); EXPECT_EQ(supportedFormats.size(), 1u);
EXPECT_EQ(supportedFormats[0].name, "H264"); EXPECT_EQ(supportedFormats[0].name, "H264");
} }
@end

View File

@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#import <XCTest/XCTest.h>
#include "sdk/objc/helpers/scoped_cftyperef.h" #include "sdk/objc/helpers/scoped_cftyperef.h"
#include "test/gtest.h" #include "test/gtest.h"
@ -40,19 +42,24 @@ using ScopedTestType = rtc::internal::ScopedTypeRef<TestTypeRef, TestTypeTraits>
#pragma clang diagnostic push #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable" #pragma clang diagnostic ignored "-Wunused-variable"
TEST(ScopedTypeRefTest, ShouldNotRetainByDefault) { @interface ScopedTypeRefTests : XCTestCase
@end
@implementation ScopedTypeRefTests
- (void)testShouldNotRetainByDefault {
TestType a; TestType a;
ScopedTestType ref(&a); ScopedTestType ref(&a);
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
} }
TEST(ScopedTypeRefTest, ShouldRetainWithPolicy) { - (void)testShouldRetainWithPolicy {
TestType a; TestType a;
ScopedTestType ref(&a, rtc::RetainPolicy::RETAIN); ScopedTestType ref(&a, rtc::RetainPolicy::RETAIN);
EXPECT_EQ(1, a.retain_count); EXPECT_EQ(1, a.retain_count);
} }
TEST(ScopedTypeRefTest, ShouldReleaseWhenLeavingScope) { - (void)testShouldReleaseWhenLeavingScope {
TestType a; TestType a;
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
{ {
@ -62,7 +69,7 @@ TEST(ScopedTypeRefTest, ShouldReleaseWhenLeavingScope) {
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
} }
TEST(ScopedTypeRefTest, ShouldBeCopyable) { - (void)testShouldBeCopyable {
TestType a; TestType a;
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
{ {
@ -74,7 +81,7 @@ TEST(ScopedTypeRefTest, ShouldBeCopyable) {
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
} }
TEST(ScopedTypeRefTest, CanReleaseOwnership) { - (void)testCanReleaseOwnership {
TestType a; TestType a;
EXPECT_EQ(0, a.retain_count); EXPECT_EQ(0, a.retain_count);
{ {
@ -85,7 +92,7 @@ TEST(ScopedTypeRefTest, CanReleaseOwnership) {
EXPECT_EQ(1, a.retain_count); EXPECT_EQ(1, a.retain_count);
} }
TEST(ScopedTypeRefTest, ShouldBeTestableForTruthiness) { - (void)testShouldBeTestableForTruthiness {
ScopedTestType ref; ScopedTestType ref;
EXPECT_FALSE(ref); EXPECT_FALSE(ref);
TestType a; TestType a;
@ -95,10 +102,12 @@ TEST(ScopedTypeRefTest, ShouldBeTestableForTruthiness) {
EXPECT_FALSE(ref); EXPECT_FALSE(ref);
} }
TEST(ScopedTypeRefTest, ShouldProvideAccessToWrappedType) { - (void)testShouldProvideAccessToWrappedType {
TestType a; TestType a;
ScopedTestType ref(&a); ScopedTestType ref(&a);
EXPECT_EQ(&(a.retain_count), &(ref->retain_count)); EXPECT_EQ(&(a.retain_count), &(ref->retain_count));
} }
@end
#pragma clang diagnostic pop #pragma clang diagnostic pop