Merge pull request #934 from whym/leakcanary

Disable LeakCanary for Robolectric tests
This commit is contained in:
Josephine Lim 2017-11-04 17:40:29 +10:00 committed by GitHub
commit 6e52df99a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 6 deletions

View file

@ -17,6 +17,7 @@ import android.support.v4.util.LruCache;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.stetho.Stetho;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;
import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
@ -117,12 +118,8 @@ public class CommonsApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
setupLeakCanary();
Timber.plant(new Timber.DebugTree());
@ -143,6 +140,13 @@ public class CommonsApplication extends Application {
cacheData = new CacheController();
}
protected RefWatcher setupLeakCanary() {
if (LeakCanary.isInAnalyzerProcess(this)) {
return RefWatcher.DISABLED;
}
return LeakCanary.install(this);
}
/**
* @return Account|null
*/

View file

@ -0,0 +1,11 @@
package fr.free.nrw.commons;
import com.squareup.leakcanary.RefWatcher;
// This class is automatically discovered by Robolectric
public class TestCommonsApplication extends CommonsApplication {
@Override protected RefWatcher setupLeakCanary() {
// No leakcanary in unit tests.
return RefWatcher.DISABLED;
}
}