Add test case for renderer reconstruction.
Bug: b/77825904 Change-Id: I961ec5c2f7ea4bd85c40b716510ae38d261d0b57 Reviewed-on: https://webrtc-review.googlesource.com/69807 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22855}
This commit is contained in:
committed by
Commit Bot
parent
d91f7dfa14
commit
c1161eb5e3
@ -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
|
||||
|
||||
Reference in New Issue
Block a user