Fix MeasuredEnergyStats.reset() for per-process-state counters
Bug: 191921016 Test: atest FrameworksCoreTests:MeasuredEnergyStatsTest Change-Id: I8a05503a31d07535d5d14907c8b145dd3dc20491
This commit is contained in:
@@ -589,6 +589,10 @@ public class MeasuredEnergyStats {
|
||||
final int numIndices = mConfig.getNumberOfBuckets();
|
||||
for (int index = 0; index < numIndices; index++) {
|
||||
setValueIfSupported(index, 0L);
|
||||
if (mAccumulatedMultiStateChargeMicroCoulomb != null
|
||||
&& mAccumulatedMultiStateChargeMicroCoulomb[index] != null) {
|
||||
mAccumulatedMultiStateChargeMicroCoulomb[index].reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -465,16 +465,23 @@ public class MeasuredEnergyStatsTest {
|
||||
supportedStandardBuckets[POWER_BUCKET_SCREEN_DOZE] = false;
|
||||
supportedStandardBuckets[POWER_BUCKET_SCREEN_OTHER] = true;
|
||||
|
||||
final int[] supportedMultiStateBuckets = new int[]{POWER_BUCKET_SCREEN_ON};
|
||||
final MeasuredEnergyStats.Config config =
|
||||
new MeasuredEnergyStats.Config(supportedStandardBuckets, customBucketNames,
|
||||
new int[0], new String[]{"s"});
|
||||
supportedMultiStateBuckets, new String[]{"s1", "s2"});
|
||||
final MeasuredEnergyStats stats = new MeasuredEnergyStats(config);
|
||||
stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 10);
|
||||
stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 5);
|
||||
stats.setState(1, 0);
|
||||
stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 10, 1000);
|
||||
stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 5, 2000);
|
||||
stats.updateStandardBucket(POWER_BUCKET_SCREEN_OTHER, 40);
|
||||
stats.updateCustomBucket(0, 50);
|
||||
stats.updateCustomBucket(1, 60);
|
||||
|
||||
assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 0))
|
||||
.isEqualTo(0);
|
||||
assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 1))
|
||||
.isEqualTo(15);
|
||||
|
||||
MeasuredEnergyStats.resetIfNotNull(stats);
|
||||
// All charges should be reset to 0
|
||||
for (int i = 0; i < NUMBER_STANDARD_POWER_BUCKETS; i++) {
|
||||
@@ -485,7 +492,13 @@ public class MeasuredEnergyStatsTest {
|
||||
assertFalse(stats.isStandardBucketSupported(i));
|
||||
assertEquals(POWER_DATA_UNAVAILABLE, stats.getAccumulatedStandardBucketCharge(i));
|
||||
}
|
||||
|
||||
}
|
||||
assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 0))
|
||||
.isEqualTo(0);
|
||||
assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 1))
|
||||
.isEqualTo(0);
|
||||
|
||||
for (int i = 0; i < customBucketNames.length; i++) {
|
||||
assertEquals(0, stats.getAccumulatedCustomBucketCharge(i));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user