From d7de6e5ea455f2182f7d6ab0af50147d524ae3ff Mon Sep 17 00:00:00 2001 From: Byoungchan Lee Date: Fri, 29 Apr 2022 16:10:42 +0900 Subject: [PATCH] Fix rendering tests of RTCMTLVideoViewTests to work as expected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In https://webrtc-review.googlesource.com/c/src/+/244420, I added sanity check of RTCVideoFrame in RTCMTLVideoView, but I forgot to modify the related tests. Fix this by adding the appropriate property stubs to RTCVideoFrame stubs created in RTCMTLVideoViewTests. Bug: webrtc:13990, webrtc:13490 Change-Id: I21f0f75cd052e4255e1eee5f39ffdd50c2f8e61b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260420 Reviewed-by: Peter Hanspers Reviewed-by: Jeremy Leconte Reviewed-by: Kári Helgason Commit-Queue: Daniel.L (Byoungchan) Lee Cr-Commit-Position: refs/heads/main@{#36714} --- sdk/objc/unittests/RTCMTLVideoView_xctest.m | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sdk/objc/unittests/RTCMTLVideoView_xctest.m b/sdk/objc/unittests/RTCMTLVideoView_xctest.m index ea65fbe154..f152eeec91 100644 --- a/sdk/objc/unittests/RTCMTLVideoView_xctest.m +++ b/sdk/objc/unittests/RTCMTLVideoView_xctest.m @@ -21,6 +21,9 @@ #import "components/renderer/metal/RTCMTLNV12Renderer.h" #import "components/video_frame_buffer/RTCCVPixelBuffer.h" +static size_t kBufferWidth = 200; +static size_t kBufferHeight = 200; + // Extension of RTC_OBJC_TYPE(RTCMTLVideoView) for testing purposes. @interface RTC_OBJC_TYPE (RTCMTLVideoView) (Testing) @@ -68,14 +71,21 @@ id frameMock = OCMClassMock([RTC_OBJC_TYPE(RTCVideoFrame) class]); if (hasCVPixelBuffer) { CVPixelBufferRef pixelBufferRef; - CVPixelBufferCreate( - kCFAllocatorDefault, 200, 200, kCVPixelFormatType_420YpCbCr8Planar, nil, &pixelBufferRef); + CVPixelBufferCreate(kCFAllocatorDefault, + kBufferWidth, + kBufferHeight, + kCVPixelFormatType_420YpCbCr8Planar, + nil, + &pixelBufferRef); OCMStub([frameMock buffer]) .andReturn([[RTC_OBJC_TYPE(RTCCVPixelBuffer) alloc] initWithPixelBuffer:pixelBufferRef]); } else { OCMStub([frameMock buffer]) - .andReturn([[RTC_OBJC_TYPE(RTCI420Buffer) alloc] initWithWidth:200 height:200]); + .andReturn([[RTC_OBJC_TYPE(RTCI420Buffer) alloc] initWithWidth:kBufferWidth + height:kBufferHeight]); } + OCMStub([((RTC_OBJC_TYPE(RTCVideoFrame) *)frameMock) width]).andReturn(kBufferWidth); + OCMStub([((RTC_OBJC_TYPE(RTCVideoFrame) *)frameMock) height]).andReturn(kBufferHeight); OCMStub([frameMock timeStampNs]).andReturn(arc4random_uniform(INT_MAX)); return frameMock; } @@ -131,8 +141,6 @@ [self.classMock verify]; } -// TODO(crbug.com/webrtc/13990): method was not invoked: drawFrame. -#if !TARGET_IPHONE_SIMULATOR - (void)testRTCVideoRenderFrameCallbackI420 { // given OCMStub([self.classMock isMetalAvailable]).andReturn(YES); @@ -257,7 +265,6 @@ [self.rendererNV12Mock verify]; } -#endif - (void)testReportsSizeChangesToDelegate { OCMStub([self.classMock isMetalAvailable]).andReturn(YES);