Add VM creation failure test for unsigned vendor image
Bug: 285855436
Test: atest MicrodroidTests#creationFailsWithUnsignedVendorPartition
Change-Id: I1a8ec9d08a12a05fabb67a776e47eeeb24cf23be
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 6e8216f..6a30b1c 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -58,6 +58,7 @@
data: [
":MicrodroidVmShareApp",
":test_microdroid_vendor_image",
+ ":test_microdroid_vendor_image_unsigned",
],
}
diff --git a/tests/testapk/AndroidTest.xml b/tests/testapk/AndroidTest.xml
index e72a2e3..8a4c367 100644
--- a/tests/testapk/AndroidTest.xml
+++ b/tests/testapk/AndroidTest.xml
@@ -30,6 +30,7 @@
<target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
<option name="cleanup" value="true" />
<option name="push" value="test_microdroid_vendor_image.img->/data/local/tmp/cts/microdroid/test_microdroid_vendor_image.img" />
+ <option name="push" value="test_microdroid_vendor_image_unsigned.img->/data/local/tmp/cts/microdroid/test_microdroid_vendor_image_unsigned.img" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.microdroid.test" />
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 d9d9cb9..c6291e4 100644
--- a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
+++ b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
@@ -2160,6 +2160,28 @@
}
@Test
+ public void creationFailsWithUnsignedVendorPartition() throws Exception {
+ assumeSupportedDevice();
+ assumeFeatureEnabled(VirtualMachineManager.FEATURE_VENDOR_MODULES);
+
+ grantPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION);
+
+ File unsignedVendorDiskImage =
+ new File(
+ "/data/local/tmp/cts/microdroid/test_microdroid_vendor_image_unsigned.img");
+ VirtualMachineConfig config =
+ newVmConfigBuilder()
+ .setPayloadBinaryName("MicrodroidTestNativeLib.so")
+ .setVendorDiskImage(unsignedVendorDiskImage)
+ .setDebugLevel(DEBUG_LEVEL_FULL)
+ .build();
+
+ VirtualMachine vm = forceCreateNewVirtualMachine("test_boot_with_unsigned_vendor", config);
+ assertThrowsVmExceptionContaining(
+ () -> vm.run(), "Failed to get vbmeta from microdroid-vendor.img");
+ }
+
+ @Test
public void systemPartitionMountFlags() throws Exception {
assumeSupportedDevice();
diff --git a/tests/vendor_images/Android.bp b/tests/vendor_images/Android.bp
index e5f863a..f065b5c 100644
--- a/tests/vendor_images/Android.bp
+++ b/tests/vendor_images/Android.bp
@@ -15,3 +15,9 @@
use_avb: true,
avb_private_key: ":vendor_sign_key",
}
+
+android_filesystem {
+ name: "test_microdroid_vendor_image_unsigned",
+ type: "ext4",
+ file_contexts: ":microdroid_vendor_file_contexts.gen",
+}