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

Unified Diff: components/cronet/android/test/javaperftests/src/org/chromium/net/CronetPerfTestActivity.java

Issue 1536433002: [Cronet] Get Cronet performance test running again (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: branch off telemetry change Created 4 years, 11 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
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();

Powered by Google App Engine
This is Rietveld 408576698