summaryrefslogtreecommitdiffstats
path: root/benchmarks/regression/SSLSocketBenchmark.java
diff options
context:
space:
mode:
authorTsu Chiang Chuang <tsu@google.com>2013-03-26 17:38:46 -0700
committerTsu Chiang Chuang <tsu@google.com>2013-03-28 14:47:03 -0700
commit5a7833b406bb2716b057d3ed923f22f1f86b2a20 (patch)
tree7d0e79a91c627918879d379bc6362d20f79b512f /benchmarks/regression/SSLSocketBenchmark.java
parent0b2e0fc3b8b8886cfebd27d279383d8cae61102d (diff)
downloadlibcore-5a7833b406bb2716b057d3ed923f22f1f86b2a20.zip
libcore-5a7833b406bb2716b057d3ed923f22f1f86b2a20.tar.gz
libcore-5a7833b406bb2716b057d3ed923f22f1f86b2a20.tar.bz2
Build Caliper microbenchmark tests.Also fix the URLConnectionBenchmark tests to use the external/mockwebserver.
Change-Id: I48ec32e94f992fe570a6d729bb38971b3f211188
Diffstat (limited to 'benchmarks/regression/SSLSocketBenchmark.java')
-rw-r--r--benchmarks/regression/SSLSocketBenchmark.java109
1 files changed, 0 insertions, 109 deletions
diff --git a/benchmarks/regression/SSLSocketBenchmark.java b/benchmarks/regression/SSLSocketBenchmark.java
deleted file mode 100644
index fd72a79..0000000
--- a/benchmarks/regression/SSLSocketBenchmark.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package benchmarks.regression;
-
-import com.google.caliper.Param;
-import com.google.caliper.SimpleBenchmark;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.URL;
-import javax.net.SocketFactory;
-import javax.net.ssl.SSLContext;
-
-public class SSLSocketBenchmark extends SimpleBenchmark {
-
- private static final int BUFFER_SIZE = 8192;
-
- final byte[] buffer = new byte[BUFFER_SIZE];
-
- @Param private WebSite webSite;
-
- public enum WebSite {
- DOCS("https://docs.google.com"),
- MAIL("https://mail.google.com"),
- SITES("https://sites.google.com"),
- WWW("https://www.google.com");
- final InetAddress host;
- final int port;
- final byte[] request;
- WebSite(String uri) {
- try {
- URL url = new URL(uri);
-
- this.host = InetAddress.getByName(url.getHost());
-
- int p = url.getPort();
- String portString;
- if (p == -1) {
- this.port = 443;
- portString = "";
- } else {
- this.port = p;
- portString = ":" + port;
- }
-
- this.request = ("GET " + uri + " HTTP/1.0\r\n"
- + "Host: " + host + portString + "\r\n"
- +"\r\n").getBytes();
-
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- @Param private Implementation implementation;
-
- public enum Implementation { OPENSSL, HARMONY };
-
- private SocketFactory sf;
-
- @Override protected void setUp() throws Exception {
- SSLContext sslContext;
- switch (implementation) {
- case OPENSSL:
- sslContext = SSLContext.getInstance("SSL", "AndroidOpenSSL");
- break;
- case HARMONY:
- sslContext = SSLContext.getInstance("SSL", "HarmonyJSSE");
- break;
- default:
- throw new RuntimeException(implementation.toString());
- }
- sslContext.init(null, null, null);
- this.sf = sslContext.getSocketFactory();
- }
-
- public void time(int reps) throws Exception {
- for (int i = 0; i < reps; ++i) {
- Socket s = sf.createSocket(webSite.host, webSite.port);
- OutputStream out = s.getOutputStream();
- out.write(webSite.request);
- InputStream in = s.getInputStream();
- while (true) {
- int n = in.read(buffer);
- if (n == -1) {
- break;
- }
- }
- in.close();
- }
- }
-}