Merge "Diagnosing only system health problems happened during the test" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-05-11 00:31:33 +00:00
committed by Android (Google) Code Review
3 changed files with 42 additions and 17 deletions

View File

@@ -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

View File

@@ -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() {

View File

@@ -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;