Fix RollbackUnitTest when deleting rollback.
This fixes a test break introduced by ag/10173899. An additional test is added to correctly test the new case of APEX data being deleted. Bug: 148961691 Test: atest RollbackUnitTest Change-Id: I1fe168ff65a6b5011f2a0809bc5f410de1fb25db
This commit is contained in:
@@ -223,6 +223,13 @@ public class AppDataRollbackHelper {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all device-encrypted apex data snapshots for the given rollback id.
|
||||
*/
|
||||
public void destroyApexDeSnapshots(int rollbackId) {
|
||||
mApexManager.destroyDeSnapshots(rollbackId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Commits the pending backups and restores for a given {@code userId} and {@code rollback}. If
|
||||
* the rollback has a pending backup, it is updated with a mapping from {@code userId} to inode
|
||||
|
||||
@@ -44,7 +44,6 @@ import android.util.SparseLongArray;
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.IndentingPrintWriter;
|
||||
import com.android.server.pm.ApexManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -662,7 +661,7 @@ class Rollback {
|
||||
}
|
||||
}
|
||||
if (containsApex) {
|
||||
ApexManager.getInstance().destroyDeSnapshots(info.getRollbackId());
|
||||
dataHelper.destroyApexDeSnapshots(info.getRollbackId());
|
||||
}
|
||||
|
||||
RollbackStore.deleteRollback(this);
|
||||
|
||||
@@ -224,21 +224,43 @@ public class RollbackUnitTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void snapshotThenDelete() {
|
||||
public void snapshotThenDeleteNoApex() {
|
||||
Rollback rollback = new Rollback(123, new File("/test/testing"), -1, USER, INSTALLER);
|
||||
PackageRollbackInfo pkgInfo1 = newPkgInfoFor(PKG_1, 12, 10, false);
|
||||
PackageRollbackInfo pkgInfo2 = newPkgInfoFor(PKG_2, 18, 12, true);
|
||||
PackageRollbackInfo pkgInfo2 = newPkgInfoFor(PKG_2, 18, 12, false);
|
||||
rollback.info.getPackages().addAll(Arrays.asList(pkgInfo1, pkgInfo2));
|
||||
|
||||
int[] userIds = {12, 18};
|
||||
int[] userIds = {111, 222};
|
||||
rollback.snapshotUserData(PKG_2, userIds, mMockDataHelper);
|
||||
|
||||
verify(mMockDataHelper).snapshotAppData(eq(123), pkgRollbackInfoFor(PKG_2), eq(userIds));
|
||||
|
||||
rollback.delete(mMockDataHelper);
|
||||
|
||||
verify(mMockDataHelper).destroyAppDataSnapshot(eq(123), pkgRollbackInfoFor(PKG_2), eq(12));
|
||||
verify(mMockDataHelper).destroyAppDataSnapshot(eq(123), pkgRollbackInfoFor(PKG_2), eq(18));
|
||||
verify(mMockDataHelper).destroyAppDataSnapshot(eq(123), pkgRollbackInfoFor(PKG_2), eq(111));
|
||||
verify(mMockDataHelper).destroyAppDataSnapshot(eq(123), pkgRollbackInfoFor(PKG_2), eq(222));
|
||||
verify(mMockDataHelper, never()).destroyApexDeSnapshots(anyInt());
|
||||
|
||||
assertThat(rollback.isDeleted()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void snapshotThenDeleteWithApex() {
|
||||
Rollback rollback = new Rollback(123, new File("/test/testing"), -1, USER, INSTALLER);
|
||||
PackageRollbackInfo pkgInfo1 = newPkgInfoFor(PKG_1, 12, 10, false);
|
||||
PackageRollbackInfo pkgInfo2 = newPkgInfoFor(PKG_2, 18, 12, true);
|
||||
rollback.info.getPackages().addAll(Arrays.asList(pkgInfo1, pkgInfo2));
|
||||
|
||||
int[] userIds = {111, 222};
|
||||
rollback.snapshotUserData(PKG_2, userIds, mMockDataHelper);
|
||||
|
||||
verify(mMockDataHelper).snapshotAppData(eq(123), pkgRollbackInfoFor(PKG_2), eq(userIds));
|
||||
|
||||
rollback.delete(mMockDataHelper);
|
||||
|
||||
verify(mMockDataHelper, never())
|
||||
.destroyAppDataSnapshot(anyInt(), pkgRollbackInfoFor(PKG_2), anyInt());
|
||||
verify(mMockDataHelper).destroyApexDeSnapshots(123);
|
||||
|
||||
assertThat(rollback.isDeleted()).isTrue();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user