|
|
|
|
@@ -1356,7 +1356,7 @@ public class QuotaControllerTest {
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
assertEquals(JobSchedulerService.Constants.DEFAULT_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
|
|
|
|
|
mQuotaController.getMaxJobExecutionTimeMsLocked((job)));
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_RECEIVER);
|
|
|
|
|
@@ -1441,7 +1441,7 @@ public class QuotaControllerTest {
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
assertEquals(mQcConstants.EJ_LIMIT_ACTIVE_MS / 2,
|
|
|
|
|
mQuotaController.getMaxJobExecutionTimeMsLocked(job));
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_RECEIVER);
|
|
|
|
|
@@ -1474,7 +1474,7 @@ public class QuotaControllerTest {
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
assertEquals(mQcConstants.EJ_LIMIT_ACTIVE_MS / 2,
|
|
|
|
|
mQuotaController.getMaxJobExecutionTimeMsLocked(job));
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_RECEIVER);
|
|
|
|
|
@@ -2017,7 +2017,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND);
|
|
|
|
|
}
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(15 * SECOND_IN_MILLIS);
|
|
|
|
|
@@ -2032,7 +2032,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_RECEIVER);
|
|
|
|
|
}
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(10 * MINUTE_IN_MILLIS + 30 * SECOND_IN_MILLIS);
|
|
|
|
|
@@ -2090,7 +2090,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_TOP_SLEEPING, fgChangerUid);
|
|
|
|
|
}
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(fgStateChanger, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(fgStateChanger, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(15 * SECOND_IN_MILLIS);
|
|
|
|
|
@@ -2105,9 +2105,9 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_TOP_SLEEPING, fgChangerUid);
|
|
|
|
|
}
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(fgStateChanger, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(fgStateChanger, null);
|
|
|
|
|
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(unaffected, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(unaffected, null);
|
|
|
|
|
|
|
|
|
|
assertTrue(mQuotaController.isWithinQuotaLocked(unaffected));
|
|
|
|
|
assertTrue(unaffected.isReady());
|
|
|
|
|
@@ -2226,8 +2226,8 @@ public class QuotaControllerTest {
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(MINUTE_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
assertFalse(mQuotaController
|
|
|
|
|
.isWithinQuotaLocked(SOURCE_USER_ID, SOURCE_PACKAGE, WORKING_INDEX));
|
|
|
|
|
assertEquals(7 * MINUTE_IN_MILLIS, stats.allowedTimePerPeriodMs);
|
|
|
|
|
@@ -2312,8 +2312,8 @@ public class QuotaControllerTest {
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(MINUTE_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
assertFalse(mQuotaController
|
|
|
|
|
.isWithinQuotaLocked(SOURCE_USER_ID, SOURCE_PACKAGE, WORKING_INDEX));
|
|
|
|
|
assertEquals(12, stats.jobCountLimit);
|
|
|
|
|
@@ -2390,7 +2390,7 @@ public class QuotaControllerTest {
|
|
|
|
|
advanceElapsedClock(MINUTE_IN_MILLIS);
|
|
|
|
|
mAppIdleStateChangeListener.triggerTemporaryQuotaBump(SOURCE_PACKAGE, SOURCE_USER_ID);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, null);
|
|
|
|
|
assertTrue(mQuotaController
|
|
|
|
|
.isWithinQuotaLocked(SOURCE_USER_ID, SOURCE_PACKAGE, WORKING_INDEX));
|
|
|
|
|
assertEquals(4, stats.sessionCountLimit);
|
|
|
|
|
@@ -2404,7 +2404,7 @@ public class QuotaControllerTest {
|
|
|
|
|
|
|
|
|
|
advanceElapsedClock(MINUTE_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
assertFalse(mQuotaController
|
|
|
|
|
.isWithinQuotaLocked(SOURCE_USER_ID, SOURCE_PACKAGE, WORKING_INDEX));
|
|
|
|
|
assertEquals(4, stats.sessionCountLimit);
|
|
|
|
|
@@ -3725,7 +3725,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
}
|
|
|
|
|
@@ -3751,7 +3751,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 5 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3780,7 +3780,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
@@ -3788,11 +3788,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, MINUTE_IN_MILLIS, 3));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3833,7 +3833,7 @@ public class QuotaControllerTest {
|
|
|
|
|
long start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, jobStatus, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, jobStatus);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3864,18 +3864,18 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
setDischarging();
|
|
|
|
|
start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3893,7 +3893,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setCharging();
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
}
|
|
|
|
|
@@ -3919,7 +3919,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 5 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3948,7 +3948,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
@@ -3956,11 +3956,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, MINUTE_IN_MILLIS, 3));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -3987,7 +3987,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
}
|
|
|
|
|
@@ -4019,7 +4019,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -4044,11 +4044,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
|
|
|
|
|
@@ -4077,7 +4077,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS); // UID "inactive" now
|
|
|
|
|
start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
@@ -4087,11 +4087,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 2));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -4130,11 +4130,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg2, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
|
|
|
|
|
@@ -4169,11 +4169,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assertEquals(2, stats.jobCountInRateLimitingWindow);
|
|
|
|
|
@@ -4207,7 +4207,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -4232,11 +4232,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
|
|
|
|
|
@@ -4267,7 +4267,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
|
|
|
|
|
@@ -4284,12 +4284,12 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 2));
|
|
|
|
|
assertEquals(expected, mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -4326,7 +4326,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -4343,7 +4343,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -4362,7 +4362,7 @@ public class QuotaControllerTest {
|
|
|
|
|
long elapsedGracePeriodMs = 2 * SECOND_IN_MILLIS;
|
|
|
|
|
advanceElapsedClock(elapsedGracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS + elapsedGracePeriodMs, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -4387,7 +4387,7 @@ public class QuotaControllerTest {
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
expected.add(createTimingSession(start, remainingGracePeriod + 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -4401,7 +4401,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -4638,7 +4638,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(SECOND_IN_MILLIS);
|
|
|
|
|
}
|
|
|
|
|
@@ -4709,7 +4709,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(SECOND_IN_MILLIS);
|
|
|
|
|
}
|
|
|
|
|
@@ -5432,7 +5432,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
}
|
|
|
|
|
@@ -5458,7 +5458,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 5 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5488,7 +5488,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
@@ -5496,11 +5496,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, MINUTE_IN_MILLIS, 3));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5545,7 +5545,7 @@ public class QuotaControllerTest {
|
|
|
|
|
long start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, jobStatus, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, jobStatus);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5577,18 +5577,18 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
setDischarging();
|
|
|
|
|
start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5607,7 +5607,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setCharging();
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -5634,7 +5634,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 5 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5664,7 +5664,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
@@ -5672,11 +5672,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(20 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, MINUTE_IN_MILLIS, 3));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5704,7 +5704,7 @@ public class QuotaControllerTest {
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobStatus, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
}
|
|
|
|
|
@@ -5739,7 +5739,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5765,11 +5765,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -5799,7 +5799,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS); // UID "inactive" now
|
|
|
|
|
start = JobSchedulerService.sElapsedRealtimeClock.millis();
|
|
|
|
|
@@ -5809,11 +5809,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg3, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 2));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5849,7 +5849,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5875,11 +5875,11 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -5911,7 +5911,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg1, jobBg1);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
setProcessState(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
|
|
|
|
|
@@ -5928,12 +5928,12 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobTop, null);
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobBg2, null);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobFg1, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 20 * SECOND_IN_MILLIS, 2));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5970,7 +5970,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -5987,7 +5987,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -6005,7 +6005,7 @@ public class QuotaControllerTest {
|
|
|
|
|
long elapsedGracePeriodMs = 2 * SECOND_IN_MILLIS;
|
|
|
|
|
advanceElapsedClock(elapsedGracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -6029,7 +6029,7 @@ public class QuotaControllerTest {
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -6043,7 +6043,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6073,7 +6073,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6090,7 +6090,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6109,7 +6109,7 @@ public class QuotaControllerTest {
|
|
|
|
|
long elapsedGracePeriodMs = 2 * SECOND_IN_MILLIS;
|
|
|
|
|
advanceElapsedClock(elapsedGracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, null);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 12 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6134,7 +6134,7 @@ public class QuotaControllerTest {
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS + remainingGracePeriod, 1));
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
@@ -6148,7 +6148,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job, job);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6193,7 +6193,7 @@ public class QuotaControllerTest {
|
|
|
|
|
// Wait for the grace period to expire so the handler can process the message.
|
|
|
|
|
Thread.sleep(gracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job1, job1);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
|
|
|
|
|
@@ -6213,7 +6213,7 @@ public class QuotaControllerTest {
|
|
|
|
|
// Wait for the grace period to expire so the handler can process the message.
|
|
|
|
|
Thread.sleep(gracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job2, null);
|
|
|
|
|
}
|
|
|
|
|
assertNull(mQuotaController.getEJTimingSessions(SOURCE_USER_ID, SOURCE_PACKAGE));
|
|
|
|
|
|
|
|
|
|
@@ -6239,7 +6239,7 @@ public class QuotaControllerTest {
|
|
|
|
|
Thread.sleep(2 * gracePeriodMs);
|
|
|
|
|
advanceElapsedClock(gracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, job3, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job3, job3);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, gracePeriodMs, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6267,7 +6267,7 @@ public class QuotaControllerTest {
|
|
|
|
|
Thread.sleep(2 * gracePeriodMs);
|
|
|
|
|
advanceElapsedClock(gracePeriodMs);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job4, job4);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, gracePeriodMs, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6294,7 +6294,7 @@ public class QuotaControllerTest {
|
|
|
|
|
Thread.sleep(2 * gracePeriodMs);
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(job5, job5);
|
|
|
|
|
}
|
|
|
|
|
expected.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expected,
|
|
|
|
|
@@ -6448,7 +6448,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobReg1, jobReg1, true);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobReg1, jobReg1);
|
|
|
|
|
}
|
|
|
|
|
expectedRegular.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expectedRegular,
|
|
|
|
|
@@ -6464,7 +6464,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(10 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobEJ1, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobEJ1, null);
|
|
|
|
|
}
|
|
|
|
|
expectedEJ.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
assertEquals(expectedRegular,
|
|
|
|
|
@@ -6485,12 +6485,12 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobEJ2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobEJ2, null);
|
|
|
|
|
}
|
|
|
|
|
expectedEJ.add(createTimingSession(start, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
advanceElapsedClock(5 * SECOND_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobReg2, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(jobReg2, null);
|
|
|
|
|
}
|
|
|
|
|
expectedRegular.add(
|
|
|
|
|
createTimingSession(start + 5 * SECOND_IN_MILLIS, 10 * SECOND_IN_MILLIS, 1));
|
|
|
|
|
@@ -6580,7 +6580,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5000);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(regJob, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(regJob, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(0, debit.getTallyLocked());
|
|
|
|
|
assertEquals(10 * MINUTE_IN_MILLIS,
|
|
|
|
|
@@ -6594,7 +6594,7 @@ public class QuotaControllerTest {
|
|
|
|
|
}
|
|
|
|
|
advanceElapsedClock(5 * MINUTE_IN_MILLIS);
|
|
|
|
|
synchronized (mQuotaController.mLock) {
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(eJob, null, false);
|
|
|
|
|
mQuotaController.maybeStopTrackingJobLocked(eJob, null);
|
|
|
|
|
}
|
|
|
|
|
assertEquals(5 * MINUTE_IN_MILLIS, debit.getTallyLocked());
|
|
|
|
|
assertEquals(5 * MINUTE_IN_MILLIS,
|
|
|
|
|
|