Fix tests in RTCMetalVideoView.

RTCMTLVideoViewTests is currently broken, because RTCMTLVideoView
doesn't render into an empty view.

Bug: webrtc:11322
Change-Id: I84f9216024c277ddafd4d2e6416d7e7c818aa16d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168580
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30549}
This commit is contained in:
Byoungchan Lee
2020-02-19 04:39:52 +09:00
committed by Commit Bot
parent c8496e9814
commit 1282babe66

View File

@ -24,6 +24,8 @@
// Extension of RTCMTLVideoView for testing purposes. // Extension of RTCMTLVideoView for testing purposes.
@interface RTCMTLVideoView (Testing) @interface RTCMTLVideoView (Testing)
@property(nonatomic, readonly) MTKView *metalView;
+ (BOOL)isMetalAvailable; + (BOOL)isMetalAvailable;
+ (UIView *)createMetalView:(CGRect)frame; + (UIView *)createMetalView:(CGRect)frame;
+ (id<RTCMTLRenderer>)createNV12Renderer; + (id<RTCMTLRenderer>)createNV12Renderer;
@ -109,7 +111,7 @@
// given // given
OCMStub([self.classMock isMetalAvailable]).andReturn(YES); OCMStub([self.classMock isMetalAvailable]).andReturn(YES);
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
self.frameMock = OCMClassMock([RTCVideoFrame class]); self.frameMock = OCMClassMock([RTCVideoFrame class]);
[[self.frameMock reject] buffer]; [[self.frameMock reject] buffer];
@ -118,7 +120,7 @@
// when // when
[realView renderFrame:nil]; [realView renderFrame:nil];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
// then // then
[self.frameMock verify]; [self.frameMock verify];
@ -135,11 +137,11 @@
OCMExpect([self.classMock createI420Renderer]).andReturn(self.rendererI420Mock); OCMExpect([self.classMock createI420Renderer]).andReturn(self.rendererI420Mock);
[[self.classMock reject] createNV12Renderer]; [[self.classMock reject] createNV12Renderer];
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
// when // when
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
// then // then
[self.rendererI420Mock verify]; [self.rendererI420Mock verify];
@ -156,11 +158,11 @@
OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock);
[[self.classMock reject] createI420Renderer]; [[self.classMock reject] createI420Renderer];
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
// when // when
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
// then // then
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
@ -176,21 +178,21 @@
OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock);
[[self.classMock reject] createI420Renderer]; [[self.classMock reject] createI420Renderer];
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
[self.classMock verify]; [self.classMock verify];
// Recreate view. // Recreate view.
realView = [[RTCMTLVideoView alloc] init]; realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]); OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]);
// View hould reinit renderer. // View hould reinit renderer.
OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock);
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
[self.classMock verify]; [self.classMock verify];
} }
@ -204,9 +206,9 @@
OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock);
[[self.classMock reject] createI420Renderer]; [[self.classMock reject] createI420Renderer];
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
[self.classMock verify]; [self.classMock verify];
@ -214,7 +216,7 @@
[[self.rendererNV12Mock reject] drawFrame:[OCMArg any]]; [[self.rendererNV12Mock reject] drawFrame:[OCMArg any]];
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
} }
@ -228,9 +230,9 @@
OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock); OCMExpect([self.classMock createNV12Renderer]).andReturn(self.rendererNV12Mock);
[[self.classMock reject] createI420Renderer]; [[self.classMock reject] createI420Renderer];
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
[self.classMock verify]; [self.classMock verify];
@ -240,7 +242,7 @@
OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]); OCMExpect([self.rendererNV12Mock drawFrame:self.frameMock]);
[realView renderFrame:self.frameMock]; [realView renderFrame:self.frameMock];
[realView drawInMTKView:nil]; [realView drawInMTKView:realView.metalView];
[self.rendererNV12Mock verify]; [self.rendererNV12Mock verify];
} }
@ -252,7 +254,7 @@
CGSize size = CGSizeMake(640, 480); CGSize size = CGSizeMake(640, 480);
OCMExpect([delegateMock videoView:[OCMArg any] didChangeVideoSize:size]); OCMExpect([delegateMock videoView:[OCMArg any] didChangeVideoSize:size]);
RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] init]; RTCMTLVideoView *realView = [[RTCMTLVideoView alloc] initWithFrame:CGRectMake(0, 0, 640, 480)];
realView.delegate = delegateMock; realView.delegate = delegateMock;
[realView setSize:size]; [realView setSize:size];