Reland "Generalize our parameterized tests"


Test: presubmit
Bug: 333730505
Change-Id: I17dd53cde2029879ca1a600ed71527949ba3ab1d
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 0e59a01..ceebb52 100644
--- a/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
+++ b/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
@@ -94,14 +94,12 @@
     private static final String MICRODROID_IMG_PREFIX = "microdroid_";
     private static final String MICRODROID_IMG_SUFFIX = ".img";
 
-    @Parameterized.Parameters(name = "protectedVm={0},gki={1}")
+    @Parameterized.Parameters(name = "protectedVm={0},os={1}")
     public static Collection<Object[]> params() {
         List<Object[]> ret = new ArrayList<>();
-        ret.add(new Object[] {true /* protectedVm */, null /* use microdroid kernel */});
-        ret.add(new Object[] {false /* protectedVm */, null /* use microdroid kernel */});
-        for (String gki : SUPPORTED_GKI_VERSIONS) {
-            ret.add(new Object[] {true /* protectedVm */, gki});
-            ret.add(new Object[] {false /* protectedVm */, gki});
+        for (String os : SUPPORTED_OSES) {
+            ret.add(new Object[] {true /* protectedVm */, os});
+            ret.add(new Object[] {false /* protectedVm */, os});
         }
         return ret;
     }
@@ -110,7 +108,7 @@
     public boolean mProtectedVm;
 
     @Parameterized.Parameter(1)
-    public String mGki;
+    public String mOs;
 
     private final MetricsProcessor mMetricsProcessor = new MetricsProcessor(METRIC_NAME_PREFIX);
 
@@ -143,7 +141,7 @@
     public void setup() throws IOException {
         grantPermission(VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION);
         grantPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
-        prepareTestSetup(mProtectedVm, mGki);
+        prepareTestSetup(mProtectedVm, mOs);
         mInstrumentation = getInstrumentation();
     }
 
diff --git a/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java b/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
index 135d947..72e5c75 100644
--- a/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
+++ b/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
@@ -70,8 +70,9 @@
     private final String MAX_PERFORMANCE_TASK_PROFILE = "CPUSET_SP_TOP_APP";
 
     protected static final String KERNEL_VERSION = SystemProperties.get("ro.kernel.version");
-    protected static final Set<String> SUPPORTED_GKI_VERSIONS =
-            Collections.unmodifiableSet(new HashSet(Arrays.asList("android15-6.6")));
+    protected static final Set<String> SUPPORTED_OSES =
+            Collections.unmodifiableSet(
+                    new HashSet<>(Arrays.asList("microdroid", "microdroid_gki-android15-6.6")));
 
     public static boolean isCuttlefish() {
         return getDeviceProperties().isCuttlefish();
@@ -132,7 +133,7 @@
 
     private final Context mCtx = ApplicationProvider.getApplicationContext();
     private boolean mProtectedVm;
-    private String mGki;
+    private String mOs;
 
     protected Context getContext() {
         return mCtx;
@@ -161,7 +162,7 @@
     }
 
     protected final String os() {
-        return mGki != null ? "microdroid_gki-" + mGki : "microdroid";
+        return mOs;
     }
 
     /**
@@ -190,11 +191,11 @@
         }
     }
 
-    public void prepareTestSetup(boolean protectedVm, String gki) {
+    public void prepareTestSetup(boolean protectedVm, String os) {
         assumeFeatureVirtualizationFramework();
 
         mProtectedVm = protectedVm;
-        mGki = gki;
+        mOs = os;
 
         int capabilities = getVirtualMachineManager().getCapabilities();
         if (protectedVm) {
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 c09f033..53fc819 100644
--- a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
+++ b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
@@ -129,15 +129,13 @@
 
     @Rule public Timeout globalTimeout = Timeout.seconds(300);
 
-    @Parameterized.Parameters(name = "protectedVm={0},gki={1}")
+    @Parameterized.Parameters(name = "protectedVm={0},os={1}")
     public static Collection<Object[]> params() {
         List<Object[]> ret = new ArrayList<>();
-        ret.add(new Object[] {true /* protectedVm */, null /* use microdroid kernel */});
-        ret.add(new Object[] {false /* protectedVm */, null /* use microdroid kernel */});
         // TODO(b/302465542): run only the latest GKI on presubmit to reduce running time
