From c1161eb5e37d83dbc2633742e5aa6aaba3262a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1ri=20Tristan=20Helgason?= Date: Fri, 13 Apr 2018 12:50:49 +0200 Subject: [PATCH] Add test case for renderer reconstruction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: b/77825904 Change-Id: I961ec5c2f7ea4bd85c40b716510ae38d261d0b57 Reviewed-on: https://webrtc-review.googlesource.com/69807 Reviewed-by: Anders Carlsson Commit-Queue: Kári Helgason Cr-Commit-Position: refs/heads/master@{#22855} --- .../UnitTests/RTCMTLVideoView_xctest.mm | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm b/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm index 602c699dba..782bc64b1a 100644 --- a/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm +++ b/sdk/objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm @@ -89,6 +89,7 @@ } #pragma mark - Test cases + - (void)testInitAssertsIfMetalUnavailabe { // given OCMStub([self.classMock isMetalAvailable]).andReturn(NO); @@ -167,4 +168,32 @@ [self.classMock verify]; } +- (void)testRTCVideoRenderWorksAfterReconstruction { + OCMStub([self.classMock isMetalAvailable]).andReturn(YES); + self.rendererNV12Mock = [self rendererMockWithSuccessfulSetup:YES]; + self.frameMock = [self frameMockWithCVPixelBuffer:YES]; + + OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]); + OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); + [[self.classMock reject] createI420Renderer]; + + RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; + + [realView renderFrame:self.frameMock]; + [realView drawInMTKView:nil]; + [self.rendererNV12Mock verify]; + [self.classMock verify]; + + // Recreate view. + realView = [[RTCMTLVideoView alloc] init]; + OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]); + // View hould reinit renderer. + OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); + + [realView renderFrame:self.frameMock]; + [realView drawInMTKView:nil]; + [self.rendererNV12Mock verify]; + [self.classMock verify]; +} + @end