Commit e2d97b2a authored by Helen Li's avatar Helen Li Committed by Commit Bot

[cronet] Deflake BidirectionalStreamTest#testFlushData

This CL gets rid of the dependency on setAutoAdvance(false), which
might have disabled the reading of data.

If reading of data is paused during the time mAutoAdvance = false,
when we set mAutoAdvance to true, startNextRead() won't be called
automatically. If we don't startNextRead(), Callback#onSucceeded()
will not be called.

Bug: 751700
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester
Change-Id: I47fa37fb5d71c4ec0fcda5d6fd2ff762c08505d5
Reviewed-on: https://chromium-review.googlesource.com/598992Reviewed-by: default avatarPaul Jensen <pauljensen@chromium.org>
Commit-Queue: Helen Li <xunjieli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492015}
parent cd39e5b0
......@@ -312,9 +312,17 @@ public class BidirectionalStreamTest extends CronetTestBase {
// before it is called, and it doesn't flush buffers in mPendingQueue.
public void testFlushData() throws Exception {
String url = Http2TestServer.getEchoStreamUrl();
final ConditionVariable waitOnStreamReady = new ConditionVariable();
TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback() {
// Number of onWriteCompleted callbacks that have been invoked.
private int mNumWriteCompleted = 0;
@Override
public void onStreamReady(BidirectionalStream stream) {
mResponseStep = ResponseStep.ON_STREAM_READY;
waitOnStreamReady.open();
}
@Override
public void onWriteCompleted(BidirectionalStream stream, UrlResponseInfo info,
ByteBuffer buffer, boolean endOfStream) {
......@@ -365,9 +373,8 @@ public class BidirectionalStreamTest extends CronetTestBase {
.addHeader("empty", "")
.addHeader("Content-Type", "zebra")
.build();
callback.setAutoAdvance(false);
stream.start();
callback.waitForNextWriteStep(); // onStreamReady
waitOnStreamReady.block();
assertEquals(0, stream.getPendingDataForTesting().size());
assertEquals(0, stream.getFlushDataForTesting().size());
......@@ -379,7 +386,6 @@ public class BidirectionalStreamTest extends CronetTestBase {
// Write 6, but do not flush. 6 will be in pending queue.
callback.startNextWrite(stream);
callback.setAutoAdvance(true);
callback.blockForDone();
assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
assertEquals("123456", callback.mResponseAsString);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment