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