Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17381965 authored by JW Wang's avatar JW Wang
Browse files

[DO NOT MERGE] Revert "Backport of ag/14170751 and ag/14170752."

This reverts commit 29d5f72d.

Reason for revert: b/188459357: fix a flaky test

Bug: 188459357
Test: m
Change-Id: If56ba00ed499322d7192163eb62fd01587baed92
parent 29d5f72d
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -554,10 +554,8 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
                    PackageInstaller.SessionInfo session = mContext.getPackageManager()
                            .getPackageInstaller().getSessionInfo(rollback.getStagedSessionId());
                    if (session == null || session.isStagedSessionFailed()) {
                        if (rollback.isEnabling()) {
                        iter.remove();
                        rollback.delete(mAppDataRollbackHelper);
                        }
                        continue;
                    }

+0 −27
Original line number Diff line number Diff line
@@ -481,33 +481,6 @@ public class StagedRollbackTest {
        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
    public void hasMainlineModule() throws Exception {
        String pkgName = getModuleMetadataPackageName();
+0 −37
Original line number Diff line number Diff line
@@ -38,9 +38,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;

import java.io.File;
import java.time.Instant;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -443,27 +441,6 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
        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 {
        CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(getBuild());
        final String fileName = APK_IN_APEX_TESTAPEX_NAME + "_v1.apex";
@@ -544,18 +521,4 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
            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();
        }
    }
}