Merge "Validate collecting guest_time in pkvm hypervisor only" into main
diff --git a/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java b/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
index c6b2499..46df011 100644
--- a/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
+++ b/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
@@ -282,4 +282,8 @@
.map(os -> os.replaceFirst("^microdroid_gki-", ""))
.collect(Collectors.toList());
}
+
+ protected boolean isPkvmHypervisor() throws DeviceNotAvailableException {
+ return getDevice().getProperty("ro.boot.hypervisor.version").equals("kvm.arm-protected");
+ }
}
diff --git a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
index eb456f2..9d0b04b 100644
--- a/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
+++ b/tests/hostside/java/com/android/microdroid/test/MicrodroidHostTests.java
@@ -809,8 +809,10 @@
// Check VmCreationRequested atom
AtomsProto.VmCreationRequested atomVmCreationRequested =
data.get(0).getAtom().getVmCreationRequested();
- assertThat(atomVmCreationRequested.getHypervisor())
- .isEqualTo(AtomsProto.VmCreationRequested.Hypervisor.PKVM);
+ if (isPkvmHypervisor()) {
+ assertThat(atomVmCreationRequested.getHypervisor())
+ .isEqualTo(AtomsProto.VmCreationRequested.Hypervisor.PKVM);
+ }
assertThat(atomVmCreationRequested.getIsProtected()).isEqualTo(mProtectedVm);
assertThat(atomVmCreationRequested.getCreationSucceeded()).isTrue();
assertThat(atomVmCreationRequested.getBinderExceptionCode()).isEqualTo(0);
@@ -832,7 +834,11 @@
assertThat(atomVmExited.getDeathReason()).isEqualTo(AtomsProto.VmExited.DeathReason.KILLED);
assertThat(atomVmExited.getExitSignal()).isEqualTo(9);
// In CPU & memory related fields, check whether positive values are collected or not.
- assertThat(atomVmExited.getGuestTimeMillis()).isGreaterThan(0);
+ if (isPkvmHypervisor()) {
+ // Guest Time may not be updated on other hypervisors.
+ // Checking only if the hypervisor is PKVM.
+ assertThat(atomVmExited.getGuestTimeMillis()).isGreaterThan(0);
+ }
assertThat(atomVmExited.getRssVmKb()).isGreaterThan(0);
assertThat(atomVmExited.getRssCrosvmKb()).isGreaterThan(0);