| Index: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
|
| index 5353b8a9cf40674832f1c17e5c0e1a26adf5d481..5fbfcbf4a43c4c234ea68988fec508afe9557723 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
|
| @@ -1125,4 +1125,30 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
|
| assertTrue(loader.wasCalled());
|
| }
|
| }
|
| +
|
| + // Creates a CronetEngine on another thread and then one on the main thread. This shouldn't
|
| + // crash.
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| + public void testThreadedStartup() throws Exception {
|
| + final ConditionVariable otherThreadDone = new ConditionVariable();
|
| + final ConditionVariable uiThreadDone = new ConditionVariable();
|
| + new Handler(Looper.getMainLooper()).post(new Runnable() {
|
| + public void run() {
|
| + final CronetEngine.Builder builder =
|
| + new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests");
|
| + new Thread() {
|
| + public void run() {
|
| + CronetEngine cronetEngine = builder.build();
|
| + otherThreadDone.open();
|
| + cronetEngine.shutdown();
|
| + }
|
| + }.start();
|
| + otherThreadDone.block();
|
| + builder.build().shutdown();
|
| + uiThreadDone.open();
|
| + }
|
| + });
|
| + assertTrue(uiThreadDone.block(1000));
|
| + }
|
| }
|
|
|