Merge "Use Application#onTrimMemory in memory reclaim test." into main
diff --git a/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java b/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
index b646ea1..ec1a553 100644
--- a/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
+++ b/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
@@ -27,12 +27,14 @@
import static com.google.common.truth.Truth.assertWithMessage;
import static com.google.common.truth.TruthJUnit.assume;
+import android.app.Application;
import android.app.Instrumentation;
+import android.content.ComponentCallbacks2;
+import android.content.Context;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.os.ParcelFileDescriptor.AutoCloseInputStream;
import android.os.ParcelFileDescriptor.AutoCloseOutputStream;
-import android.os.Process;
import android.os.RemoteException;
import android.system.Os;
import android.system.virtualmachine.VirtualMachine;
@@ -619,7 +621,8 @@
.setMemoryBytes(256 * ONE_MEBI)
.build();
VirtualMachine vm = forceCreateNewVirtualMachine(vmName, config);
- MemoryReclaimListener listener = new MemoryReclaimListener(this::executeCommand);
+ MemoryReclaimListener listener =
+ new MemoryReclaimListener(this::executeCommand, getContext());
BenchmarkVmListener.create(listener).runToFinish(TAG, vm);
assertWithMessage("VM failed to start").that(listener.mPreCrosvm).isNotNull();
assertWithMessage("Post trim stats not available").that(listener.mPostCrosvm).isNotNull();
@@ -654,11 +657,13 @@
}
private static class MemoryReclaimListener implements BenchmarkVmListener.InnerListener {
- MemoryReclaimListener(Function<String, String> shellExecutor) {
+ MemoryReclaimListener(Function<String, String> shellExecutor, Context applicationCtx) {
mShellExecutor = shellExecutor;
+ mApplication = (Application) applicationCtx;
}
public final Function<String, String> mShellExecutor;
+ private final Application mApplication;
public CrosvmStats mPreCrosvm;
public CrosvmStats mPostCrosvm;
@@ -674,7 +679,7 @@
service.allocAnonMemory(256);
mPreCrosvm = new CrosvmStats(vmPid, mShellExecutor);
// Send a memory trim hint to cause memory reclaim.
- mShellExecutor.apply("am send-trim-memory " + Process.myPid() + " RUNNING_CRITICAL");
+ mApplication.onTrimMemory(ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL);
// Give time for the memory reclaim to do its work.
try {
Thread.sleep(isCuttlefish() ? 10000 : 5000);