Fix failing tests in AppStateTrackerTest
Also adding the test to presubmit when AppStateTracker changes Test: atest FrameworksMockingServicesTests:AppStateTrackerTest Fixes: 159504076 Change-Id: I45b595809aa9996fd09981b1c9a196ef6f4016b6
This commit is contained in:
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user