Setting multi-session to APEX shouldn't crash (2/n)
Add a test for invalid scenarios: setting a multi-session to APEX
shouldn't cause crashes.
Bug: 163288861
Test: atest AtomicInstallTest#testInvalidStateScenario_MultiSessionCantBeApex
Change-Id: Ia2365e7e25ad0345154f99d27e9e24145d11948b
diff --git a/tests/tests/packageinstaller/atomicinstall/src/com/android/tests/atomicinstall/AtomicInstallTest.java b/tests/tests/packageinstaller/atomicinstall/src/com/android/tests/atomicinstall/AtomicInstallTest.java
index 8b0fe9e..f05ebde 100644
--- a/tests/tests/packageinstaller/atomicinstall/src/com/android/tests/atomicinstall/AtomicInstallTest.java
+++ b/tests/tests/packageinstaller/atomicinstall/src/com/android/tests/atomicinstall/AtomicInstallTest.java
@@ -29,6 +29,7 @@
import androidx.test.InstrumentationRegistry;
+import com.android.compatibility.common.util.SystemUtil;
import com.android.cts.install.lib.Install;
import com.android.cts.install.lib.InstallUtils;
import com.android.cts.install.lib.LocalIntentSender;
@@ -176,6 +177,25 @@
assertThat(getInstalledVersion(TestApp.B)).isEqualTo(-1);
}
+ @Test
+ public void testInvalidStateScenario_MultiSessionCantBeApex() throws Exception {
+ try {
+ SystemUtil.runShellCommandForNoOutput("pm bypass-staged-installer-check true");
+ PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
+ PackageInstaller.SessionParams.MODE_FULL_INSTALL);
+ params.setMultiPackage();
+ params.setInstallAsApex();
+ params.setStaged();
+ try {
+ InstallUtils.getPackageInstaller().createSession(params);
+ fail("Should not be able to create a multi-session set as APEX!");
+ } catch (Exception ignore) {
+ }
+ } finally {
+ SystemUtil.runShellCommandForNoOutput("pm bypass-staged-installer-check false");
+ }
+ }
+
/**
* Tests a single-session can't have child.
*/