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

Commit 4eb996de authored by Michael Wachenschwanz's avatar Michael Wachenschwanz
Browse files

Ignore non test package events for AppStandbyControllerTests

Fixes: 166456556
Test: atest AppStandbbyControllerTests --rerun-until-failure 10
Change-Id: Id444028fba7f7177613e4b49c2231745f4125b01
parent dd9c132f
Loading
Loading
Loading
Loading
+18 −5
Original line number Original line Diff line number Diff line
@@ -139,10 +139,13 @@ public class AppStandbyControllerTests {
    private AppStandbyController mController;
    private AppStandbyController mController;


    private CountDownLatch mStateChangedLatch = new CountDownLatch(1);
    private CountDownLatch mStateChangedLatch = new CountDownLatch(1);
    private String mLatchPkgName = null;
    private AppIdleStateChangeListener mListener = new AppIdleStateChangeListener() {
    private AppIdleStateChangeListener mListener = new AppIdleStateChangeListener() {
        @Override
        @Override
        public void onAppIdleStateChanged(String packageName, int userId,
        public void onAppIdleStateChanged(String packageName, int userId,
                boolean idle, int bucket, int reason) {
                boolean idle, int bucket, int reason) {
            // Ignore events not related to mLatchPkgName, if set.
            if (mLatchPkgName != null && !mLatchPkgName.equals(packageName)) return;
            mStateChangedLatch.countDown();
            mStateChangedLatch.countDown();
        }
        }
    };
    };
@@ -374,6 +377,7 @@ public class AppStandbyControllerTests {
                        mInjector.mElapsedRealtime, false));
                        mInjector.mElapsedRealtime, false));


        controller.addListener(mListener);
        controller.addListener(mListener);
        mLatchPkgName = null;
        return controller;
        return controller;
    }
    }


@@ -1377,7 +1381,7 @@ public class AppStandbyControllerTests {


    @Test
    @Test
    public void testUnexemptedSyncScheduled() throws Exception {
    public void testUnexemptedSyncScheduled() throws Exception {
        mStateChangedLatch = new CountDownLatch(1);
        rearmLatch(PACKAGE_1);
        mController.addListener(mListener);
        mController.addListener(mListener);
        assertEquals("Test package did not start in the Never bucket", STANDBY_BUCKET_NEVER,
        assertEquals("Test package did not start in the Never bucket", STANDBY_BUCKET_NEVER,
                getStandbyBucket(mController, PACKAGE_1));
                getStandbyBucket(mController, PACKAGE_1));
@@ -1389,7 +1393,7 @@ public class AppStandbyControllerTests {


        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);
        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);


        mStateChangedLatch = new CountDownLatch(1);
        rearmLatch(PACKAGE_1);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, false);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, false);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        assertEquals("Unexempted sync scheduled should not elevate a non Never bucket",
        assertEquals("Unexempted sync scheduled should not elevate a non Never bucket",
@@ -1400,7 +1404,7 @@ public class AppStandbyControllerTests {
    public void testExemptedSyncScheduled() throws Exception {
    public void testExemptedSyncScheduled() throws Exception {
        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);
        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);
        mInjector.mDeviceIdleMode = true;
        mInjector.mDeviceIdleMode = true;
        mStateChangedLatch = new CountDownLatch(1);
        rearmLatch(PACKAGE_1);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, true);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, true);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        assertEquals("Exempted sync scheduled in doze should set bucket to working set",
        assertEquals("Exempted sync scheduled in doze should set bucket to working set",
@@ -1408,7 +1412,7 @@ public class AppStandbyControllerTests {


        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);
        setAndAssertBucket(PACKAGE_1, USER_ID, STANDBY_BUCKET_RARE, REASON_MAIN_FORCED_BY_SYSTEM);
        mInjector.mDeviceIdleMode = false;
        mInjector.mDeviceIdleMode = false;
        mStateChangedLatch = new CountDownLatch(1);
        rearmLatch(PACKAGE_1);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, true);
        mController.postReportSyncScheduled(PACKAGE_1, USER_ID, true);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        mStateChangedLatch.await(1000, TimeUnit.MILLISECONDS);
        assertEquals("Exempted sync scheduled while not in doze should set bucket to active",
        assertEquals("Exempted sync scheduled while not in doze should set bucket to active",
@@ -1558,10 +1562,19 @@ public class AppStandbyControllerTests {
    }
    }


    private void setAndAssertBucket(String pkg, int user, int bucket, int reason) throws Exception {
    private void setAndAssertBucket(String pkg, int user, int bucket, int reason) throws Exception {
        mStateChangedLatch = new CountDownLatch(1);
        rearmLatch(pkg);
        mController.setAppStandbyBucket(pkg, user, bucket, reason);
        mController.setAppStandbyBucket(pkg, user, bucket, reason);
        mStateChangedLatch.await(100, TimeUnit.MILLISECONDS);
        mStateChangedLatch.await(100, TimeUnit.MILLISECONDS);
        assertEquals("Failed to set package bucket", bucket,
        assertEquals("Failed to set package bucket", bucket,
                getStandbyBucket(mController, PACKAGE_1));
                getStandbyBucket(mController, PACKAGE_1));
    }
    }

    private void rearmLatch(String pkgName) {
        mLatchPkgName = pkgName;
        mStateChangedLatch = new CountDownLatch(1);
    }

    private void rearmLatch() {
        rearmLatch(null);
    }
}
}