Add tests for rollback data policy specified in the manifest (4/n)
Test that the user data is wiped out correctly when rollbackDataPolicy="wipe" is specified in the manifest. Bug: 148098864 Test: atest RollbackTest StagedRollbackTest Change-Id: I1de723951009ec8e1417a23845d34fcd8786f687
This commit is contained in:
@@ -1176,28 +1176,34 @@ public class RollbackTest {
|
||||
Manifest.permission.DELETE_PACKAGES,
|
||||
Manifest.permission.TEST_MANAGE_ROLLBACKS);
|
||||
|
||||
Uninstall.packages(TestApp.A, TestApp.B);
|
||||
Install.multi(TestApp.A1, TestApp.B1).commit();
|
||||
Uninstall.packages(TestApp.A, TestApp.B, TestApp.C);
|
||||
Install.multi(TestApp.A1, TestApp.B1, TestApp.C1).commit();
|
||||
// Write user data version = 1
|
||||
InstallUtils.processUserData(TestApp.A);
|
||||
InstallUtils.processUserData(TestApp.B);
|
||||
InstallUtils.processUserData(TestApp.C);
|
||||
|
||||
Install a2 = Install.single(TestApp.A2)
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.WIPE);
|
||||
Install b2 = Install.single(TestApp.B2)
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.RESTORE);
|
||||
Install.multi(a2, b2).setEnableRollback().commit();
|
||||
// The rollback data policy of C2 is specified in the manifest
|
||||
Install c2 = Install.single(TestApp.C2).setEnableRollback();
|
||||
Install.multi(a2, b2, c2).setEnableRollback().commit();
|
||||
// Write user data version = 2
|
||||
InstallUtils.processUserData(TestApp.A);
|
||||
InstallUtils.processUserData(TestApp.B);
|
||||
InstallUtils.processUserData(TestApp.C);
|
||||
|
||||
RollbackInfo info = RollbackUtils.getAvailableRollback(TestApp.A);
|
||||
RollbackUtils.rollback(info.getRollbackId());
|
||||
// Read user data version from userdata.txt
|
||||
// A's user data version is -1 for user data is wiped.
|
||||
// B's user data version is 1 as rollback committed.
|
||||
// C's user data version is -1 for user data is wiped.
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.A)).isEqualTo(-1);
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.B)).isEqualTo(1);
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.C)).isEqualTo(-1);
|
||||
} finally {
|
||||
InstallUtils.dropShellPermissionIdentity();
|
||||
}
|
||||
|
||||
@@ -316,17 +316,20 @@ public class StagedRollbackTest {
|
||||
|
||||
@Test
|
||||
public void testRollbackDataPolicy_Phase1() throws Exception {
|
||||
Uninstall.packages(TestApp.A, TestApp.B);
|
||||
Install.multi(TestApp.A1, TestApp.B1).commit();
|
||||
Uninstall.packages(TestApp.A, TestApp.B, TestApp.C);
|
||||
Install.multi(TestApp.A1, TestApp.B1, TestApp.C1).commit();
|
||||
// Write user data version = 1
|
||||
InstallUtils.processUserData(TestApp.A);
|
||||
InstallUtils.processUserData(TestApp.B);
|
||||
InstallUtils.processUserData(TestApp.C);
|
||||
|
||||
Install a2 = Install.single(TestApp.A2).setStaged()
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.WIPE);
|
||||
Install b2 = Install.single(TestApp.B2).setStaged()
|
||||
.setEnableRollback(PackageManager.RollbackDataPolicy.RESTORE);
|
||||
Install.multi(a2, b2).setEnableRollback().setStaged().commit();
|
||||
// The rollback data policy of C2 is specified in the manifest
|
||||
Install c2 = Install.single(TestApp.C2).setStaged().setEnableRollback();
|
||||
Install.multi(a2, b2, c2).setEnableRollback().setStaged().commit();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -336,6 +339,7 @@ public class StagedRollbackTest {
|
||||
// Write user data version = 2
|
||||
InstallUtils.processUserData(TestApp.A);
|
||||
InstallUtils.processUserData(TestApp.B);
|
||||
InstallUtils.processUserData(TestApp.C);
|
||||
|
||||
RollbackInfo info = RollbackUtils.getAvailableRollback(TestApp.A);
|
||||
RollbackUtils.rollback(info.getRollbackId());
|
||||
@@ -345,11 +349,14 @@ public class StagedRollbackTest {
|
||||
public void testRollbackDataPolicy_Phase3() throws Exception {
|
||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
|
||||
assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1);
|
||||
assertThat(InstallUtils.getInstalledVersion(TestApp.C)).isEqualTo(1);
|
||||
// Read user data version from userdata.txt
|
||||
// A's user data version is -1 for user data is wiped.
|
||||
// B's user data version is 1 as rollback committed.
|
||||
// C's user data version is -1 for user data is wiped.
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.A)).isEqualTo(-1);
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.B)).isEqualTo(1);
|
||||
assertThat(InstallUtils.getUserDataVersion(TestApp.C)).isEqualTo(-1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user