PvmfwImgTest: Test more invalid config versions
Check that pvmfw rejects invalid config data versions with more than a
single one (v2.0).
Test: atest PvmfwImgTest#testInvalidConfigVersion_doesNotBoot
Change-Id: Ic642c594f72457706cf7ee006f67133a65eb51a4
diff --git a/tests/hostside/java/com/android/microdroid/test/PvmfwImgTest.java b/tests/hostside/java/com/android/microdroid/test/PvmfwImgTest.java
index 320b722..6b68e34 100644
--- a/tests/hostside/java/com/android/microdroid/test/PvmfwImgTest.java
+++ b/tests/hostside/java/com/android/microdroid/test/PvmfwImgTest.java
@@ -42,6 +42,8 @@
import org.junit.runner.RunWith;
import java.io.File;
+import java.util.Arrays;
+import java.util.List;
import java.util.Objects;
/** Tests pvmfw.img and pvmfw */
@@ -141,15 +143,34 @@
@Test
public void testInvalidConfigVersion_doesNotBoot() throws Exception {
- // Disclaimer: Update versions when it becomes valid
- Pvmfw pvmfw =
- new Pvmfw.Builder(mPvmfwBinFileOnHost, mBccFileOnHost).setVersion(2, 0).build();
- pvmfw.serialize(mCustomPvmfwBinFileOnHost);
+ // Disclaimer: Update versions when they become valid
+ List<int[]> invalid_versions =
+ Arrays.asList(
+ new int[] {0, 0},
+ new int[] {0, 1},
+ new int[] {0, 0xFFFF},
+ new int[] {2, 0},
+ new int[] {2, 1},
+ new int[] {2, 0xFFFF},
+ new int[] {0xFFFF, 0},
+ new int[] {0xFFFF, 1},
+ new int[] {0xFFFF, 0xFFFF});
- assertThrows(
- "pvmfw shouldn't boot with invalid version",
- DeviceRuntimeException.class,
- () -> launchProtectedVmAndWaitForBootCompleted(BOOT_FAILURE_WAIT_TIME_MS));
+ Pvmfw.Builder builder = new Pvmfw.Builder(mPvmfwBinFileOnHost, mBccFileOnHost);
+
+ for (int[] pair : invalid_versions) {
+ int major = pair[0];
+ int minor = pair[1];
+ String version = "v" + major + "." + minor;
+
+ Pvmfw pvmfw = builder.setVersion(major, minor).build();
+ pvmfw.serialize(mCustomPvmfwBinFileOnHost);
+
+ assertThrows(
+ "pvmfw shouldn't boot with invalid version " + version,
+ DeviceRuntimeException.class,
+ () -> launchProtectedVmAndWaitForBootCompleted(BOOT_FAILURE_WAIT_TIME_MS));
+ }
}
private ITestDevice launchProtectedVmAndWaitForBootCompleted(long adbTimeoutMs)