Update BatteryStatsImpl to track per-procstate cpu times.
BatteryStatsImpl will track this data by reading from
/proc/uid/<uid>/time_in_state whenever process state changes
and will include this data as part of batterystats dump.
Bug: 66953194
Test: atest core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
Test: atest hostsidetests/incident/src/com/android/server/cts/BatteryStatsValidationTest.java
Test: atest core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java
Change-Id: Ibb3e07f518aaf7eea2a00bb95b95dc5f7e09552e
diff --git a/core/tests/coretests/src/com/android/internal/os/MockBatteryStatsImpl.java b/core/tests/coretests/src/com/android/internal/os/MockBatteryStatsImpl.java
index 63d1e5a..de2fd12 100644
--- a/core/tests/coretests/src/com/android/internal/os/MockBatteryStatsImpl.java
+++ b/core/tests/coretests/src/com/android/internal/os/MockBatteryStatsImpl.java
@@ -16,7 +16,10 @@
package com.android.internal.os;
+import android.util.SparseIntArray;
+
import java.util.ArrayList;
+import java.util.concurrent.Future;
/**
* Mocks a BatteryStatsImpl object.
@@ -33,6 +36,7 @@
mScreenDozeTimer = new BatteryStatsImpl.StopwatchTimer(clocks, null, -1, null,
mOnBatteryTimeBase);
mBluetoothScanTimer = new StopwatchTimer(mClocks, null, -14, null, mOnBatteryTimeBase);
+ setExternalStatsSyncLocked(new DummyExternalStatsSync());
}
MockBatteryStatsImpl() {
@@ -78,6 +82,11 @@
return this;
}
+ public MockBatteryStatsImpl setKernelSingleUidTimeReader(KernelSingleUidTimeReader reader) {
+ mKernelSingleUidTimeReader = reader;
+ return this;
+ }
+
public MockBatteryStatsImpl setKernelCpuSpeedReaders(KernelCpuSpeedReader[] readers) {
mKernelCpuSpeedReaders = readers;
return this;
@@ -102,5 +111,32 @@
mOnBatteryInternal = onBatteryInternal;
return this;
}
+
+ public SparseIntArray getPendingUids() {
+ return mPendingUids;
+ }
+
+ private class DummyExternalStatsSync implements ExternalStatsSync {
+ @Override
+ public Future<?> scheduleSync(String reason, int flags) {
+ return null;
+ }
+
+ @Override
+ public Future<?> scheduleCpuSyncDueToRemovedUid(int uid) {
+ return null;
+ }
+
+ @Override
+ public Future<?> scheduleReadProcStateCpuTimes() {
+ return null;
+ }
+
+ @Override
+ public Future<?> scheduleCopyFromAllUidsCpuTimes() {
+ return null;
+ }
+
+ }
}