From eefc2e1de1854ed20928176410adf180b8c0bda1 Mon Sep 17 00:00:00 2001 From: vadimt Date: Fri, 7 May 2021 14:30:26 -0700 Subject: [PATCH] Diagnosing only system health problems happened during the test Test: presubmit Bug: 187761685 Change-Id: I3feba12e2228fe6dda3b0d65d904b0b839da2108 --- .../quickstep/FallbackRecentsTest.java | 16 +++++++++--- .../launcher3/ui/AbstractLauncherUiTest.java | 17 +++++++----- .../tapl/LauncherInstrumentation.java | 26 +++++++++++++------ 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java index f93d87c8c3..1fa21bd395 100644 --- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java +++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java @@ -62,6 +62,7 @@ import com.android.launcher3.util.rule.FailureWatcher; import com.android.quickstep.views.RecentsView; import org.junit.After; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; @@ -142,10 +143,19 @@ public class FallbackRecentsTest { } } + @Before + public void setUp() { + mLauncher.onTestStart(); + } + @After - public void verifyLauncherState() { - // Limits UI tests affecting tests running after them. - AbstractQuickStepTest.checkDetectedLeaks(mLauncher); + public void tearDown() { + try { + // Limits UI tests affecting tests running after them. + AbstractQuickStepTest.checkDetectedLeaks(mLauncher); + } finally { + mLauncher.onTestFinish(); + } } // b/143488140 diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 2a0f7bb6fd..8936f39e88 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -249,6 +249,7 @@ public abstract class AbstractLauncherUiTest { @Before public void setUp() throws Exception { + mLauncher.onTestStart(); Assert.assertTrue("Keyguard is visible, which is likely caused by a crash in SysUI", TestHelpers.wait( Until.gone(By.res(SYSTEMUI_PACKAGE, "keyguard_status_view")), 60000)); @@ -288,13 +289,17 @@ public abstract class AbstractLauncherUiTest { @After public void verifyLauncherState() { - // Limits UI tests affecting tests running after them. - mLauncher.waitForLauncherInitialized(); - if (mLauncherPid != 0) { - assertEquals("Launcher crashed, pid mismatch:", - mLauncherPid, mLauncher.getPid().intValue()); + try { + // Limits UI tests affecting tests running after them. + mLauncher.waitForLauncherInitialized(); + if (mLauncherPid != 0) { + assertEquals("Launcher crashed, pid mismatch:", + mLauncherPid, mLauncher.getPid().intValue()); + } + checkDetectedLeaks(mLauncher); + } finally { + mLauncher.onTestFinish(); } - checkDetectedLeaks(mLauncher); } protected void clearLauncherData() { diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java index e5b93b1890..3dff01ee56 100644 --- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java @@ -95,7 +95,6 @@ public final class LauncherInstrumentation { private static final String TAG = "Tapl"; private static final int ZERO_BUTTON_STEPS_FROM_BACKGROUND_TO_HOME = 20; private static final int GESTURE_STEP_MS = 16; - private static long START_TIME = System.currentTimeMillis(); private static final Pattern EVENT_TOUCH_DOWN = getTouchEventPattern("ACTION_DOWN"); private static final Pattern EVENT_TOUCH_UP = getTouchEventPattern("ACTION_UP"); @@ -107,6 +106,7 @@ public final class LauncherInstrumentation { static final Pattern EVENT_TOUCH_UP_TIS = getTouchEventPatternTIS("ACTION_UP"); private final String mLauncherPackage; private final boolean mIsLauncher3; + private long mTestStartTime = -1; // Types for launcher containers that the user is interacting with. "Background" is a // pseudo-container corresponding to inactive launcher covered by another app. @@ -422,6 +422,14 @@ public final class LauncherInstrumentation { mOnSettledStateAction = onSettledStateAction; } + public void onTestStart() { + mTestStartTime = System.currentTimeMillis(); + } + + public void onTestFinish() { + mTestStartTime = -1; + } + private String formatSystemHealthMessage(String message) { final String testPackage = getContext().getPackageName(); @@ -430,14 +438,16 @@ public final class LauncherInstrumentation { mInstrumentation.getUiAutomation().grantRuntimePermission( testPackage, "android.permission.PACKAGE_USAGE_STATS"); - final String systemHealth = mSystemHealthSupplier != null - ? mSystemHealthSupplier.apply(START_TIME) - : TestHelpers.getSystemHealthMessage(getContext(), START_TIME); + if (mTestStartTime > 0) { + final String systemHealth = mSystemHealthSupplier != null + ? mSystemHealthSupplier.apply(mTestStartTime) + : TestHelpers.getSystemHealthMessage(getContext(), mTestStartTime); - if (systemHealth != null) { - return message - + ",\nperhaps linked to system health problems:\n<<<<<<<<<<<<<<<<<<\n" - + systemHealth + "\n>>>>>>>>>>>>>>>>>>"; + if (systemHealth != null) { + return message + + ",\nperhaps linked to system health problems:\n<<<<<<<<<<<<<<<<<<\n" + + systemHealth + "\n>>>>>>>>>>>>>>>>>>"; + } } return message;