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

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

Add logs for debugging

See b/151890602#comment4.

If the assumption is true, we will see logs that the rollback for
testappA is exipred happens slightly after the call to #getAvailableRollbacks.

Also move assertions below so the test runs to the end and we have a
better picture for what happened during the test.

Bug: 151890602
Test: m
Change-Id: I85adb8c3c5598ef4ce11550b51f22d1ce3c282a6
parent 0b923048
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -573,6 +573,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
        if (mRollbackLifetimeDurationInMillis < 0) {
            mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS;
        }
        Slog.d(TAG, "mRollbackLifetimeDurationInMillis=" + mRollbackLifetimeDurationInMillis);
    }

    @AnyThread
@@ -709,9 +710,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
            }
            Instant rollbackTimestamp = rollback.getTimestamp();
            if (!now.isBefore(rollbackTimestamp.plusMillis(mRollbackLifetimeDurationInMillis))) {
                if (LOCAL_LOGV) {
                    Slog.v(TAG, "runExpiration id=" + rollback.info.getRollbackId());
                }
                Slog.i(TAG, "runExpiration id=" + rollback.info.getRollbackId());
                iter.remove();
                rollback.delete(mAppDataRollbackHelper);
            } else if (oldest == null || oldest.isAfter(rollbackTimestamp)) {
@@ -1207,9 +1206,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
    @GuardedBy("rollback.getLock")
    private void makeRollbackAvailable(Rollback rollback) {
        assertInWorkerThread();
        if (LOCAL_LOGV) {
            Slog.v(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId());
        }
        Slog.i(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId());
        rollback.makeAvailable();

        // TODO(zezeozue): Provide API to explicitly start observing instead
+10 −9
Original line number Diff line number Diff line
@@ -487,23 +487,24 @@ public class RollbackTest {
                // Wait until rollback for app A has expired
                // This will trigger an expiration run that should expire app A but not B
                Thread.sleep(expirationTime / 2);
                RollbackInfo rollback =
                RollbackInfo rollbackA =
                        getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A);
                assertThat(rollback).isNull();
                Log.i(TAG, "Checking if the rollback for TestApp.A is null");

                // Rollback for app B should not be expired
                rollback = getUniqueRollbackInfoForPackage(
                RollbackInfo rollbackB1 = getUniqueRollbackInfoForPackage(
                        rm.getAvailableRollbacks(), TestApp.B);
                assertThat(rollback).isNotNull();
                assertThat(rollback).packagesContainsExactly(
                        Rollback.from(TestApp.B2).to(TestApp.B1));

                // Wait until rollback for app B has expired
                Thread.sleep(expirationTime / 2);
                rollback = getUniqueRollbackInfoForPackage(
                RollbackInfo rollbackB2 = getUniqueRollbackInfoForPackage(
                        rm.getAvailableRollbacks(), TestApp.B);
                // Rollback should be expired by now
                assertThat(rollback).isNull();

                assertThat(rollbackA).isNull();
                assertThat(rollbackB1).isNotNull();
                assertThat(rollbackB1).packagesContainsExactly(
                        Rollback.from(TestApp.B2).to(TestApp.B1));
                assertThat(rollbackB2).isNull();
            } finally {
                RollbackUtils.forwardTimeBy(-expirationTime);
            }