Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 784b2534 authored by Jonathan Backer's avatar Jonathan Backer
Browse files

Fix accounting of open wakelocks

This fixes a discrepancy discovered when cross-validating
against existing telemetry metrics.

Bug: 380847722
Test: com.android.server.power.stats.WakelockStatsFrameworkEventsTest#wakelockOpen
Flag: EXEMPT bug fix

Change-Id: I426fef9eda28bfa9b3405d5db2178e9eb3a527fd
parent fe5ebfec
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -272,14 +272,10 @@ public class WakelockStatsFrameworkEvents {
                WakeLockStats extraTime =
                        openOverflowStats.computeIfAbsent(key, k -> new WakeLockStats());

                stats.uptimeMillis += openWakeLockUptime + extraTime.uptimeMillis;

                logger.logResult(
                        key.getUid(),
                        key.getTag(),
                        key.getPowerManagerWakeLockLevel(),
                        stats.uptimeMillis,
                        stats.completedCount);
                long totalUpdate = openWakeLockUptime + stats.uptimeMillis + extraTime.uptimeMillis;
                long totalCount = stats.completedCount + extraTime.completedCount;
                logger.logResult(key.getUid(), key.getTag(), key.getPowerManagerWakeLockLevel(),
                        totalUpdate, totalCount);
            }
        }
    }
+10 −8
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@ public class WakelockStatsFrameworkEventsTest {
    public void wakelockOpen() throws Exception {
        mEvents.noteStartWakeLock(UID_1, TAG_1, WAKELOCK_TYPE_1, TS_1);

        for (int i = 0; i < 5; i++) {
            ArrayList<WakelockInfo> info = pullResults(TS_3);

            assertEquals("size", 1, info.size());
@@ -195,6 +196,7 @@ public class WakelockStatsFrameworkEventsTest {
            assertEquals("duration", TS_3 - TS_1, info.get(0).uptimeMillis);
            assertEquals("count", 0, info.get(0).completedCount);
        }
    }

    @Test
    public void wakelockOpenOverlap() throws Exception {