Merge "Detect leaks only on test success Bug: 191690396 Test: presubmit" into sc-dev
diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
index 9630d27..a683d01 100644
--- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
+++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
@@ -107,7 +107,7 @@
mOrderSensitiveRules = RuleChain
.outerRule(new NavigationModeSwitchRule(mLauncher))
- .around(new FailureWatcher(mDevice));
+ .around(new FailureWatcher(mDevice, mLauncher));
mOtherLauncherActivity = context.getPackageManager().queryIntentActivities(
getHomeIntentInPackage(context),
diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
index cbd9480..2712bc0 100644
--- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
+++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java
@@ -229,7 +229,7 @@
protected TestRule getRulesInsideActivityMonitor() {
final RuleChain inner = RuleChain.outerRule(new PortraitLandscapeRunner(this))
- .around(new FailureWatcher(mDevice));
+ .around(new FailureWatcher(mDevice, mLauncher));
return TestHelpers.isInLauncherProcess()
? RuleChain.outerRule(ShellCommandRule.setDefaultLauncher())
@@ -310,7 +310,6 @@
assertEquals("Launcher crashed, pid mismatch:",
mLauncherPid, mLauncher.getPid().intValue());
}
- checkDetectedLeaks(mLauncher);
} finally {
mLauncher.onTestFinish();
}
@@ -618,5 +617,6 @@
isResumed);
}
- protected void onLauncherActivityClose(Launcher launcher) { }
+ protected void onLauncherActivityClose(Launcher launcher) {
+ }
}
diff --git a/tests/src/com/android/launcher3/util/rule/FailureWatcher.java b/tests/src/com/android/launcher3/util/rule/FailureWatcher.java
index cdda0f0..4c47947 100644
--- a/tests/src/com/android/launcher3/util/rule/FailureWatcher.java
+++ b/tests/src/com/android/launcher3/util/rule/FailureWatcher.java
@@ -6,6 +6,9 @@
import androidx.test.uiautomator.UiDevice;
+import com.android.launcher3.tapl.LauncherInstrumentation;
+import com.android.launcher3.ui.AbstractLauncherUiTest;
+
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
@@ -16,9 +19,11 @@
public class FailureWatcher extends TestWatcher {
private static final String TAG = "FailureWatcher";
final private UiDevice mDevice;
+ private final LauncherInstrumentation mLauncher;
- public FailureWatcher(UiDevice device) {
+ public FailureWatcher(UiDevice device, LauncherInstrumentation launcher) {
mDevice = device;
+ mLauncher = launcher;
}
private static void dumpViewHierarchy(UiDevice device) {
@@ -36,6 +41,12 @@
}
@Override
+ protected void succeeded(Description description) {
+ super.succeeded(description);
+ AbstractLauncherUiTest.checkDetectedLeaks(mLauncher);
+ }
+
+ @Override
protected void failed(Throwable e, Description description) {
onError(mDevice, description, e);
}