Support for tests that a leak is detected

Bug: 139137636
Change-Id: Ib4f02d6b3798e3fdf3d8e5758c09d2b642404af5
Merged-in: Ib4f02d6b3798e3fdf3d8e5758c09d2b642404af5
This commit is contained in:
vadimt
2019-08-14 17:45:45 -07:00
committed by Vadim Tryshev
parent e17a699618
commit 8c2ae545cf
3 changed files with 39 additions and 0 deletions

View File

@@ -15,7 +15,11 @@
*/
package com.android.launcher3.testing;
import static android.graphics.Bitmap.Config.ARGB_8888;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Debug;
@@ -29,6 +33,7 @@ import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsStore;
import com.android.launcher3.util.ResourceBasedOverride;
import java.util.LinkedList;
import java.util.concurrent.ExecutionException;
public class TestInformationHandler implements ResourceBasedOverride {
@@ -42,6 +47,7 @@ public class TestInformationHandler implements ResourceBasedOverride {
protected DeviceProfile mDeviceProfile;
protected LauncherAppState mLauncherAppState;
protected Launcher mLauncher;
private static LinkedList mLeaks;
public void init(Context context) {
mContext = context;
@@ -120,6 +126,29 @@ public class TestInformationHandler implements ResourceBasedOverride {
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, mem.getTotalPss());
break;
}
case TestProtocol.REQUEST_JAVA_LEAK: {
if (mLeaks == null) mLeaks = new LinkedList();
// Allocate and dirty the memory.
final int leakSize = 1024 * 1024;
final byte[] bytes = new byte[leakSize];
for (int i = 0; i < leakSize; i += 239) {
bytes[i] = (byte) (i % 256);
}
mLeaks.add(bytes);
break;
}
case TestProtocol.REQUEST_NATIVE_LEAK: {
if (mLeaks == null) mLeaks = new LinkedList();
// Allocate and dirty a bitmap.
final Bitmap bitmap = Bitmap.createBitmap(512, 512, ARGB_8888);
bitmap.eraseColor(Color.RED);
mLeaks.add(bitmap);
break;
}
}
return response;
}