Merge "XTS: Ensure Updatable VM is supported" into main
diff --git a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
index 2d55d66..ffcf338 100644
--- a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
+++ b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
@@ -36,6 +36,7 @@
import android.cts.statsdatom.lib.ReportUtils;
import com.android.compatibility.common.util.CddTest;
+import com.android.compatibility.common.util.PropertyUtil;
import com.android.compatibility.common.util.VsrTest;
import com.android.microdroid.test.common.ProcessUtil;
import com.android.microdroid.test.host.CommandRunner;
@@ -437,9 +438,8 @@
@VsrTest(requirements = {"VSR-7.1-001.008"})
public void UpgradedPackageIsAcceptedWithSecretkeeper() throws Exception {
// Preconditions
- assumeVmTypeSupported(true);
- assumeUpdatableVmSupported();
-
+ assumeVmTypeSupported(true); // Non-protected VMs may not support upgrades
+ ensureUpdatableVmSupported();
getDevice().uninstallPackage(PACKAGE_NAME);
getDevice().installPackage(findTestFile(APK_NAME), /* reinstall= */ true);
ensureProtectedMicrodroidBootsSuccessfully(INSTANCE_ID_FILE, INSTANCE_IMG);
@@ -1392,10 +1392,16 @@
&& device.doesFileExist("/sys/bus/platform/drivers/vfio-platform"));
}
- private void assumeUpdatableVmSupported() throws DeviceNotAvailableException {
- assumeTrue(
- "This test is only applicable if if Updatable VMs are supported",
- isUpdatableVmSupported());
+ private void ensureUpdatableVmSupported() throws DeviceNotAvailableException {
+ if (PropertyUtil.isVendorApiLevelAtLeast(getAndroidDevice(), 202504)) {
+ assertTrue(
+ "Missing Updatable VM support, have you declared Secretkeeper interface?",
+ isUpdatableVmSupported());
+ } else {
+ assumeTrue(
+ "Vendor API lower than 202504 may not support Updatable VM",
+ isUpdatableVmSupported());
+ }
}
private TestDevice getAndroidDevice() {