diff --git a/services/core/java/com/android/server/vibrator/OWNERS b/services/core/java/com/android/server/vibrator/OWNERS
index 08f0a90485cc8..9afa682109479 100644
--- a/services/core/java/com/android/server/vibrator/OWNERS
+++ b/services/core/java/com/android/server/vibrator/OWNERS
@@ -1,3 +1,6 @@
+# Bug component: 345036
+
lsandrade@google.com
michaelwr@google.com
-sbowden@google.com
\ No newline at end of file
+sbowden@google.com
+khalilahmad@google.com
\ No newline at end of file
diff --git a/services/tests/vibrator/Android.bp b/services/tests/vibrator/Android.bp
new file mode 100644
index 0000000000000..ca5cfa5b60f5f
--- /dev/null
+++ b/services/tests/vibrator/Android.bp
@@ -0,0 +1,62 @@
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "frameworks_base_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["frameworks_base_license"],
+}
+
+android_test {
+ name: "FrameworksVibratorServicesTests",
+
+ srcs: [
+ "src/**/*.java",
+ ],
+
+ libs: [
+ "android.hardware.vibrator-V2-java",
+ "android.test.mock",
+ "android.test.base",
+ "android.test.runner",
+ ],
+
+ static_libs: [
+ "androidx.test.core",
+ "androidx.test.ext.truth",
+ "androidx.test.runner",
+ "androidx.test.rules",
+ "androidx.test.ext.junit",
+ "frameworks-base-testutils",
+ "frameworks-services-vibrator-testutils",
+ "junit",
+ "mockito-target-minus-junit4",
+ "platform-test-annotations",
+ "service-permission.stubs.system_server",
+ "services.core",
+ ],
+
+ platform_apis: true,
+ certificate: "platform",
+ dxflags: ["--multi-dex"],
+
+ test_suites: [
+ "device-tests",
+ "automotive-tests",
+ ],
+
+ optimize: {
+ enabled: false,
+ },
+}
+
+java_library {
+ name: "frameworks-services-vibrator-testutils",
+ visibility: [":__subpackages__"],
+ srcs: [
+ "utils/**/*.java",
+ ],
+ static_libs: [
+ "services.core",
+ ],
+}
diff --git a/services/tests/vibrator/AndroidManifest.xml b/services/tests/vibrator/AndroidManifest.xml
new file mode 100644
index 0000000000000..2a15c15fce41c
--- /dev/null
+++ b/services/tests/vibrator/AndroidManifest.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/services/tests/vibrator/AndroidTest.xml b/services/tests/vibrator/AndroidTest.xml
new file mode 100644
index 0000000000000..d5ee3afaedb6d
--- /dev/null
+++ b/services/tests/vibrator/AndroidTest.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/OWNERS b/services/tests/vibrator/OWNERS
similarity index 71%
rename from services/tests/servicestests/src/com/android/server/vibrator/OWNERS
rename to services/tests/vibrator/OWNERS
index cc63ceb2c7ad8..93b44f4788c52 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/OWNERS
+++ b/services/tests/vibrator/OWNERS
@@ -1 +1,3 @@
+# Bug component: 345036
+
include /services/core/java/com/android/server/vibrator/OWNERS
diff --git a/services/tests/vibrator/TEST_MAPPING b/services/tests/vibrator/TEST_MAPPING
new file mode 100644
index 0000000000000..f0a7e470f8fda
--- /dev/null
+++ b/services/tests/vibrator/TEST_MAPPING
@@ -0,0 +1,21 @@
+{
+ "presubmit": [
+ {
+ "name": "FrameworksVibratorServicesTests",
+ "options": [
+ {"exclude-annotation": "android.platform.test.annotations.LargeTest"},
+ {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
+ {"exclude-annotation": "androidx.test.filters.FlakyTest"},
+ {"exclude-annotation": "org.junit.Ignore"}
+ ]
+ }
+ ],
+ "postsubmit": [
+ {
+ "name": "FrameworksVibratorServicesTests",
+ "options": [
+ {"exclude-annotation": "org.junit.Ignore"}
+ ]
+ }
+ ]
+}
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/DeviceAdapterTest.java b/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/DeviceAdapterTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
index 27ed50767753b..3013ed025bd92 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/DeviceAdapterTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/DeviceAdapterTest.java
@@ -32,7 +32,6 @@ import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.RampSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import android.util.SparseArray;
import androidx.test.InstrumentationRegistry;
@@ -48,13 +47,6 @@ import org.mockito.junit.MockitoRule;
import java.util.Arrays;
-/**
- * Tests for {@link DeviceAdapter}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:DeviceAdapterTest
- */
-@Presubmit
public class DeviceAdapterTest {
private static final int EMPTY_VIBRATOR_ID = 1;
private static final int PWLE_VIBRATOR_ID = 2;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java b/services/tests/vibrator/src/com/android/server/vibrator/InputDeviceDelegateTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/InputDeviceDelegateTest.java
index f3c17a84cdc25..f3ecfcc933b44 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/InputDeviceDelegateTest.java
@@ -41,7 +41,6 @@ import android.os.Process;
import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.os.test.TestLooper;
-import android.platform.test.annotations.Presubmit;
import android.view.InputDevice;
import androidx.test.InstrumentationRegistry;
@@ -54,13 +53,6 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-/**
- * Tests for {@link InputDeviceDelegate}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:InputDeviceDelegateTest
- */
-@Presubmit
public class InputDeviceDelegateTest {
private static final int UID = Process.ROOT_UID;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/RampDownAdapterTest.java b/services/tests/vibrator/src/com/android/server/vibrator/RampDownAdapterTest.java
similarity index 99%
rename from services/tests/servicestests/src/com/android/server/vibrator/RampDownAdapterTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/RampDownAdapterTest.java
index 78ded09addcfa..141da7cb86fc8 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/RampDownAdapterTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/RampDownAdapterTest.java
@@ -25,7 +25,6 @@ import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.RampSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import org.junit.Before;
import org.junit.Test;
@@ -34,13 +33,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-/**
- * Tests for {@link RampDownAdapter}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:RampDownAdapterTest
- */
-@Presubmit
public class RampDownAdapterTest {
private static final int TEST_RAMP_DOWN_DURATION = 20;
private static final int TEST_STEP_DURATION = 5;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/RampToStepAdapterTest.java b/services/tests/vibrator/src/com/android/server/vibrator/RampToStepAdapterTest.java
similarity index 96%
rename from services/tests/servicestests/src/com/android/server/vibrator/RampToStepAdapterTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/RampToStepAdapterTest.java
index f9c47fa082b6d..8bb21b3af4485 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/RampToStepAdapterTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/RampToStepAdapterTest.java
@@ -26,7 +26,6 @@ import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.RampSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import org.junit.Before;
import org.junit.Test;
@@ -36,13 +35,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
-/**
- * Tests for {@link RampToStepAdapter}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:RampToStepAdapterTest
- */
-@Presubmit
public class RampToStepAdapterTest {
private static final int TEST_STEP_DURATION = 5;
private static final float[] TEST_AMPLITUDE_MAP = new float[]{
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/StepToRampAdapterTest.java b/services/tests/vibrator/src/com/android/server/vibrator/StepToRampAdapterTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/StepToRampAdapterTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/StepToRampAdapterTest.java
index b22efa25e6798..58deeecd35c9c 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/StepToRampAdapterTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/StepToRampAdapterTest.java
@@ -26,7 +26,6 @@ import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.RampSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import org.junit.Before;
import org.junit.Test;
@@ -36,13 +35,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
-/**
- * Tests for {@link StepToRampAdapter}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:StepToRampAdapterTest
- */
-@Presubmit
public class StepToRampAdapterTest {
private static final float[] TEST_AMPLITUDE_MAP = new float[]{
/* 50Hz= */ 0.1f, 0.2f, 0.4f, 0.8f, /* 150Hz= */ 1f, 0.9f, /* 200Hz= */ 0.8f};
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationScalerTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationScalerTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibrationScalerTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibrationScalerTest.java
index 7c321d4d5cd74..bbca704e58c89 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationScalerTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationScalerTest.java
@@ -48,7 +48,6 @@ import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationConfig;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import android.provider.Settings;
import androidx.test.InstrumentationRegistry;
@@ -65,13 +64,6 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-/**
- * Tests for {@link VibrationScaler}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibrationScalerTest
- */
-@Presubmit
public class VibrationScalerTest {
@Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationSettingsTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java
similarity index 99%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibrationSettingsTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java
index b6f1271dd955d..1ae096617dcec 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationSettingsTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java
@@ -70,7 +70,6 @@ import android.os.VibrationEffect;
import android.os.Vibrator;
import android.os.test.TestLooper;
import android.os.vibrator.VibrationConfig;
-import android.platform.test.annotations.Presubmit;
import android.provider.Settings;
import android.util.ArraySet;
import android.view.Display;
@@ -94,13 +93,6 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
-/**
- * Tests for {@link VibrationSettings}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibrationSettingsTest
- */
-@Presubmit
public class VibrationSettingsTest {
private static final int UID = 1;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationTest.java
similarity index 86%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibrationTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibrationTest.java
index b46929947fe4f..84f8412fb4b51 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationTest.java
@@ -20,19 +20,10 @@ import static com.google.common.truth.Truth.assertThat;
import static java.util.stream.Collectors.toList;
-import android.platform.test.annotations.Presubmit;
-
import org.junit.Test;
import java.util.Arrays;
-/**
- * Tests for {@link Vibration}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibrationTest
- */
-@Presubmit
public class VibrationTest {
@Test
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
similarity index 99%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
index 01b2d0fa59386..aa3bee49f4962 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationThreadTest.java
@@ -61,7 +61,6 @@ import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationConfig;
import android.os.vibrator.VibrationEffectSegment;
import android.platform.test.annotations.LargeTest;
-import android.platform.test.annotations.Presubmit;
import android.util.SparseArray;
import androidx.test.InstrumentationRegistry;
@@ -70,6 +69,7 @@ import com.android.server.LocalServices;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.InOrder;
@@ -85,13 +85,6 @@ import java.util.Map;
import java.util.function.BooleanSupplier;
import java.util.stream.Collectors;
-/**
- * Tests for {@link VibrationThread}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibrationThreadTest
- */
-@Presubmit
public class VibrationThreadTest {
private static final int TEST_TIMEOUT_MILLIS = 900;
@@ -468,6 +461,7 @@ public class VibrationThreadTest {
fakeVibrator.getEffectSegments(vibrationId));
}
+ @Ignore("b/290940400")
@LargeTest
@Test
public void vibrate_singleVibratorRepeatingAlwaysOnWaveform_turnsVibratorBackOn()
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorControllerTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibratorControllerTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
index f2c1874de3921..0d13be6d5ab2e 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorControllerTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorControllerTest.java
@@ -45,7 +45,6 @@ import android.os.test.TestLooper;
import android.os.vibrator.PrebakedSegment;
import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.RampSegment;
-import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
@@ -61,13 +60,6 @@ import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-/**
- * Tests for {@link VibratorController}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibratorControllerTest
- */
-@Presubmit
public class VibratorControllerTest {
private static final int VIBRATOR_ID = 0;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java
similarity index 95%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java
index c1ab1db2732ec..3466bbb26fc85 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorFrameworkStatsLoggerTest.java
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertTrue;
import android.os.Handler;
import android.os.test.TestLooper;
-import android.platform.test.annotations.Presubmit;
import org.junit.Before;
import org.junit.Rule;
@@ -29,13 +28,6 @@ import org.junit.Test;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-/**
- * Tests for {@link VibratorFrameworkStatsLogger}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibratorFrameworkStatsLoggerTest
- */
-@Presubmit
public class VibratorFrameworkStatsLoggerTest {
@Rule public MockitoRule rule = MockitoJUnit.rule();
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
similarity index 99%
rename from services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java
rename to services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
index 9a911f40392dc..c6cd07844ffea 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java
+++ b/services/tests/vibrator/src/com/android/server/vibrator/VibratorManagerServiceTest.java
@@ -70,13 +70,13 @@ import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.os.VibratorInfo;
+import android.os.test.FakeVibrator;
import android.os.test.TestLooper;
import android.os.vibrator.PrebakedSegment;
import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.StepSegment;
import android.os.vibrator.VibrationConfig;
import android.os.vibrator.VibrationEffectSegment;
-import android.platform.test.annotations.Presubmit;
import android.provider.Settings;
import android.util.ArraySet;
import android.util.SparseBooleanArray;
@@ -111,13 +111,6 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
-/**
- * Tests for {@link VibratorManagerService}.
- *
- * Build/Install/Run:
- * atest FrameworksServicesTests:VibratorManagerServiceTest
- */
-@Presubmit
public class VibratorManagerServiceTest {
private static final int TEST_TIMEOUT_MILLIS = 1_000;
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibrator.java b/services/tests/vibrator/utils/android/os/test/FakeVibrator.java
similarity index 91%
rename from services/tests/servicestests/src/com/android/server/vibrator/FakeVibrator.java
rename to services/tests/vibrator/utils/android/os/test/FakeVibrator.java
index 4556a4a47017c..56f49d4e0b7bd 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibrator.java
+++ b/services/tests/vibrator/utils/android/os/test/FakeVibrator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server.vibrator;
+package android.os.test;
import android.annotation.NonNull;
import android.content.Context;
@@ -23,9 +23,9 @@ import android.os.VibrationEffect;
import android.os.Vibrator;
/** Fake implementation of {@link Vibrator} for service tests. */
-final class FakeVibrator extends Vibrator {
+public final class FakeVibrator extends Vibrator {
- FakeVibrator(Context context) {
+ public FakeVibrator(Context context) {
super(context);
}
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java b/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java
rename to services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
index c484f457faea6..12815fa7fb5ff 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java
+++ b/services/tests/vibrator/utils/com/android/server/vibrator/FakeVibratorControllerProvider.java
@@ -37,10 +37,10 @@ import java.util.Map;
import java.util.TreeMap;
/**
- * Provides {@link VibratorController} with controlled vibrator hardware capabilities and
- * interactions.
+ * Provides {@link VibratorController} with configurable vibrator hardware capabilities and
+ * fake interactions for tests.
*/
-final class FakeVibratorControllerProvider {
+public final class FakeVibratorControllerProvider {
private static final int EFFECT_DURATION = 20;
private final Map mEnabledAlwaysOnEffects = new HashMap<>();