From b62859528e3b19e9c5d23741949192be9b330000 Mon Sep 17 00:00:00 2001 From: Adam Bookatz Date: Fri, 12 Feb 2021 13:16:20 -0800 Subject: [PATCH] TEST_MAPPING for BatteryStats Creates presubmit test mapping for BatteryStats-related files. These tests can be run manually via atest FrameworksServicesTests:com.android.server.am.BatteryExternalStatsWorkerTest FrameworksServicesTests:com.android.server.am.MeasuredEnergySnapshotTest FrameworksServicesTests:com.android.server.am.BatteryStatsServiceTest FrameworksCoreTests:com.android.internal.os.BatteryStatsTests Tests that currently fail are marked to be skipped; they should be addressed by b/180015146. This is accomplished by introducing a new annotation, @SkipPresubmit. Test: treehugger presubmit Bug: 180016384 Change-Id: If01beaa342468aeded660e5766a14391d3ee9bcc --- core/java/android/os/TEST_MAPPING | 17 +++++++++++ .../java/com/android/internal/os/TEST_MAPPING | 17 +++++++++++ .../com/android/internal/power/TEST_MAPPING | 19 ++++++++++++ .../internal/os/BatteryStatsCpuTimesTest.java | 1 + .../internal/os/BatteryStatsImplTest.java | 2 ++ .../internal/os/BatteryStatsNoteTest.java | 2 ++ .../os/BatteryStatsSamplingTimerTest.java | 1 + .../internal/os/BatteryStatsTests.java | 3 +- .../os/BatteryStatsUserLifecycleTests.java | 1 + .../internal/os/BatteryUsageStatsTest.java | 1 + .../os/BluetoothPowerCalculatorTest.java | 2 ++ .../os/BstatsCpuTimesValidationTest.java | 2 ++ .../internal/os/CpuPowerCalculatorTest.java | 1 + .../os/CustomMeasuredPowerCalculatorTest.java | 1 + .../os/KernelCpuUidUserSysTimeReaderTest.java | 1 + .../android/internal/os/SkipPresubmit.java | 30 +++++++++++++++++++ .../os/SystemServicePowerCalculatorTest.java | 1 + .../java/com/android/server/am/TEST_MAPPING | 17 +++++++++++ .../server/am/BatteryStatsServiceTest.java | 2 ++ 19 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 core/java/com/android/internal/power/TEST_MAPPING create mode 100644 core/tests/coretests/src/com/android/internal/os/SkipPresubmit.java diff --git a/core/java/android/os/TEST_MAPPING b/core/java/android/os/TEST_MAPPING index 1bdc82a82c6ce..97e03e9d0d94b 100644 --- a/core/java/android/os/TEST_MAPPING +++ b/core/java/android/os/TEST_MAPPING @@ -38,6 +38,23 @@ "include-filter": "com.android.server.pm.parsing.PackageInfoUserFieldsTest" } ] + }, + { + "file_patterns": ["BatteryStats.java"], + "name": "FrameworksCoreTests", + "options": [ + { "include-filter": "com.android.internal.os.BatteryStatsTests" }, + { "exclude-annotation": "com.android.internal.os.SkipPresubmit" } + ] + }, + { + "file_patterns": ["BatteryStats.java"], + "name": "FrameworksServicesTests", + "options": [ + { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, + { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, + { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + ] } ], "postsubmit": [ diff --git a/core/java/com/android/internal/os/TEST_MAPPING b/core/java/com/android/internal/os/TEST_MAPPING index 9698f190a4194..791e9ad5ef9df 100644 --- a/core/java/com/android/internal/os/TEST_MAPPING +++ b/core/java/com/android/internal/os/TEST_MAPPING @@ -1,5 +1,22 @@ { "presubmit": [ + { + "file_patterns": ["Battery[^/]*\\.java"], + "name": "FrameworksCoreTests", + "options": [ + { "include-filter": "com.android.internal.os.BatteryStatsTests" }, + { "exclude-annotation": "com.android.internal.os.SkipPresubmit" } + ] + }, + { + "file_patterns": ["Battery[^/]*\\.java"], + "name": "FrameworksServicesTests", + "options": [ + { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, + { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, + { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + ] + }, { "name": "FrameworksCoreTests", "options": [ diff --git a/core/java/com/android/internal/power/TEST_MAPPING b/core/java/com/android/internal/power/TEST_MAPPING new file mode 100644 index 0000000000000..96f31bcbe5b20 --- /dev/null +++ b/core/java/com/android/internal/power/TEST_MAPPING @@ -0,0 +1,19 @@ +{ + "presubmit": [ + { + "name": "FrameworksCoreTests", + "options": [ + { "include-filter": "com.android.internal.os.BatteryStatsTests" }, + { "exclude-annotation": "com.android.internal.os.SkipPresubmit" } + ] + }, + { + "name": "FrameworksServicesTests", + "options": [ + { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, + { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, + { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + ] + } + ] +} diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsCpuTimesTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsCpuTimesTest.java index 9cac7e7949659..ff728d6510674 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsCpuTimesTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsCpuTimesTest.java @@ -77,6 +77,7 @@ import java.util.Arrays; * bit FrameworksCoreTests:com.android.internal.os.BatteryStatsCpuTimesTest */ @SmallTest +@SkipPresubmit("b/180015146") @RunWith(AndroidJUnit4.class) public class BatteryStatsCpuTimesTest { @Mock diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsImplTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsImplTest.java index 4b37dd226e69d..24baa93337ba5 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsImplTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsImplTest.java @@ -73,6 +73,7 @@ public class BatteryStatsImplTest { } @Test + @SkipPresubmit("b/180015146") public void testUpdateProcStateCpuTimes() { mBatteryStatsImpl.setOnBatteryInternal(true); mBatteryStatsImpl.updateTimeBasesLocked(false, Display.STATE_ON, 0, 0); @@ -230,6 +231,7 @@ public class BatteryStatsImplTest { } @Test + @SkipPresubmit("b/180015146") public void testCopyFromAllUidsCpuTimes() { mBatteryStatsImpl.setOnBatteryInternal(false); mBatteryStatsImpl.updateTimeBasesLocked(false, Display.STATE_ON, 0, 0); diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java index 6652c64c43447..931611ea74781 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java @@ -295,6 +295,7 @@ public class BatteryStatsNoteTest extends TestCase { } @SmallTest + @SkipPresubmit("b/180015146") public void testAlarmStartAndFinishLocked() throws Exception { final MockClocks clocks = new MockClocks(); // holds realtime and uptime in ms MockBatteryStatsImpl bi = new MockBatteryStatsImpl(clocks); @@ -332,6 +333,7 @@ public class BatteryStatsNoteTest extends TestCase { } @SmallTest + @SkipPresubmit("b/180015146") public void testAlarmStartAndFinishLocked_workSource() throws Exception { final MockClocks clocks = new MockClocks(); // holds realtime and uptime in ms MockBatteryStatsImpl bi = new MockBatteryStatsImpl(clocks); diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java index 3b27f1897bd2b..dd814e651edeb 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsSamplingTimerTest.java @@ -56,6 +56,7 @@ public class BatteryStatsSamplingTimerTest extends TestCase { } @SmallTest + @SkipPresubmit("b/180015146") public void testEndSampleAndContinueWhenTimeOrCountDecreases() throws Exception { final MockClocks clocks = new MockClocks(); final BatteryStatsImpl.TimeBase timeBase = Mockito.mock(BatteryStatsImpl.TimeBase.class); diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java index b819d9edb2a80..3c7c98334d522 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java @@ -75,5 +75,4 @@ import org.junit.runners.Suite; com.android.internal.power.MeasuredEnergyStatsTest.class }) public class BatteryStatsTests { -} - +} \ No newline at end of file diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsUserLifecycleTests.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsUserLifecycleTests.java index e7a1bcae459ad..e90bcb76e457f 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsUserLifecycleTests.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsUserLifecycleTests.java @@ -78,6 +78,7 @@ public class BatteryStatsUserLifecycleTests { } @Test + @SkipPresubmit("b/180015146") public void testNoCpuDataForRemovedUser() throws Exception { mIam.startUserInBackground(mTestUserId); waitUntilTrue("No uids for started user " + mTestUserId, diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java index 355ac6dbcc00d..0cc94fc806237 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java @@ -35,6 +35,7 @@ import org.junit.runner.RunWith; import java.util.List; @SmallTest +@SkipPresubmit("b/180015146") @RunWith(AndroidJUnit4.class) public class BatteryUsageStatsTest { diff --git a/core/tests/coretests/src/com/android/internal/os/BluetoothPowerCalculatorTest.java b/core/tests/coretests/src/com/android/internal/os/BluetoothPowerCalculatorTest.java index e5594712db10e..f6aa08bf0645e 100644 --- a/core/tests/coretests/src/com/android/internal/os/BluetoothPowerCalculatorTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BluetoothPowerCalculatorTest.java @@ -43,6 +43,7 @@ public class BluetoothPowerCalculatorTest { .setAveragePower(PowerProfile.POWER_BLUETOOTH_CONTROLLER_TX, 100.0); @Test + @SkipPresubmit("b/180015146") public void testTimerBasedModel() { setDurationsAndPower(mStatsRule.getUidStats(Process.BLUETOOTH_UID) .getOrCreateBluetoothControllerActivityLocked(), @@ -73,6 +74,7 @@ public class BluetoothPowerCalculatorTest { } @Test + @SkipPresubmit("b/180015146") public void testReportedPowerBasedModel() { setDurationsAndPower(mStatsRule.getUidStats(Process.BLUETOOTH_UID) .getOrCreateBluetoothControllerActivityLocked(), diff --git a/core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java b/core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java index a80f5a03ee4eb..4fe7d70e86ff9 100644 --- a/core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java @@ -382,6 +382,7 @@ public class BstatsCpuTimesValidationTest { } @Test + @SkipPresubmit("b/180015146 flakey") public void testCpuFreqTimes_stateFgService() throws Exception { if (!sCpuFreqTimesAvailable || !sPerProcStateTimesAvailable) { Log.w(TAG, "Skipping " + testName.getMethodName() @@ -514,6 +515,7 @@ public class BstatsCpuTimesValidationTest { } @Test + @SkipPresubmit("b/180015146") public void testCpuFreqTimes_trackingDisabled() throws Exception { if (!sCpuFreqTimesAvailable || !sPerProcStateTimesAvailable) { Log.w(TAG, "Skipping " + testName.getMethodName() diff --git a/core/tests/coretests/src/com/android/internal/os/CpuPowerCalculatorTest.java b/core/tests/coretests/src/com/android/internal/os/CpuPowerCalculatorTest.java index 9cf0d375ff510..e691beb09a702 100644 --- a/core/tests/coretests/src/com/android/internal/os/CpuPowerCalculatorTest.java +++ b/core/tests/coretests/src/com/android/internal/os/CpuPowerCalculatorTest.java @@ -92,6 +92,7 @@ public class CpuPowerCalculatorTest { } @Test + @SkipPresubmit("b/180015146") public void testTimerBasedModel() { when(mMockUserInfoProvider.exists(anyInt())).thenReturn(true); diff --git a/core/tests/coretests/src/com/android/internal/os/CustomMeasuredPowerCalculatorTest.java b/core/tests/coretests/src/com/android/internal/os/CustomMeasuredPowerCalculatorTest.java index a4ea8923794a9..f298f5988fc3a 100644 --- a/core/tests/coretests/src/com/android/internal/os/CustomMeasuredPowerCalculatorTest.java +++ b/core/tests/coretests/src/com/android/internal/os/CustomMeasuredPowerCalculatorTest.java @@ -42,6 +42,7 @@ public class CustomMeasuredPowerCalculatorTest { public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule(); @Test + @SkipPresubmit("b/180015146") public void testMeasuredEnergyCopiedIntoBatteryConsumers() { final BatteryStatsImpl batteryStats = mStatsRule.getBatteryStats(); SparseLongArray uidEnergies = new SparseLongArray(); diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java index 7dca0cb92f9d5..177f34875894c 100644 --- a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java +++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java @@ -87,6 +87,7 @@ public class KernelCpuUidUserSysTimeReaderTest { } @Test + @SkipPresubmit("b/180015146") public void testThrottler() throws Exception { mReader = new KernelCpuUidUserSysTimeReader( new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), true); diff --git a/core/tests/coretests/src/com/android/internal/os/SkipPresubmit.java b/core/tests/coretests/src/com/android/internal/os/SkipPresubmit.java new file mode 100644 index 0000000000000..d03ed663cc89b --- /dev/null +++ b/core/tests/coretests/src/com/android/internal/os/SkipPresubmit.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.os; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** Annotation to skip a test from TEST_MAPPING presubmit. */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD}) +public @interface SkipPresubmit { + /** The optional reason why the test is ignored. */ + String value() default ""; +} diff --git a/core/tests/coretests/src/com/android/internal/os/SystemServicePowerCalculatorTest.java b/core/tests/coretests/src/com/android/internal/os/SystemServicePowerCalculatorTest.java index dfbf28b286c6c..b5282e9a625a5 100644 --- a/core/tests/coretests/src/com/android/internal/os/SystemServicePowerCalculatorTest.java +++ b/core/tests/coretests/src/com/android/internal/os/SystemServicePowerCalculatorTest.java @@ -78,6 +78,7 @@ public class SystemServicePowerCalculatorTest { } @Test + @SkipPresubmit("b/180015146") public void testPowerProfileBasedModel() { when(mMockUserInfoProvider.exists(anyInt())).thenReturn(true); diff --git a/services/core/java/com/android/server/am/TEST_MAPPING b/services/core/java/com/android/server/am/TEST_MAPPING index 4061df4f3f62d..03eddc9634d78 100644 --- a/services/core/java/com/android/server/am/TEST_MAPPING +++ b/services/core/java/com/android/server/am/TEST_MAPPING @@ -44,6 +44,23 @@ "exclude-annotation": "androidx.test.filters.FlakyTest" } ] + }, + { + "file_patterns": ["Battery[^/]*\\.java", "MeasuredEnergy[^/]*\\.java"], + "name": "FrameworksCoreTests", + "options": [ + { "include-filter": "com.android.internal.os.BatteryStatsTests" }, + { "exclude-annotation": "com.android.internal.os.SkipPresubmit" } + ] + }, + { + "file_patterns": ["Battery[^/]*\\.java", "MeasuredEnergy[^/]*\\.java"], + "name": "FrameworksServicesTests", + "options": [ + { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, + { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, + { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + ] } ], "postsubmit": [ diff --git a/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java index 488e5cdf33b97..1870df9ecf173 100644 --- a/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java @@ -30,6 +30,7 @@ import com.android.internal.os.BatteryStatsImpl; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -59,6 +60,7 @@ public final class BatteryStatsServiceTest { } @Test + @Ignore("b/180015146") public void testAwaitCompletion() throws Exception { final CountDownLatch readyLatch = new CountDownLatch(2); final CountDownLatch startLatch = new CountDownLatch(1);