-        for (String gki : SUPPORTED_GKI_VERSIONS) {
-            ret.add(new Object[] {true /* protectedVm */, gki});
-            ret.add(new Object[] {false /* protectedVm */, gki});
+        for (String os : SUPPORTED_OSES) {
+            ret.add(new Object[] {true /* protectedVm */, os});
+            ret.add(new Object[] {false /* protectedVm */, os});
         }
         return ret;
     }
@@ -146,12 +144,12 @@
     public boolean mProtectedVm;
 
     @Parameterized.Parameter(1)
-    public String mGki;
+    public String mOs;
 
     @Before
     public void setup() {
-        prepareTestSetup(mProtectedVm, mGki);
-        if (mGki != null) {
+        prepareTestSetup(mProtectedVm, mOs);
+        if (mOs != "microdroid") {
             // Using a non-default VM always needs the custom permission.
             grantPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
         } else {
@@ -1957,7 +1955,7 @@
     @Test
     public void testConsoleInputSupported() throws Exception {
         assumeSupportedDevice();
-        assumeTrue("Not supported on GKI kernels", mGki == null);
+        assumeFalse("Not supported on GKI kernels", mOs.startsWith("microdroid_gki-"));
 
         VirtualMachineConfig config =
                 newVmConfigBuilderWithPayloadBinary("MicrodroidTestNativeLib.so")
diff --git a/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
index b41323f..340de72 100644
--- a/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
+++ b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
@@ -70,14 +70,13 @@
             "com.android.virt.rkpd.vm_attestation.testapp";
 
     @Parameterized.Parameter(0)
-    public String mGki;
+    public String mOs;
 
-    @Parameterized.Parameters(name = "gki={0}")
+    @Parameterized.Parameters(name = "os={0}")
     public static Collection<Object[]> params() {
         List<Object[]> ret = new ArrayList<>();
-        ret.add(new Object[] {null /* use microdroid kernel */});
-        for (String gki : SUPPORTED_GKI_VERSIONS) {
-            ret.add(new Object[] {gki});
+        for (String os : SUPPORTED_OSES) {
+            ret.add(new Object[] {os});
         }
         return ret;
     }
@@ -92,16 +91,16 @@
                 .that(getVirtualMachineManager().isRemoteAttestationSupported())
                 .isTrue();
 
-        if (mGki == null) {
+        if (mOs == "microdroid") {
             // We don't need this permission to use the microdroid kernel.
             revokePermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
         } else {
-            // The permission is needed to use the GKI kernel.
+            // The permission is needed to use non-default os.
             // Granting the permission is needed as the microdroid kernel test setup
             // can revoke the permission before the GKI kernel test.
             grantPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
         }
-        prepareTestSetup(true /* protectedVm */, mGki);
+        prepareTestSetup(true /* protectedVm */, mOs);
         setMaxPerformanceTaskProfile();
     }
 
diff --git a/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java b/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
index 43a4c66..01478b5 100644
--- a/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
+++ b/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
@@ -45,14 +45,13 @@
     private static final String VM_PAYLOAD_PATH = "libvm_attestation_test_payload.so";
 
     @Parameterized.Parameter(0)
-    public String mGki;
+    public String mOs;
 
-    @Parameterized.Parameters(name = "gki={0}")
+    @Parameterized.Parameters(name = "os={0}")
     public static Collection<Object[]> params() {
         List<Object[]> ret = new ArrayList<>();
-        ret.add(new Object[] {null /* use microdroid kernel */});
-        for (String gki : SUPPORTED_GKI_VERSIONS) {
-            ret.add(new Object[] {gki});
+        for (String os : SUPPORTED_OSES) {
+            ret.add(new Object[] {os});
         }
         return ret;
     }
@@ -61,7 +60,7 @@
     public void setup() throws IOException {
         grantPermission(VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION);
         grantPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
-        prepareTestSetup(true /* protectedVm */, mGki);
+        prepareTestSetup(true /* protectedVm */, mOs);
         setMaxPerformanceTaskProfile();
     }