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

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java

Issue 2903193002: [Cronet] Fix two races/leaks in JavaUrlRequest (Closed)
Patch Set: whoops, put back JavaUrlRequest.java Created 3 years, 7 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/javatests/src/org/chromium/net/CronetTestBase.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
index 581dfb6f6bfc203098cf995e05d265f96decbe8a..8776d13660ce9c84f538a7ec26df1fe4e0ab80a1 100644
--- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestBase.java
@@ -5,6 +5,7 @@
package org.chromium.net;
import android.content.Context;
+import android.os.StrictMode;
import android.test.AndroidTestCase;
import org.chromium.base.ContextUtils;
@@ -62,6 +63,7 @@ public class CronetTestBase extends AndroidTestCase {
// {@code true} when test is being run against system HttpURLConnection implementation.
private boolean mTestingSystemHttpURLConnection;
private boolean mTestingJavaImpl = false;
+ private StrictMode.VmPolicy mOldVmPolicy;
@Override
protected void setUp() throws Exception {
@@ -70,6 +72,29 @@ public class CronetTestBase extends AndroidTestCase {
ContextUtils.initApplicationContext(getContext().getApplicationContext());
PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX);
prepareTestStorage(getContext());
+ mOldVmPolicy = StrictMode.getVmPolicy();
+ StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
+ .detectLeakedClosableObjects()
+ .penaltyLog()
+ .penaltyDeath()
+ .build());
+ }
+
+ @SuppressFBWarnings("DM_GC") // Used to trigger strictmode detecting leaked closeables
+ @Override
+ protected void tearDown() throws Exception {
+ try {
+ // Run GC and finalizers a few times to pick up leaked closeables
+ for (int i = 0; i < 10; i++) {
+ System.gc();
+ System.runFinalization();
+ }
+ System.gc();
+ System.runFinalization();
+ super.tearDown();
+ } finally {
+ StrictMode.setVmPolicy(mOldVmPolicy);
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698