Partial cherrypick of "CTS: Ensure battery saver will prevent jobs"
On the master branch, the CTS test factored out a skip condition to a
method. We need the refactoring on P as well, so that the addition
necessary for more types of batteryless devices merges cleanly.
Change-Id: I56e8c68c35ea51596e232a16b7e602e5946dd1df
Merged-In: I56e8c68c35ea51596e232a16b7e602e5946dd1df
Bug: 126777005
Test: CtsBatterySavingTestCases
(cherry picked from commit a92f36f32d2ea3cbe8e77b4bb7e378622406c4f1)
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
index cbd23e9..c8b5186 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
@@ -18,12 +18,15 @@
import static com.android.compatibility.common.util.SettingsUtils.putGlobalSetting;
import static com.android.compatibility.common.util.TestUtils.waitUntil;
+import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.PowerManager;
import android.provider.Settings.Global;
import androidx.test.InstrumentationRegistry;
import android.util.Log;
+import org.junit.Assume;
+
public class BatteryUtils {
private static final String TAG = "CtsBatteryUtils";
@@ -103,4 +106,15 @@
AmUtils.waitForBroadcastIdle();
Log.d(TAG, "Screen turned " + (on ? "ON" : "OFF"));
}
+
+ /** @return true if the device supports battery saver. */
+ public static boolean isBatterySaverSupported() {
+ final PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
+ return !pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
+ }
+
+ /** "Assume" the current device supports battery saver. */
+ public static void assumeBatterySaverFeature() {
+ Assume.assumeTrue("Device doesn't support battery saver", isBatterySaverSupported());
+ }
}
diff --git a/common/device-side/util/src/com/android/compatibility/common/util/BatteryUtils.java b/common/device-side/util/src/com/android/compatibility/common/util/BatteryUtils.java
index 792db40..ba357a16 100644
--- a/common/device-side/util/src/com/android/compatibility/common/util/BatteryUtils.java
+++ b/common/device-side/util/src/com/android/compatibility/common/util/BatteryUtils.java
@@ -18,12 +18,15 @@
import static com.android.compatibility.common.util.SettingsUtils.putGlobalSetting;
import static com.android.compatibility.common.util.TestUtils.waitUntil;
+import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.PowerManager;
import android.provider.Settings.Global;
import android.support.test.InstrumentationRegistry;
import android.util.Log;
+import org.junit.Assume;
+
public class BatteryUtils {
private static final String TAG = "CtsBatteryUtils";
@@ -103,4 +106,15 @@
AmUtils.waitForBroadcastIdle();
Log.d(TAG, "Screen turned " + (on ? "ON" : "OFF"));
}
+
+ /** @return true if the device supports battery saver. */
+ public static boolean isBatterySaverSupported() {
+ final PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
+ return !pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
+ }
+
+ /** "Assume" the current device supports battery saver. */
+ public static void assumeBatterySaverFeature() {
+ Assume.assumeTrue("Device doesn't support battery saver", isBatterySaverSupported());
+ }
}
diff --git a/tests/tests/batterysaving/src/android/os/cts/batterysaving/BatterySavingTestBase.java b/tests/tests/batterysaving/src/android/os/cts/batterysaving/BatterySavingTestBase.java
index 8545c8a..cbfaca9 100644
--- a/tests/tests/batterysaving/src/android/os/cts/batterysaving/BatterySavingTestBase.java
+++ b/tests/tests/batterysaving/src/android/os/cts/batterysaving/BatterySavingTestBase.java
@@ -31,6 +31,7 @@
import androidx.test.InstrumentationRegistry;
+import com.android.compatibility.common.util.BatteryUtils;
import com.android.compatibility.common.util.BeforeAfterRule;
import com.android.compatibility.common.util.OnFailureRule;
@@ -62,9 +63,7 @@
private final BeforeAfterRule mInitializeAndCleanupRule = new BeforeAfterRule() {
@Override
protected void onBefore(Statement base, Description description) throws Throwable {
- // Don't run any battery saver tests on wear.
- final PackageManager pm = getPackageManager();
- Assume.assumeFalse(pm.hasSystemFeature(PackageManager.FEATURE_WATCH));
+ BatteryUtils.assumeBatterySaverFeature();
turnOnScreen(true);
}