Merge "Correctly generating heap dumps for OOP tests"

This commit is contained in:
TreeHugger Robot
2021-01-20 18:45:11 +00:00
committed by Android (Google) Code Review

View File

@@ -100,6 +100,7 @@ public abstract class AbstractLauncherUiTest {
private static final String TAG = "AbstractLauncherUiTest";
private static String sStrictmodeDetectedActivityLeak;
private static boolean sDumpWasGenerated = false;
private static boolean sActivityLeakReported;
private static final String SYSTEMUI_PACKAGE = "com.android.systemui";
protected static final ActivityLeakTracker ACTIVITY_LEAK_TRACKER = new ActivityLeakTracker();
@@ -151,10 +152,18 @@ public abstract class AbstractLauncherUiTest {
}
public static String dumpHprofData() {
if (sDumpWasGenerated) return "dump has already been generated by another test";
try {
final String fileName = getInstrumentation().getTargetContext().getFilesDir().getPath()
+ "/ActivityLeakHeapDump.hprof";
Debug.dumpHprofData(fileName);
if (TestHelpers.isInLauncherProcess()) {
Debug.dumpHprofData(fileName);
} else {
final UiDevice device = UiDevice.getInstance(getInstrumentation());
device.executeShellCommand(
"am dumpheap " + device.getLauncherPackageName() + " " + fileName);
}
sDumpWasGenerated = true;
return "memory dump filename: " + fileName;
} catch (Throwable e) {
Log.e(TAG, "dumpHprofData failed", e);