From e32a0c26c0c97a2aa404d2d75112d493a4fba4e7 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Tue, 22 Mar 2022 19:48:36 -0700 Subject: [PATCH] Initialize the app last used timestamps to 0 in test setup. These tests are currently assuming the initial last used timestamps to be 0 which is used to be true but not anymore after the change Ib90b435b1efc34144f0461aaaf339fc6037ecdc2. So, explicitly initialize the last used timestamps to 0 in the test setup to keep these tests working. Bug: 225776572 Test: atest services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java Change-Id: I5a0246d1d9fec57bd37b941eb93701dfc7da7576 --- .../server/usage/AppStandbyController.java | 7 +++++ .../usage/AppStandbyControllerTests.java | 27 +++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java index 502913063a00..17b5dd39e032 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -2096,6 +2096,13 @@ public class AppStandbyController .sendToTarget(); } + @VisibleForTesting + AppIdleHistory getAppIdleHistoryForTest() { + synchronized (mAppIdleLock) { + return mAppIdleHistory; + } + } + @Override public void dumpUsers(IndentingPrintWriter idpw, int[] userIds, List pkgs) { synchronized (mAppIdleLock) { diff --git a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java index 210d2faf44d6..17464a6551d4 100644 --- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java @@ -512,8 +512,30 @@ public class AppStandbyControllerTests { return controller; } - private long getCurrentTime() { - return TimeUnit.NANOSECONDS.toMillis(System.nanoTime()); + private void setupInitialUsageHistory() throws Exception { + final int[] userIds = new int[] { USER_ID, USER_ID2, USER_ID3 }; + final String[] packages = new String[] { + PACKAGE_1, + PACKAGE_2, + PACKAGE_EXEMPTED_1, + PACKAGE_SYSTEM_HEADFULL, + PACKAGE_SYSTEM_HEADLESS, + PACKAGE_WELLBEING, + PACKAGE_BACKGROUND_LOCATION, + ADMIN_PKG, + ADMIN_PKG2, + ADMIN_PKG3 + }; + for (int userId : userIds) { + for (String pkg : packages) { + final AppIdleHistory.AppUsageHistory usageHistory = mController + .getAppIdleHistoryForTest().getAppUsageHistory( + pkg, userId, mInjector.mElapsedRealtime); + usageHistory.lastUsedElapsedTime = 0; + usageHistory.lastUsedByUserElapsedTime = 0; + usageHistory.lastUsedScreenTime = 0; + } + } } @Before @@ -524,6 +546,7 @@ public class AppStandbyControllerTests { MyContextWrapper myContext = new MyContextWrapper(InstrumentationRegistry.getContext()); mInjector = new MyInjector(myContext, Looper.getMainLooper()); mController = setupController(); + setupInitialUsageHistory(); } @After