commit | 80dc43a961235f35dd6859e6375c84825a5986e0 | [log] [tgz] |
---|---|---|
author | Neil Fuller <nfuller@google.com> | Mon Oct 06 10:46:55 2014 +0100 |
committer | Neil Fuller <nfuller@google.com> | Wed Oct 15 14:02:50 2014 +0100 |
tree | 777cf754c603530c294848d2897a332597b230ff | |
parent | 2ef5d26d620c505a2ce83f6ff580cccd66242a04 [diff] |
Fix OkHttp test failure for fast devices On a fast device the ThreadInterruptTest#interruptWritingRequestBody would consistently fail. The issue is probably a combination of socket buffering and the data volume chosen by the test. The test was written to assume that read-side throttling would prevent the writer from writing its data within 500 millis. After ~500 millis the write thread would be interrupted and the test would pass. On a fast device the test would write all the test data in ~ 125 millis and the test would fail. The interruption would then trigger on a later test (typically URLConnectionTest#authenticateWithGetAndTransparentGzip), breaking that test as well. If there is sufficient socket-level read/write buffering it is possible the data being written will just fill the socket buffers and the writer will terminate early. If the data to be written is increased from 2 to 10 MB the test passes. Bug: 17516838 (cherry-picked from commit e3bfefb13c93006a2fbe22363572a314f6c18659) Change-Id: Id832c366611d19a0e771b5dfb58a716b17221f95
An HTTP & SPDY client for Android and Java applications.
For more information please see the website.
Download the latest JAR or grab via Maven:
<dependency> <groupId>com.squareup.okhttp</groupId> <artifactId>okhttp</artifactId> <version>(insert latest version)</version> </dependency>
OkHttp requires Java 7 to build and run tests. Runtime compatibility with Java 6 is enforced as part of the build to ensure compliance with Android and older versions of the JVM.
Run OkHttp tests on the desktop with Maven. Running SPDY tests on the desktop uses Jetty-NPN which requires OpenJDK 7+.
mvn clean test
OkHttp's test suite creates an in-process HTTPS server. Prior to Android 2.3, SSL server sockets were broken, and so HTTPS tests will time out when run on such devices.
Test on a USB-attached Android using Vogar. Unfortunately dx
requires that you build with Java 6, otherwise the test class will be silently omitted from the .dex
file.
mvn clean mvn package -DskipTests vogar \ --classpath ~/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar \ --classpath mockwebserver/target/mockwebserver-2.0.0-SNAPSHOT.jar \ --classpath okhttp-protocols/target/okhttp-protocols-2.0.0-SNAPSHOT.jar \ --classpath okhttp/target/okhttp-2.0.0-SNAPSHOT.jar \ okhttp/src/test
A library for testing HTTP, HTTPS, HTTP/2.0, and SPDY clients.
MockWebServer coupling with OkHttp is essential for proper testing of SPDY and HTTP/2.0 so that code can be shared.
Download the latest JAR or grab via Maven:
<dependency> <groupId>com.squareup.okhttp</groupId> <artifactId>mockwebserver</artifactId> <version>(insert latest version)</version> <scope>test</scope> </dependency>
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.