summaryrefslogtreecommitdiff
path: root/core/tests
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2021-06-28 07:53:10 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2021-06-30 17:07:58 +0000
commitbcd46f1ed43762a2584ab36f35250fd33b492839 (patch)
treec0915d3a470097d895a292e8af9198cac8b970a9 /core/tests
parentfb0faec367832e8fdc05508d831a697972dfa4f2 (diff)
Fix boot time BatteryStats reset failure
We need some services to create a battery stats snapshot captured at the time of battery reset. The issue is that if the battery stats reset occurs during boot, before the system is ready, those services may not be prepared. The fix is to postpone battery stats reset until after the system server is ready. Also, we will now reset the stats if battery got partially charged and discharged repeatedly without ever reaching the full charge. This will prevent battery sessions from going on forever and overflowing internal data structures. This CL partially reverts https://cs.android.com/android/_/android/platform/frameworks/base/+/0ed84f12639c4cb7ba6623dc232ae31602827bae Bug: 192252233 Test: run PowerOnOffTest#testPowerOnOff repeatedly Change-Id: Ib486e4caeeac7c933288c3a1055259c05f45c6c8
Diffstat (limited to 'core/tests')
-rw-r--r--core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java1
-rw-r--r--core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java1
-rw-r--r--core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsStoreTest.java2
3 files changed, 4 insertions, 0 deletions
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
index cbd67c8324f4..0147cdb186f3 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
@@ -204,6 +204,7 @@ public class BatteryUsageStatsProviderTest {
BatteryUsageStatsStore batteryUsageStatsStore = new BatteryUsageStatsStore(context,
batteryStats, new File(context.getCacheDir(), "BatteryUsageStatsProviderTest"),
new TestHandler(), Integer.MAX_VALUE);
+ batteryUsageStatsStore.onSystemReady();
BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(context,
batteryStats, batteryUsageStatsStore);
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
index 961e85950b29..083090c54619 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
@@ -66,6 +66,7 @@ public class BatteryUsageStatsRule implements TestRule {
mMockClocks.currentTime = currentTime;
mBatteryStats = new MockBatteryStatsImpl(mMockClocks);
mBatteryStats.setPowerProfile(mPowerProfile);
+ mBatteryStats.onSystemReady();
}
public BatteryUsageStatsRule setAveragePower(String key, double value) {
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsStoreTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsStoreTest.java
index 141a9fa30c85..e478cd776558 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsStoreTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsStoreTest.java
@@ -59,6 +59,7 @@ public class BatteryUsageStatsStoreTest {
mBatteryStats = new MockBatteryStatsImpl(mMockClocks);
mBatteryStats.setNoAutoReset(true);
mBatteryStats.setPowerProfile(mock(PowerProfile.class));
+ mBatteryStats.onSystemReady();
Context context = InstrumentationRegistry.getContext();
@@ -67,6 +68,7 @@ public class BatteryUsageStatsStoreTest {
mBatteryUsageStatsStore = new BatteryUsageStatsStore(context, mBatteryStats,
mStoreDirectory, new TestHandler(), MAX_BATTERY_STATS_SNAPSHOT_STORAGE_BYTES);
+ mBatteryUsageStatsStore.onSystemReady();
mBatteryUsageStatsProvider = new BatteryUsageStatsProvider(context, mBatteryStats);
}