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)