summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/StagedInstallTest/app/src/com/android/tests/stagedinstallinternal/StagedInstallInternalTest.java15
-rw-r--r--tests/StagedInstallTest/src/com/android/tests/stagedinstallinternal/host/StagedInstallInternalTest.java15
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/StagedInstallTest/app/src/com/android/tests/stagedinstallinternal/StagedInstallInternalTest.java b/tests/StagedInstallTest/app/src/com/android/tests/stagedinstallinternal/StagedInstallInternalTest.java
index 2a601e5cb86d..ad8aac17d844 100644
--- a/tests/StagedInstallTest/app/src/com/android/tests/stagedinstallinternal/StagedInstallInternalTest.java
+++ b/tests/StagedInstallTest/app/src/com/android/tests/stagedinstallinternal/StagedInstallInternalTest.java
@@ -140,6 +140,21 @@ public class StagedInstallInternalTest {
Install.multi(TestApp.AIncompleteSplit, TestApp.B1, TestApp.Apex1).setStaged());
}
+ @Test
+ public void testFailStagedSessionIfStagingDirectoryDeleted_Commit() throws Exception {
+ int sessionId = Install.multi(TestApp.A1, TestApp.Apex1).setStaged().commit();
+ assertSessionReady(sessionId);
+ storeSessionId(sessionId);
+ }
+
+ @Test
+ public void testFailStagedSessionIfStagingDirectoryDeleted_Verify() throws Exception {
+ int sessionId = retrieveLastSessionId();
+ PackageInstaller.SessionInfo info =
+ InstallUtils.getPackageInstaller().getSessionInfo(sessionId);
+ assertThat(info.isStagedSessionFailed()).isTrue();
+ }
+
private static void assertSessionReady(int sessionId) {
assertSessionState(sessionId,
(session) -> assertThat(session.isStagedSessionReady()).isTrue());
diff --git a/tests/StagedInstallTest/src/com/android/tests/stagedinstallinternal/host/StagedInstallInternalTest.java b/tests/StagedInstallTest/src/com/android/tests/stagedinstallinternal/host/StagedInstallInternalTest.java
index 9e1ea2e04528..2201efd3a7ac 100644
--- a/tests/StagedInstallTest/src/com/android/tests/stagedinstallinternal/host/StagedInstallInternalTest.java
+++ b/tests/StagedInstallTest/src/com/android/tests/stagedinstallinternal/host/StagedInstallInternalTest.java
@@ -279,6 +279,21 @@ public class StagedInstallInternalTest extends BaseHostJUnit4Test {
assertThat(getStagingDirectories()).isEmpty();
}
+ @Test
+ public void testFailStagedSessionIfStagingDirectoryDeleted() throws Exception {
+ // Create a staged session
+ runPhase("testFailStagedSessionIfStagingDirectoryDeleted_Commit");
+
+ // Delete the staging directory
+ getDevice().enableAdbRoot();
+ getDevice().executeShellCommand("rm -r /data/app-staging");
+ getDevice().disableAdbRoot();
+
+ getDevice().reboot();
+
+ runPhase("testFailStagedSessionIfStagingDirectoryDeleted_Verify");
+ }
+
private List<String> getStagingDirectories() throws DeviceNotAvailableException {
String baseDir = "/data/app-staging";
try {