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

Commit b1330744 authored by Jing Ji's avatar Jing Ji Committed by Android (Google) Code Review
Browse files

Merge "Untangle BatteryStats lock"

parents 9803a8aa 32cf9dc8
Loading
Loading
Loading
Loading
+1930 −1320

File changed.

Preview size limit exceeded, changes collapsed.

+10 −9
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.internal.os;

import android.os.BatteryStats;
import android.os.Parcel;
import android.os.SystemClock;

import androidx.test.filters.SmallTest;

@@ -36,9 +37,9 @@ public class BatteryStatsSamplingTimerTest extends TestCase {
        timer.onTimeStarted(100, 100, 100);

        // First update is absorbed.
        timer.update(10, 1);
        timer.update(10, 1, SystemClock.elapsedRealtime() * 1000);

        timer.update(20, 2);
        timer.update(20, 2, SystemClock.elapsedRealtime() * 1000);

        assertEquals(1, timer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(10, timer.getTotalTimeLocked(200, BatteryStats.STATS_SINCE_CHARGED));
@@ -62,7 +63,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase {
                timeBase);

        // First once is absorbed.
        timer.update(10, 1);
        timer.update(10, 1, SystemClock.elapsedRealtime() * 1000);

        timer.add(10, 1);

@@ -71,7 +72,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase {

        // This is less than we currently have, so we will end the sample. Time isn't running, so
        // nothing should happen.
        timer.update(0, 0);
        timer.update(0, 0, SystemClock.elapsedRealtime() * 1000);

        assertEquals(0, timer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(0, timer.getTotalTimeLocked(200, BatteryStats.STATS_SINCE_CHARGED));
@@ -86,7 +87,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase {

        // This is less than we currently have, so we should end our sample and continue with the
        // entire amount updated here.
        timer.update(50, 5);
        timer.update(50, 5, SystemClock.elapsedRealtime() * 1000);

        assertEquals(150, timer.getTotalTimeLocked(200, BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(15, timer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
@@ -106,7 +107,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase {

        // This should be absorbed because it is our first update and we don't know what
        // was being counted before.
        timer.update(10, 1);
        timer.update(10, 1, SystemClock.elapsedRealtime() * 1000);

        assertEquals(0, timer.getTotalTimeLocked(10, BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(0, timer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
@@ -115,7 +116,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase {
        timer.onTimeStarted(100, 100, 100);

        // This should be absorbed.
        timer.update(10, 1);
        timer.update(10, 1, SystemClock.elapsedRealtime() * 1000);

        assertEquals(0, timer.getTotalTimeLocked(100, BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(0, timer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));
@@ -206,13 +207,13 @@ public class BatteryStatsSamplingTimerTest extends TestCase {

        // Now, just like with a fresh timer, the first update should be absorbed to account for
        // data being collected when we weren't recording.
        unparceledOnBatteryTimer.update(10, 10);
        unparceledOnBatteryTimer.update(10, 10, SystemClock.elapsedRealtime() * 1000);

        assertEquals(10, unparceledOnBatteryTimer.getTotalTimeLocked(0,
                BatteryStats.STATS_SINCE_CHARGED));
        assertEquals(1, unparceledOnBatteryTimer.getCountLocked(BatteryStats.STATS_SINCE_CHARGED));

        unparceledOffBatteryTimer.update(10, 10);
        unparceledOffBatteryTimer.update(10, 10, SystemClock.elapsedRealtime() * 1000);

        assertEquals(10, unparceledOffBatteryTimer.getTotalTimeLocked(0,
                BatteryStats.STATS_SINCE_CHARGED));
+50 −15
Original line number Diff line number Diff line
@@ -36,22 +36,22 @@ public class BatteryStatsServTest extends TestCase {
        }

        void populate() {
            mStartTime = 1010;
            mRunningSince = 2021;
            mStartTimeMs = 1010;
            mRunningSinceMs = 2021;
            mRunning = true;
            mStarts = 4042;
            mLaunchedTime = 5053;
            mLaunchedSince = 6064;
            mLaunchedTimeMs = 5053;
            mLaunchedSinceMs = 6064;
            mLaunched = true;
            mLaunches = 8085;
        }

        long getStartTime() {
            return mStartTime;
            return mStartTimeMs;
        }

        long getRunningSince() {
            return mRunningSince;
            return mRunningSinceMs;
        }

        void setRunning(boolean val) {
@@ -67,11 +67,11 @@ public class BatteryStatsServTest extends TestCase {
        }

        long getLaunchedTime() {
            return mLaunchedTime;
            return mLaunchedTimeMs;
        }

        long getLaunchedSince() {
            return mLaunchedSince;
            return mLaunchedSinceMs;
        }

        void setLaunched(boolean val) {
@@ -173,7 +173,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };

@@ -202,7 +207,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };

@@ -229,7 +239,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };
        TestServ serv = new TestServ(bsi);
@@ -259,7 +274,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };
        TestServ serv = new TestServ(bsi);
@@ -316,7 +336,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };
        TestServ serv = new TestServ(bsi);
@@ -345,7 +370,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };
        TestServ serv = new TestServ(bsi);
@@ -374,7 +404,12 @@ public class BatteryStatsServTest extends TestCase {
        MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() {
            @Override
            public long getBatteryUptimeLocked() {
                return 777777L;
                return 777777L * 1000; // microseconds
            }

            @Override
            public long getBatteryUptimeLocked(long uptimeMs) {
                return 777777L * 1000; // microseconds
            }
        };
        TestServ serv = new TestServ(bsi);
+16 −16
Original line number Diff line number Diff line
@@ -41,29 +41,29 @@ public class BatteryStatsTimeBaseTest extends TestCase {
        public void populate(long uptime, long realtime, boolean running, long pastUptime,
                long uptimeStart, long pastRealtime, long realtimeStart,
                long unpluggedUptime, long unpluggedRealtime) {
            mUptime = uptime;
            mRealtime = realtime;
            mUptimeUs = uptime;
            mRealtimeUs = realtime;
            mRunning = running;
            mPastUptime = pastUptime;
            mUptimeStart = uptimeStart;
            mPastRealtime = pastRealtime;
            mRealtimeStart = realtimeStart;
            mUnpluggedUptime = unpluggedUptime;
            mUnpluggedRealtime = unpluggedRealtime;
            mPastUptimeUs = pastUptime;
            mUptimeStartUs = uptimeStart;
            mPastRealtimeUs = pastRealtime;
            mRealtimeStartUs = realtimeStart;
            mUnpluggedUptimeUs = unpluggedUptime;
            mUnpluggedRealtimeUs = unpluggedRealtime;
        }

        public void verify(long uptime, long realtime, boolean running, long pastUptime,
                long uptimeStart, long pastRealtime, long realtimeStart,
                long unpluggedUptime, long unpluggedRealtime) {
            Assert.assertEquals(uptime, mUptime);
            Assert.assertEquals(realtime, mRealtime);
            Assert.assertEquals(uptime, mUptimeUs);
            Assert.assertEquals(realtime, mRealtimeUs);
            Assert.assertEquals(running, mRunning);
            Assert.assertEquals(pastUptime, mPastUptime);
            Assert.assertEquals(uptimeStart, mUptimeStart);
            Assert.assertEquals(pastRealtime, mPastRealtime);
            Assert.assertEquals(realtimeStart, mRealtimeStart);
            Assert.assertEquals(unpluggedUptime, mUnpluggedUptime);
            Assert.assertEquals(unpluggedRealtime, mUnpluggedRealtime);
            Assert.assertEquals(pastUptime, mPastUptimeUs);
            Assert.assertEquals(uptimeStart, mUptimeStartUs);
            Assert.assertEquals(pastRealtime, mPastRealtimeUs);
            Assert.assertEquals(realtimeStart, mRealtimeStartUs);
            Assert.assertEquals(unpluggedUptime, mUnpluggedUptimeUs);
            Assert.assertEquals(unpluggedRealtime, mUnpluggedRealtimeUs);
        }
    }

+6 −5
Original line number Diff line number Diff line
@@ -49,7 +49,8 @@ public class BatteryStatsTimerTest extends TestCase {
            super(clocks, type, timeBase);
        }

        protected long computeRunTimeLocked(long curBatteryRealtime) {
        @Override
        protected long computeRunTimeLocked(long curBatteryRealtime, long elapsedRealtimeUs) {
            lastComputeRunTimeRealtime = curBatteryRealtime;
            return nextComputeRunTime;
        }
@@ -67,19 +68,19 @@ public class BatteryStatsTimerTest extends TestCase {
        }

        public long getTotalTime() {
            return mTotalTime;
            return mTotalTimeUs;
        }

        public void setTotalTime(long val) {
            mTotalTime = val;
            mTotalTimeUs = val;
        }

        public long getTimeBeforeMark() {
            return mTimeBeforeMark;
            return mTimeBeforeMarkUs;
        }

        public void setTimeBeforeMark(long val) {
            mTimeBeforeMark = val;
            mTimeBeforeMarkUs = val;
        }
    }

Loading