Index: components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java |
diff --git a/components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java b/components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java |
index 775974e3f6c560202c38d5f671539af13773d71d..121192b8283eede799ad0afb429508ee323ea331 100644 |
--- a/components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java |
+++ b/components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java |
@@ -11,6 +11,8 @@ import android.os.AsyncTask; |
import android.os.Bundle; |
import android.os.Debug; |
+import org.chromium.base.PathUtils; |
+ |
import org.json.JSONException; |
import org.json.JSONObject; |
@@ -38,6 +40,7 @@ import java.util.concurrent.TimeUnit; |
* Runs networking benchmarks and saves results to a file. |
*/ |
public class CronetPerfTestActivity extends Activity { |
+ private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "cronet_perf_test"; |
// Benchmark configuration passed down from host via Intent data. |
// Call getConfig*(key) to extract individual configuration values. |
private Uri mConfig; |
@@ -160,31 +163,52 @@ public class CronetPerfTestActivity extends Activity { |
default: |
throw new IllegalArgumentException("Unknown size: " + size); |
} |
+ final String scheme; |
+ final String host; |
final int port; |
switch (protocol) { |
case HTTP: |
+ scheme = "http"; |
+ host = getConfigString("HOST_IP"); |
port = getConfigInt("HTTP_PORT"); |
break; |
case QUIC: |
+ scheme = "https"; |
+ host = getConfigString("HOST"); |
port = getConfigInt("QUIC_PORT"); |
break; |
default: |
throw new IllegalArgumentException("Unknown protocol: " + protocol); |
} |
try { |
- mUrl = new URL("http", getConfigString("HOST"), port, resource); |
+ mUrl = new URL(scheme, host, port, resource); |
} catch (MalformedURLException e) { |
- throw new IllegalArgumentException("Bad URL: " + getConfigString("HOST") + ":" |
- + port + "/" + resource); |
+ throw new IllegalArgumentException( |
+ "Bad URL: " + host + ":" + port + "/" + resource); |
} |
final CronetEngine.Builder cronetEngineBuilder = |
new CronetEngine.Builder(CronetPerfTestActivity.this); |
+ cronetEngineBuilder.setLibraryName("cronet_tests"); |
if (mProtocol == Protocol.QUIC) { |
cronetEngineBuilder.enableQUIC(true); |
- cronetEngineBuilder.addQuicHint(getConfigString("HOST"), getConfigInt("QUIC_PORT"), |
- getConfigInt("QUIC_PORT")); |
+ cronetEngineBuilder.addQuicHint(host, port, port); |
+ cronetEngineBuilder.setMockCertVerifierForTesting( |
+ MockCertVerifier.createMockCertVerifier( |
+ new String[] {getConfigString("QUIC_CERT_FILE")})); |
+ } |
+ |
+ try { |
+ JSONObject quicParams = new JSONObject().put("host_whitelist", host); |
mef
2016/01/22 16:21:57
nice touch!
pauljensen
2016/01/25 02:47:48
Acknowledged.
|
+ JSONObject experimentalOptions = new JSONObject().put("QUIC", quicParams); |
+ cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString()); |
+ } catch (JSONException e) { |
+ throw new IllegalStateException("JSON failed: " + e); |
} |
mCronetEngine = cronetEngineBuilder.build(); |
+ long urlRequestContextAdapter = |
+ ((CronetUrlRequestContext) mCronetEngine).getUrlRequestContextAdapter(); |
+ CronetTestUtil.registerHostResolverProc( |
mef
2016/01/22 16:21:57
Can we change CronetTestUtil.registerHostResolverP
pauljensen
2016/01/25 02:47:47
Done.
|
+ urlRequestContextAdapter, false, getConfigString("HOST_IP")); |
mName = buildBenchmarkName(mode, direction, protocol, concurrency, mIterations); |
mConcurrency = concurrency; |
mResults = results; |
@@ -383,6 +407,7 @@ public class CronetPerfTestActivity extends Activity { |
private class Callback extends UrlRequest.Callback { |
private final ByteBuffer mBuffer; |
private final Runnable mCompletionCallback; |
+ private int mBytesReceived; |
Callback(ByteBuffer buffer, Runnable completionCallback) { |
mBuffer = buffer; |
@@ -404,12 +429,18 @@ public class CronetPerfTestActivity extends Activity { |
@Override |
public void onReadCompleted( |
UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer) { |
+ mBytesReceived += byteBuffer.position(); |
mBuffer.clear(); |
request.readNew(mBuffer); |
} |
@Override |
public void onSucceeded(UrlRequest request, UrlResponseInfo info) { |
+ if (info.getHttpStatusCode() != 200 || mBytesReceived != mLength) { |
+ System.out.println("Failed: response code: " + info.getHttpStatusCode() |
+ + " bytes: " + mBytesReceived); |
+ mFailed = true; |
+ } |
mCompletionCallback.run(); |
} |
@@ -582,6 +613,7 @@ public class CronetPerfTestActivity extends Activity { |
@Override |
public void onCreate(Bundle savedInstanceState) { |
super.onCreate(savedInstanceState); |
+ PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX, this); |
mConfig = getIntent().getData(); |
// Execute benchmarks on another thread to avoid networking on main thread. |
new BenchmarkTask().execute(); |