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

Commit 92a2a9f5 authored by Philip Junker's avatar Philip Junker
Browse files

Parameterize PowerManagerServiceTest

Bug: 291888211
Test: atest PowerManagerServiceTest
Change-Id: I6eed668c86fbacaf840a99c9555880fe14fc8dc6
parent 73435cd3
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@ android_test {
        "services.core",
        "services.core",
        "servicestests-utils",
        "servicestests-utils",
        "testables",
        "testables",
        "TestParameterInjector",
    ],
    ],


    libs: [
    libs: [
+32 −121
Original line number Original line Diff line number Diff line
@@ -111,6 +111,9 @@ import com.android.server.power.batterysaver.BatterySaverStateMachine;
import com.android.server.power.batterysaver.BatterySavingStats;
import com.android.server.power.batterysaver.BatterySavingStats;
import com.android.server.testutils.OffsettableClock;
import com.android.server.testutils.OffsettableClock;


import com.google.testing.junit.testparameterinjector.TestParameter;
import com.google.testing.junit.testparameterinjector.TestParameterInjector;

import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;


@@ -119,6 +122,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentMatcher;
import org.mockito.ArgumentMatcher;
import org.mockito.Mock;
import org.mockito.Mock;
@@ -140,6 +144,7 @@ import java.util.concurrent.atomic.AtomicReference;
 *  atest FrameworksServicesTests:PowerManagerServiceTest
 *  atest FrameworksServicesTests:PowerManagerServiceTest
 */
 */
@SuppressWarnings("GuardedBy")
@SuppressWarnings("GuardedBy")
@RunWith(TestParameterInjector.class)
public class PowerManagerServiceTest {
public class PowerManagerServiceTest {
    private static final String SYSTEM_PROPERTY_QUIESCENT = "ro.boot.quiescent";
    private static final String SYSTEM_PROPERTY_QUIESCENT = "ro.boot.quiescent";
    private static final String SYSTEM_PROPERTY_REBOOT_REASON = "sys.boot.reason";
    private static final String SYSTEM_PROPERTY_REBOOT_REASON = "sys.boot.reason";
@@ -2768,39 +2773,13 @@ public class PowerManagerServiceTest {
    }
    }


    @Test
    @Test
    public void testFeatureEnabledProcStateUncachedToCached_fullWakeLockDisabled() {
    public void testFeatureEnabledProcStateUncachedToCached_screenWakeLockDisabled(
        doReturn(true).when(mDeviceParameterProvider)
            @TestParameter PowerManagerServiceTest.ScreenWakeLockTestParameter param) {
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("fullWakeLock", PowerManager.FULL_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);

        setCachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isTrue();
    }

    @Test
    public void testFeatureDisabledProcStateUncachedToCached_fullWakeLockEnabled() {
        doReturn(false).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("fullWakeLock", PowerManager.FULL_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);

        setCachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }

    @Test
    public void testFeatureEnabledProcStateUncachedToCached_screenBrightWakeLockDisabled() {
        doReturn(true).when(mDeviceParameterProvider)
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        createService();
        startSystem();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenBrightWakeLock",
        WakeLock wakeLock = acquireWakeLock(param.mDescr, param.mFlags);
                PowerManager.SCREEN_BRIGHT_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);
        setUncachedUidProcState(wakeLock.mOwnerUid);


        setCachedUidProcState(wakeLock.mOwnerUid);
        setCachedUidProcState(wakeLock.mOwnerUid);
@@ -2808,109 +2787,27 @@ public class PowerManagerServiceTest {
    }
    }


    @Test
    @Test
    public void testFeatureDisabledProcStateUncachedToCached_screenBrightWakeLockEnabled() {
    public void testFeatureDisabledProcStateUncachedToCached_screenWakeLockEnabled(
        doReturn(false).when(mDeviceParameterProvider)
            @TestParameter PowerManagerServiceTest.ScreenWakeLockTestParameter param) {
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenBrightWakeLock",
                PowerManager.SCREEN_BRIGHT_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);

        setCachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }

    @Test
    public void testFeatureEnabledProcStateUncachedToCached_screenDimWakeLockDisabled() {
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenDimWakeLock",
                PowerManager.SCREEN_DIM_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);

        setCachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isTrue();
    }

    @Test
    public void testFeatureDisabledProcStateUncachedToCached_screenDimWakeLockEnabled() {
        doReturn(false).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenDimWakeLock",
                PowerManager.SCREEN_DIM_WAKE_LOCK);
        setUncachedUidProcState(wakeLock.mOwnerUid);

        setCachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }

    @Test
    public void testFeatureEnabledProcStateCachedToUncached_fullWakeLockEnabled() {
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("fullWakeLock", PowerManager.FULL_WAKE_LOCK);
        setCachedUidProcState(wakeLock.mOwnerUid);

        setUncachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }

    @Test
    public void testFeatureDisabledProcStateCachedToUncached_fullWakeLockEnabled() {
        doReturn(false).when(mDeviceParameterProvider)
        doReturn(false).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        createService();
        startSystem();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("fullWakeLock", PowerManager.FULL_WAKE_LOCK);
        WakeLock wakeLock = acquireWakeLock(param.mDescr, param.mFlags);
        setCachedUidProcState(wakeLock.mOwnerUid);

        setUncachedUidProcState(wakeLock.mOwnerUid);
        setUncachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }

    @Test
    public void testFeatureEnabledProcStateCachedToUncached_screenBrightWakeLockEnabled() {
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenBrightWakeLock",
                PowerManager.SCREEN_BRIGHT_WAKE_LOCK);
        setCachedUidProcState(wakeLock.mOwnerUid);

        setUncachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
    }


    @Test
    public void testFeatureDisabledProcStateCachedToUncached_screenBrightWakeLockEnabled() {
        doReturn(false).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenBrightWakeLock",
                PowerManager.SCREEN_BRIGHT_WAKE_LOCK);
        setCachedUidProcState(wakeLock.mOwnerUid);
        setCachedUidProcState(wakeLock.mOwnerUid);

        setUncachedUidProcState(wakeLock.mOwnerUid);
        assertThat(wakeLock.mDisabled).isFalse();
        assertThat(wakeLock.mDisabled).isFalse();
    }
    }


    @Test
    @Test
    public void testFeatureEnabledProcStateCachedToUncached_screenDimWakeLockEnabled() {
    public void testFeatureEnabledProcStateCachedToUncached_screenWakeLockEnabled(
            @TestParameter PowerManagerServiceTest.ScreenWakeLockTestParameter param) {
        doReturn(true).when(mDeviceParameterProvider)
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        createService();
        startSystem();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenDimWakeLock",
        WakeLock wakeLock = acquireWakeLock(param.mDescr, param.mFlags);
                PowerManager.SCREEN_DIM_WAKE_LOCK);
        setCachedUidProcState(wakeLock.mOwnerUid);
        setCachedUidProcState(wakeLock.mOwnerUid);


        setUncachedUidProcState(wakeLock.mOwnerUid);
        setUncachedUidProcState(wakeLock.mOwnerUid);
@@ -2918,13 +2815,13 @@ public class PowerManagerServiceTest {
    }
    }


    @Test
    @Test
    public void testFeatureDisabledProcStateCachedToUncached_screenDimWakeLockEnabled() {
    public void testFeatureDisabledProcStateCachedToUncached_screenWakeLockEnabled(
            @TestParameter PowerManagerServiceTest.ScreenWakeLockTestParameter param) {
        doReturn(false).when(mDeviceParameterProvider)
        doReturn(false).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        createService();
        createService();
        startSystem();
        startSystem();
        WakeLock wakeLock = acquireWakeLock("screenDimWakeLock",
        WakeLock wakeLock = acquireWakeLock(param.mDescr, param.mFlags);
                PowerManager.SCREEN_DIM_WAKE_LOCK);
        setCachedUidProcState(wakeLock.mOwnerUid);
        setCachedUidProcState(wakeLock.mOwnerUid);


        setUncachedUidProcState(wakeLock.mOwnerUid);
        setUncachedUidProcState(wakeLock.mOwnerUid);
@@ -2932,7 +2829,7 @@ public class PowerManagerServiceTest {
    }
    }


    @Test
    @Test
    public void testFeatureDynamicallyDisabledProcStateUncachedToCached_fullWakeLockEnabled() {
    public void testFeatureDynamicallyDisabledProcStateUncachedToCached_screenWakeLockEnabled() {
        doReturn(true).when(mDeviceParameterProvider)
        doReturn(true).when(mDeviceParameterProvider)
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
                .isDisableScreenWakeLocksWhileCachedFeatureEnabled();
        ArgumentCaptor<DeviceConfig.OnPropertiesChangedListener> listenerCaptor =
        ArgumentCaptor<DeviceConfig.OnPropertiesChangedListener> listenerCaptor =
@@ -2960,4 +2857,18 @@ public class PowerManagerServiceTest {
    private void setUncachedUidProcState(int uid) {
    private void setUncachedUidProcState(int uid) {
        mService.updateUidProcStateInternal(uid, PROCESS_STATE_RECEIVER);
        mService.updateUidProcStateInternal(uid, PROCESS_STATE_RECEIVER);
    }
    }

    private enum ScreenWakeLockTestParameter {
        FULL_WAKE_LOCK("fullWakeLock", PowerManager.FULL_WAKE_LOCK),
        SCREEN_BRIGHT_WAKE_LOCK("screenBrightWakeLock", PowerManager.SCREEN_BRIGHT_WAKE_LOCK),
        SCREEN_DIM_WAKE_LOCK("screenDimWakeLock", PowerManager.SCREEN_DIM_WAKE_LOCK);

        final String mDescr;
        final int mFlags;

        ScreenWakeLockTestParameter(String descr, int flags) {
            this.mDescr = descr;
            this.mFlags = flags;
        }
    }
}
}