From 63dfd60b2301fd3fc1c536eff45703a4ec91cb47 Mon Sep 17 00:00:00 2001 From: Schneider Victor-Tulias Date: Mon, 30 Sep 2024 16:32:15 -0400 Subject: [PATCH] Add debug memory logs to AbstractLauncherUiTest Flag: EXEMPT test debug logs Bug: 365628676 Test: TAPL tests Change-Id: Ia019bc128b76b9b2d776c54ad93713ae4110b2de --- .../launcher3/ui/AbstractLauncherUiTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 68004bb058..cee88ac047 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -26,6 +26,7 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; @@ -103,6 +104,8 @@ public abstract class AbstractLauncherUiTest { public static final long DEFAULT_UI_TIMEOUT = TestUtil.DEFAULT_UI_TIMEOUT; private static final String TAG = "AbstractLauncherUiTest"; + private static final long BYTES_PER_MEGABYTE = 1 << 20; + private static boolean sDumpWasGenerated = false; private static boolean sActivityLeakReported = false; private static boolean sSeenKeyguard = false; @@ -124,6 +127,10 @@ public abstract class AbstractLauncherUiTest { protected String mTargetPackage; private int mLauncherPid; + private final ActivityManager.MemoryInfo mMemoryInfo = new ActivityManager.MemoryInfo(); + private final ActivityManager mActivityManager; + private long mMemoryBefore; + /** Detects activity leaks and throws an exception if a leak is found. */ public static void checkDetectedLeaks(LauncherInstrumentation launcher) { checkDetectedLeaks(launcher, false); @@ -192,6 +199,8 @@ public abstract class AbstractLauncherUiTest { } protected AbstractLauncherUiTest() { + mActivityManager = InstrumentationRegistry.getContext() + .getSystemService(ActivityManager.class); mLauncher.enableCheckEventsForSuccessfulGestures(); mLauncher.setAnomalyChecker(AbstractLauncherUiTest::verifyKeyguardInvisible); try { @@ -311,6 +320,26 @@ public abstract class AbstractLauncherUiTest { initialize(this); } + private long getAvailableMemory() { + mActivityManager.getMemoryInfo(mMemoryInfo); + + return Math.divideExact(mMemoryInfo.availMem, BYTES_PER_MEGABYTE); + } + + @Before + public void saveMemoryBefore() { + mMemoryBefore = getAvailableMemory(); + } + + @After + public void logMemoryAfter() { + long memoryAfter = getAvailableMemory(); + + Log.d(TAG, "Available memory: before=" + mMemoryBefore + + "MB, after=" + memoryAfter + + "MB, delta=" + (memoryAfter - mMemoryBefore) + "MB"); + } + /** Method that should be called when a test starts. */ public static void onTestStart() { waitForSetupWizardDismissal();