MicrodroidTests: multiple low-memory tests
Test at multiple different low-memory levels, since no matter
where the VM is at, we want to be able to handle running
out of memory.
Bug: 185586693
Test: atest com.android.microdroid.test.MicrodroidTests#bootFailsWhenLowMem
Change-Id: Ib2043df4d987133ce3a43caddb0747af7bd14c61
diff --git a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
index 2c6d139..5f34cff 100644
--- a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
+++ b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
@@ -163,23 +163,26 @@
@Test
public void bootFailsWhenLowMem() throws VirtualMachineException, InterruptedException {
- VirtualMachineConfig lowMemConfig = mInner.newVmConfigBuilder("assets/vm_config.json")
- .memoryMib(20)
- .debugLevel(DebugLevel.NONE)
- .build();
- VirtualMachine vm = mInner.forceCreateNewVirtualMachine("low_mem", lowMemConfig);
- final CompletableFuture<Integer> exception = new CompletableFuture<>();
- VmEventListener listener =
- new VmEventListener() {
- @Override
- public void onDied(VirtualMachine vm, int reason) {
- exception.complete(reason);
- super.onDied(vm, reason);
- }
- };
- listener.runToFinish(TAG, vm);
- assertThat(exception.getNow(0)).isAnyOf(VirtualMachineCallback.DEATH_REASON_REBOOT,
- VirtualMachineCallback.DEATH_REASON_HANGUP);
+ for (int memMib : new int[]{ 10, 20, 40 }) {
+ VirtualMachineConfig lowMemConfig = mInner.newVmConfigBuilder("assets/vm_config.json")
+ .memoryMib(memMib)
+ .debugLevel(DebugLevel.NONE)
+ .build();
+ VirtualMachine vm = mInner.forceCreateNewVirtualMachine("low_mem", lowMemConfig);
+ final CompletableFuture<Integer> exception = new CompletableFuture<>();
+ VmEventListener listener =
+ new VmEventListener() {
+ @Override
+ public void onDied(VirtualMachine vm, int reason) {
+ exception.complete(reason);
+ super.onDied(vm, reason);
+ }
+ };
+ listener.runToFinish(TAG, vm);
+ assertThat(exception.getNow(0)).isAnyOf(VirtualMachineCallback.DEATH_REASON_REBOOT,
+ VirtualMachineCallback.DEATH_REASON_HANGUP,
+ VirtualMachineCallback.DEATH_REASON_CRASH);
+ }
}
@Test