Parameterize EglRendererTest to also run with RenderSynchronizer

Bug: b/307672498
Change-Id: I3577bdcaf1dc4c4ccca02e8d9e53a799b680ecc1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325183
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Linus Nilsson <lnilsson@webrtc.org>
Auto-Submit: Linus Nilsson <lnilsson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41027}
This commit is contained in:
Linus Nilsson 2023-10-26 20:00:43 +02:00 committed by WebRTC LUCI CQ
parent 1d586debab
commit 7a30b97e02

View File

@ -26,12 +26,18 @@ import androidx.test.filters.SmallTest;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
// EmptyActivity is needed for the surface. // EmptyActivity is needed for the surface.
@RunWith(Parameterized.class)
public class EglRendererTest { public class EglRendererTest {
private final static String TAG = "EglRendererTest"; private final static String TAG = "EglRendererTest";
private final static int RENDER_WAIT_MS = 1000; private final static int RENDER_WAIT_MS = 1000;
@ -100,6 +106,9 @@ public class EglRendererTest {
} }
} }
@Parameter(0)
public boolean useRenderSynchronizer;
final TestFrameListener testFrameListener = new TestFrameListener(); final TestFrameListener testFrameListener = new TestFrameListener();
EglRenderer eglRenderer; EglRenderer eglRenderer;
@ -108,14 +117,24 @@ public class EglRendererTest {
int oesTextureId; int oesTextureId;
SurfaceTexture surfaceTexture; SurfaceTexture surfaceTexture;
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[] {true}, new Object[] {false});
}
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions
.builder(InstrumentationRegistry.getTargetContext()) .builder(InstrumentationRegistry.getTargetContext())
.setNativeLibraryName(TestConstants.NATIVE_LIBRARY) .setNativeLibraryName(TestConstants.NATIVE_LIBRARY)
.createInitializationOptions()); .createInitializationOptions());
RenderSynchronizer renderSynchronizer = useRenderSynchronizer ? new RenderSynchronizer() : null;
eglThread = eglThread =
EglThread.create(null /* releaseMonitor */, null /* sharedContext */, EglBase.CONFIG_RGBA); EglThread.create(
null /* releaseMonitor */,
null /* sharedContext */,
EglBase.CONFIG_RGBA,
renderSynchronizer);
eglRenderer = new EglRenderer("TestRenderer: "); eglRenderer = new EglRenderer("TestRenderer: ");
eglRenderer.init(eglThread, new GlRectDrawer(), false /* usePresentationTimeStamp */); eglRenderer.init(eglThread, new GlRectDrawer(), false /* usePresentationTimeStamp */);
oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES); oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);