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

Commit 46ff283d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix failing tests in AppStateTrackerTest"

parents f0005fe4 9c17cde9
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -25,6 +25,21 @@
        {
            "name": "CtsScopedStorageHostTest",
            "file_patterns": ["StorageManagerService\\.java"]
        },
        {
            "name": "FrameworksMockingServicesTests",
            "file_patterns": ["AppStateTracker\\.java"],
            "options": [
                {
                    "include-filter": "com.android.server.AppStateTrackerTest"
                },
                {
                    "include-annotation": "android.platform.test.annotations.Presubmit"
                },
                {
                    "exclude-annotation": "androidx.test.filters.FlakyTest"
                }
            ]
        }
    ]
}
+40 −1
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import android.os.PowerSaveState;
import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
import android.provider.Settings.Global;
import android.test.mock.MockContentResolver;
import android.util.ArraySet;
@@ -94,6 +95,7 @@ import java.util.function.Consumer;
 *
 * Run with: atest com.android.server.AppStateTrackerTest
 */
@Presubmit
@SmallTest
@RunWith(AndroidJUnit4.class)
public class AppStateTrackerTest {
@@ -130,6 +132,7 @@ public class AppStateTrackerTest {

        @Override
        AppStandbyInternal injectAppStandbyInternal() {
            when(mMockAppStandbyInternal.isAppIdleEnabled()).thenReturn(true);
            return mMockAppStandbyInternal;
        }

@@ -141,7 +144,9 @@ public class AppStateTrackerTest {
        }

        @Override
        boolean isSmallBatteryDevice() { return mIsSmallBatteryDevice; };
        boolean isSmallBatteryDevice() {
            return mIsSmallBatteryDevice;
        }
    }

    private static final int UID_1 = Process.FIRST_APPLICATION_UID + 1;
@@ -201,6 +206,13 @@ public class AppStateTrackerTest {
        mMainHandler = new Handler(Looper.getMainLooper());
    }

    /**
     * Enqueues a message and waits for it to complete. This ensures that any messages posted until
     * now have been executed.
     *
     * Note that these messages may have enqueued more messages, which may or may not have executed
     * when this method returns.
     */
    private void waitUntilMainHandlerDrain() throws Exception {
        final CountDownLatch l = new CountDownLatch(1);
        mMainHandler.post(() -> {
@@ -362,6 +374,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_1);
        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        areRestricted(instance, UID_1, PACKAGE_1, NONE);
        areRestricted(instance, UID_2, PACKAGE_2, JOBS_AND_ALARMS);
        areRestricted(instance, Process.SYSTEM_UID, PACKAGE_SYSTEM, NONE);
@@ -370,6 +383,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidGone(UID_1, /*disable=*/ false);
        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        areRestricted(instance, UID_1, PACKAGE_1, JOBS_AND_ALARMS);
        areRestricted(instance, UID_2, PACKAGE_2, JOBS_AND_ALARMS);
        areRestricted(instance, Process.SYSTEM_UID, PACKAGE_SYSTEM, NONE);
@@ -378,12 +392,14 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_1);
        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        areRestricted(instance, UID_1, PACKAGE_1, NONE);
        areRestricted(instance, UID_2, PACKAGE_2, JOBS_AND_ALARMS);
        areRestricted(instance, Process.SYSTEM_UID, PACKAGE_SYSTEM, NONE);

        mIUidObserver.onUidIdle(UID_1, /*disable=*/ false);
        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        areRestricted(instance, UID_1, PACKAGE_1, JOBS_AND_ALARMS);
        areRestricted(instance, UID_2, PACKAGE_2, JOBS_AND_ALARMS);
        areRestricted(instance, Process.SYSTEM_UID, PACKAGE_SYSTEM, NONE);
@@ -499,6 +515,8 @@ public class AppStateTrackerTest {
        mIUidObserver.onUidActive(UID_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertTrue(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -517,6 +535,8 @@ public class AppStateTrackerTest {
                ActivityManager.PROCESS_CAPABILITY_NONE);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertTrue(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -535,6 +555,8 @@ public class AppStateTrackerTest {
                ActivityManager.PROCESS_CAPABILITY_NONE);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertTrue(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -546,6 +568,8 @@ public class AppStateTrackerTest {
        mIUidObserver.onUidGone(UID_1, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertFalse(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -557,6 +581,8 @@ public class AppStateTrackerTest {
        mIUidObserver.onUidIdle(UID_2, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertFalse(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -570,6 +596,8 @@ public class AppStateTrackerTest {
                ActivityManager.PROCESS_CAPABILITY_NONE);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertFalse(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -583,6 +611,8 @@ public class AppStateTrackerTest {
                ActivityManager.PROCESS_CAPABILITY_NONE);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        assertFalse(instance.isUidActive(UID_1));
        assertFalse(instance.isUidActive(UID_2));
        assertTrue(instance.isUidActive(Process.SYSTEM_UID));
@@ -1006,6 +1036,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_10_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1018,6 +1049,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidGone(UID_10_1, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1030,6 +1062,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_10_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1042,6 +1075,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidIdle(UID_10_1, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1068,6 +1102,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_10_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1080,6 +1115,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidGone(UID_10_1, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1092,6 +1128,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidActive(UID_10_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1104,6 +1141,7 @@ public class AppStateTrackerTest {

        mIUidObserver.onUidIdle(UID_10_1, true);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();
        verify(l, times(0)).updateAllJobs();
        verify(l, times(1)).updateJobsForUid(eq(UID_10_1), anyBoolean());
@@ -1123,6 +1161,7 @@ public class AppStateTrackerTest {
        mIUidObserver.onUidActive(UID_1);
        mIUidObserver.onUidActive(UID_10_1);

        waitUntilMainHandlerDrain();
        waitUntilMainHandlerDrain();

        setAppOps(UID_2, PACKAGE_2, true);