Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java

Issue 1354913002: Make PeerConnectionTest.doTest wait for ice candidates (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Added import List Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java
diff --git a/talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java b/talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java
index 870b2e5827b8dbdd66186c19b0b811cb63bfecc4..7affbd9e6fb8ec8c4960df5336a7f5d2f0bd6282 100644
--- a/talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java
+++ b/talk/app/webrtc/java/testcommon/src/org/webrtc/PeerConnectionTest.java
@@ -38,6 +38,7 @@ import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.IdentityHashMap;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.concurrent.CountDownLatch;
@@ -72,7 +73,7 @@ public class PeerConnectionTest {
new LinkedList<String>();
private LinkedList<String> expectedRemoveStreamLabels =
new LinkedList<String>();
- public LinkedList<IceCandidate> gotIceCandidates =
+ private final LinkedList<IceCandidate> gotIceCandidates =
new LinkedList<IceCandidate>();
private Map<MediaStream, WeakReference<VideoRenderer>> renderers =
new IdentityHashMap<MediaStream, WeakReference<VideoRenderer>>();
@@ -109,7 +110,10 @@ public class PeerConnectionTest {
// We don't assert expectedIceCandidates >= 0 because it's hard to know
// how many to expect, in general. We only use expectIceCandidates to
// assert a minimal count.
- gotIceCandidates.add(candidate);
+ synchronized (gotIceCandidates) {
+ gotIceCandidates.add(candidate);
+ gotIceCandidates.notifyAll();
+ }
}
private synchronized void setSize(int width, int height) {
@@ -376,6 +380,17 @@ public class PeerConnectionTest {
(new Throwable()).getStackTrace()[1]);
}
}
+
+ // This methods return a list of all currently gathered ice candidates or waits until
+ // 1 candidate have been gathered.
+ public List<IceCandidate> getAtLeastOneIceCandidate() throws InterruptedException {
+ synchronized (gotIceCandidates) {
+ while (gotIceCandidates.isEmpty()) {
+ gotIceCandidates.wait();
+ }
+ return new LinkedList<IceCandidate>(gotIceCandidates);
+ }
+ }
}
private static class SdpObserverLatch implements SdpObserver {
@@ -634,14 +649,17 @@ public class PeerConnectionTest {
answeringExpectations.expectDataChannel("offeringDC");
answeringExpectations.expectStateChange(DataChannel.State.OPEN);
- for (IceCandidate candidate : offeringExpectations.gotIceCandidates) {
+ // Wait for at least one ice candidate from the offering PC and forward them to the answering
+ // PC.
+ for (IceCandidate candidate : offeringExpectations.getAtLeastOneIceCandidate()) {
answeringPC.addIceCandidate(candidate);
}
- offeringExpectations.gotIceCandidates.clear();
- for (IceCandidate candidate : answeringExpectations.gotIceCandidates) {
+
+ // Wait for at least one ice candidate from the answering PC and forward them to the offering
+ // PC.
+ for (IceCandidate candidate : answeringExpectations.getAtLeastOneIceCandidate()) {
offeringPC.addIceCandidate(candidate);
}
- answeringExpectations.gotIceCandidates.clear();
offeringExpectations.waitForAllExpectationsToBeSatisfied();
answeringExpectations.waitForAllExpectationsToBeSatisfied();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698