Fix Android peer connection client instrumentation tests.
- Updated Java VideoRenderer removes setSize() from video renderer interface.
Remove no longer valid test, which requires setSize() call before any
frame can be rendered.
- test_runner.py tries to run private member of InstrumentationTestCase class.
Workaround it by renaming private loopback test method.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47549004
Cr-Commit-Position: refs/heads/master@{#8707}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8707 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java b/talk/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java
index 5978465..487c031 100644
--- a/talk/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java
+++ b/talk/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java
@@ -61,6 +61,8 @@
private static final String VIDEO_CODEC_H264 = "H264";
private static final int AUDIO_RUN_TIMEOUT = 1000;
private static final String DTLS_SRTP_KEY_AGREEMENT_CONSTRAINT = "DtlsSrtpKeyAgreement";
+ private static final String LOCAL_RENDERER_NAME = "Local renderer";
+ private static final String REMOTE_RENDERER_NAME = "Remote renderer";
// The peer connection client is assumed to be thread safe in itself; the
// reference is written by the test thread and read by worker threads.
@@ -81,43 +83,36 @@
// Mock renderer implementation.
private static class MockRenderer implements VideoRenderer.Callbacks {
// These are protected by 'this' since we gets called from worker threads.
- private int width = -1;
- private int height = -1;
+ private String rendererName;
private boolean renderFrameCalled = false;
- private boolean setSizeCalledBeforeRenderFrame = false;
// Thread-safe in itself.
private CountDownLatch doneRendering;
- public MockRenderer(int expectedFrames) {
+ public MockRenderer(int expectedFrames, String rendererName) {
+ this.rendererName = rendererName;
reset(expectedFrames);
}
// Resets render to wait for new amount of video frames.
public synchronized void reset(int expectedFrames) {
+ renderFrameCalled = false;
doneRendering = new CountDownLatch(expectedFrames);
}
- private synchronized void setSize(int width, int height) {
- Log.d(TAG, "Set size: " + width + " x " + height);
- this.width = width;
- this.height = height;
- if (!renderFrameCalled) {
- setSizeCalledBeforeRenderFrame = true;
- }
- }
-
@Override
public synchronized void renderFrame(VideoRenderer.I420Frame frame) {
+ if (!renderFrameCalled) {
+ if (rendererName != null) {
+ Log.d(TAG, rendererName + " render frame: " + frame.width + " x " + frame.height);
+ } else {
+ Log.d(TAG, "Render frame: " + frame.width + " x " + frame.height);
+ }
+ }
renderFrameCalled = true;
doneRendering.countDown();
}
- public synchronized int getWidth() { return width; }
- public synchronized int getHeight() { return height; }
- public synchronized boolean setSizeCalledBeforeRenderFrame() {
- return setSizeCalledBeforeRenderFrame;
- }
// This method shouldn't hold any locks or touch member variables since it
// blocks.
@@ -288,9 +283,9 @@
public void testSetLocalOfferMakesVideoFlowLocally()
throws InterruptedException {
Log.d(TAG, "testSetLocalOfferMakesVideoFlowLocally");
- MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
+ MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME);
pcClient = createPeerConnectionClient(
- localRenderer, new MockRenderer(0), true, VIDEO_CODEC_VP8);
+ localRenderer, new MockRenderer(0, null), true, VIDEO_CODEC_VP8);
// Wait for local SDP and ice candidates set events.
assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT));
@@ -307,38 +302,15 @@
Log.d(TAG, "testSetLocalOfferMakesVideoFlowLocally Done.");
}
- public void testSizeIsSetBeforeStartingToRender()
- throws InterruptedException {
- Log.d(TAG, "testSizeIsSetBeforeStartingToRender");
- MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
- pcClient = createPeerConnectionClient(
- localRenderer, new MockRenderer(0), true, VIDEO_CODEC_VP8);
-
- waitForLocalSDP(WAIT_TIMEOUT);
- waitForIceCandidates(WAIT_TIMEOUT);
-
- // Check that local video frames were rendered.
- assertTrue("Local video frames were not rendered.",
- localRenderer.waitForFramesRendered(WAIT_TIMEOUT));
- assertTrue("Should have set size before rendering frames; size wasn't set",
- localRenderer.setSizeCalledBeforeRenderFrame());
- assertTrue(localRenderer.getWidth() > 0);
- assertTrue(localRenderer.getHeight() > 0);
-
- pcClient.close();
- waitForPeerConnectionClosed(WAIT_TIMEOUT);
- Log.d(TAG, "testSizeIsSetBeforeStartingToRender Done.");
- }
-
- private void testLoopback(boolean enableVideo, String videoCodec)
+ private void doLoopbackTest(boolean enableVideo, String videoCodec)
throws InterruptedException {
loopback = true;
MockRenderer localRenderer = null;
MockRenderer remoteRenderer = null;
if (enableVideo) {
Log.d(TAG, "testLoopback for video " + videoCodec);
- localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
- remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
+ localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME);
+ remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME);
} else {
Log.d(TAG, "testLoopback for audio.");
}
@@ -373,19 +345,19 @@
}
public void testLoopbackAudio() throws InterruptedException {
- testLoopback(false, VIDEO_CODEC_VP8);
+ doLoopbackTest(false, VIDEO_CODEC_VP8);
}
public void testLoopbackVp8() throws InterruptedException {
- testLoopback(true, VIDEO_CODEC_VP8);
+ doLoopbackTest(true, VIDEO_CODEC_VP8);
}
public void testLoopbackVp9() throws InterruptedException {
- testLoopback(true, VIDEO_CODEC_VP9);
+ doLoopbackTest(true, VIDEO_CODEC_VP9);
}
public void testLoopbackH264() throws InterruptedException {
- testLoopback(true, VIDEO_CODEC_H264);
+ doLoopbackTest(true, VIDEO_CODEC_H264);
}
// Checks if default front camera can be switched to back camera and then
@@ -394,8 +366,8 @@
Log.d(TAG, "testCameraSwitch");
loopback = true;
- MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
- MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
+ MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME);
+ MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME);
pcClient = createPeerConnectionClient(
localRenderer, remoteRenderer, true, VIDEO_CODEC_VP8);
@@ -440,8 +412,8 @@
Log.d(TAG, "testVideoSourceRestart");
loopback = true;
- MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
- MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES);
+ MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME);
+ MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME);
pcClient = createPeerConnectionClient(
localRenderer, remoteRenderer, true, VIDEO_CODEC_VP8);