Merge "[DO NOT MERGE] Revert "Backport of ag/14170751 and ag/14170752."" into rvc-qpr-dev
This commit is contained in:
@@ -554,10 +554,8 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
|||||||
PackageInstaller.SessionInfo session = mContext.getPackageManager()
|
PackageInstaller.SessionInfo session = mContext.getPackageManager()
|
||||||
.getPackageInstaller().getSessionInfo(rollback.getStagedSessionId());
|
.getPackageInstaller().getSessionInfo(rollback.getStagedSessionId());
|
||||||
if (session == null || session.isStagedSessionFailed()) {
|
if (session == null || session.isStagedSessionFailed()) {
|
||||||
if (rollback.isEnabling()) {
|
iter.remove();
|
||||||
iter.remove();
|
rollback.delete(mAppDataRollbackHelper);
|
||||||
rollback.delete(mAppDataRollbackHelper);
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -481,33 +481,6 @@ public class StagedRollbackTest {
|
|||||||
assertThat(sm.isCheckpointSupported()).isTrue();
|
assertThat(sm.isCheckpointSupported()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testExpireSession_Phase1_Install() throws Exception {
|
|
||||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
|
|
||||||
Install.single(TestApp.A1).commit();
|
|
||||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
|
|
||||||
Install.single(TestApp.A2).setEnableRollback().setStaged().commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testExpireSession_Phase2_VerifyInstall() throws Exception {
|
|
||||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
|
|
||||||
RollbackManager rm = RollbackUtils.getRollbackManager();
|
|
||||||
RollbackInfo rollback = getUniqueRollbackInfoForPackage(
|
|
||||||
rm.getAvailableRollbacks(), TestApp.A);
|
|
||||||
assertThat(rollback).isNotNull();
|
|
||||||
assertThat(rollback).packagesContainsExactly(Rollback.from(TestApp.A2).to(TestApp.A1));
|
|
||||||
assertThat(rollback.isStaged()).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testExpireSession_Phase3_VerifyRollback() throws Exception {
|
|
||||||
RollbackManager rm = RollbackUtils.getRollbackManager();
|
|
||||||
RollbackInfo rollback = getUniqueRollbackInfoForPackage(
|
|
||||||
rm.getAvailableRollbacks(), TestApp.A);
|
|
||||||
assertThat(rollback).isNotNull();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void hasMainlineModule() throws Exception {
|
public void hasMainlineModule() throws Exception {
|
||||||
String pkgName = getModuleMetadataPackageName();
|
String pkgName = getModuleMetadataPackageName();
|
||||||
|
|||||||
@@ -38,9 +38,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -443,27 +441,6 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
|
|||||||
after.forEach(dir -> assertDirectoryIsEmpty(dir));
|
after.forEach(dir -> assertDirectoryIsEmpty(dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests an available rollback shouldn't be deleted when its session expires.
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void testExpireSession() throws Exception {
|
|
||||||
runPhase("testExpireSession_Phase1_Install");
|
|
||||||
getDevice().reboot();
|
|
||||||
runPhase("testExpireSession_Phase2_VerifyInstall");
|
|
||||||
|
|
||||||
// Advance system clock by 7 days to expire the staged session
|
|
||||||
Instant t1 = Instant.ofEpochMilli(getDevice().getDeviceDate());
|
|
||||||
Instant t2 = t1.plusMillis(TimeUnit.DAYS.toMillis(7));
|
|
||||||
runAsRoot(() -> getDevice().setDate(Date.from(t2)));
|
|
||||||
|
|
||||||
// Somehow we need to wait for a while before reboot. Otherwise the change to the
|
|
||||||
// system clock will be reset after reboot.
|
|
||||||
Thread.sleep(3000);
|
|
||||||
getDevice().reboot();
|
|
||||||
runPhase("testExpireSession_Phase3_VerifyRollback");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void pushTestApex() throws Exception {
|
private void pushTestApex() throws Exception {
|
||||||
CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(getBuild());
|
CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(getBuild());
|
||||||
final String fileName = APK_IN_APEX_TESTAPEX_NAME + "_v1.apex";
|
final String fileName = APK_IN_APEX_TESTAPEX_NAME + "_v1.apex";
|
||||||
@@ -544,18 +521,4 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@FunctionalInterface
|
|
||||||
private interface ExceptionalRunnable {
|
|
||||||
void run() throws Exception;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void runAsRoot(ExceptionalRunnable runnable) throws Exception {
|
|
||||||
try {
|
|
||||||
getDevice().enableAdbRoot();
|
|
||||||
runnable.run();
|
|
||||||
} finally {
|
|
||||||
getDevice().disableAdbRoot();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user