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",
+}