Chromium Code Reviews| 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(); |