diff --git a/core/java/android/os/TEST_MAPPING b/core/java/android/os/TEST_MAPPING
index 5c4aa4a233fc0..ea5499f4d5cde 100644
--- a/core/java/android/os/TEST_MAPPING
+++ b/core/java/android/os/TEST_MAPPING
@@ -1,5 +1,18 @@
{
"presubmit": [
+ {
+ "file_patterns": [
+ "[^/]*(Vibrator|Vibration)[^/]*\\.java",
+ "vibrator/.*"
+ ],
+ "name": "FrameworksVibratorCoreTests",
+ "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"}
+ ]
+ },
{
"file_patterns": ["Bugreport[^/]*\\.java"],
"name": "BugreportManagerTestCases",
diff --git a/core/tests/vibrator/Android.bp b/core/tests/vibrator/Android.bp
new file mode 100644
index 0000000000000..829409a36986d
--- /dev/null
+++ b/core/tests/vibrator/Android.bp
@@ -0,0 +1,40 @@
+package {
+ // See: http://go/android-license-faq
+ default_applicable_licenses: ["frameworks_base_license"],
+}
+
+android_test {
+ name: "FrameworksVibratorCoreTests",
+
+ srcs: [
+ "src/**/*.java",
+ ],
+
+ static_libs: [
+ "frameworks-base-testutils",
+ "guava",
+ "androidx.core_core",
+ "androidx.test.ext.junit",
+ "androidx.test.runner",
+ "androidx.test.rules",
+ "mockito-target-minus-junit4",
+ "truth-prebuilt",
+ "testng",
+ ],
+
+ libs: [
+ "android.test.runner",
+ "android.test.base",
+ "android.test.mock",
+ "framework",
+ "framework-res",
+ ],
+
+ sdk_version: "core_platform",
+ test_suites: [
+ "device-tests",
+ "automotive-tests",
+ ],
+
+ certificate: "platform",
+}
diff --git a/core/tests/vibrator/AndroidManifest.xml b/core/tests/vibrator/AndroidManifest.xml
new file mode 100644
index 0000000000000..1ce607118a1db
--- /dev/null
+++ b/core/tests/vibrator/AndroidManifest.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/tests/coretests/src/android/os/vibrator/OWNERS b/core/tests/vibrator/OWNERS
similarity index 57%
rename from core/tests/coretests/src/android/os/vibrator/OWNERS
rename to core/tests/vibrator/OWNERS
index b54d6bf078182..00446f2f20043 100644
--- a/core/tests/coretests/src/android/os/vibrator/OWNERS
+++ b/core/tests/vibrator/OWNERS
@@ -1 +1,2 @@
+# Bug component: 345036
include platform/frameworks/base:/services/core/java/com/android/server/vibrator/OWNERS
\ No newline at end of file
diff --git a/core/tests/vibrator/TEST_MAPPING b/core/tests/vibrator/TEST_MAPPING
new file mode 100644
index 0000000000000..f3333d82d2981
--- /dev/null
+++ b/core/tests/vibrator/TEST_MAPPING
@@ -0,0 +1,22 @@
+{
+ "presubmit": [
+ {
+ "name": "FrameworksVibratorCoreTests",
+ "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": "FrameworksVibratorCoreTests",
+ "options": [
+ {"exclude-annotation": "org.junit.Ignore"}
+ ]
+ }
+ ]
+}
+
diff --git a/core/tests/coretests/src/android/os/CombinedVibrationTest.java b/core/tests/vibrator/src/android/os/CombinedVibrationTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/CombinedVibrationTest.java
rename to core/tests/vibrator/src/android/os/CombinedVibrationTest.java
index 508856ba4ae51..244fcff7d27d8 100644
--- a/core/tests/coretests/src/android/os/CombinedVibrationTest.java
+++ b/core/tests/vibrator/src/android/os/CombinedVibrationTest.java
@@ -22,8 +22,6 @@ import static junit.framework.Assert.assertTrue;
import static org.testng.Assert.assertThrows;
-import android.platform.test.annotations.Presubmit;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -31,7 +29,6 @@ import org.junit.runners.JUnit4;
import java.util.ArrayList;
import java.util.Arrays;
-@Presubmit
@RunWith(JUnit4.class)
public class CombinedVibrationTest {
private static final VibrationEffect VALID_EFFECT = VibrationEffect.createOneShot(10, 255);
diff --git a/core/tests/coretests/src/android/os/ExternalVibrationTest.java b/core/tests/vibrator/src/android/os/ExternalVibrationTest.java
similarity index 96%
rename from core/tests/coretests/src/android/os/ExternalVibrationTest.java
rename to core/tests/vibrator/src/android/os/ExternalVibrationTest.java
index 3b872d5a7ff17..587594d868647 100644
--- a/core/tests/coretests/src/android/os/ExternalVibrationTest.java
+++ b/core/tests/vibrator/src/android/os/ExternalVibrationTest.java
@@ -22,12 +22,14 @@ import static org.mockito.Mockito.mock;
import android.media.AudioAttributes;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class ExternalVibrationTest {
+ @Ignore("b/291713224")
@Test
public void testSerialization() {
AudioAttributes audio = new AudioAttributes.Builder().build();
diff --git a/core/tests/coretests/src/android/os/VibrationEffectTest.java b/core/tests/vibrator/src/android/os/VibrationEffectTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/VibrationEffectTest.java
rename to core/tests/vibrator/src/android/os/VibrationEffectTest.java
index 73954dac168e0..8be489ecd1402 100644
--- a/core/tests/coretests/src/android/os/VibrationEffectTest.java
+++ b/core/tests/vibrator/src/android/os/VibrationEffectTest.java
@@ -40,7 +40,6 @@ import android.net.Uri;
import android.os.VibrationEffect.Composition.UnreachableAfterRepeatingIndefinitelyException;
import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.StepSegment;
-import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
@@ -54,7 +53,6 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.time.Duration;
import java.util.Arrays;
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class VibrationEffectTest {
diff --git a/core/tests/coretests/src/android/os/VibratorInfoTest.java b/core/tests/vibrator/src/android/os/VibratorInfoTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/VibratorInfoTest.java
rename to core/tests/vibrator/src/android/os/VibratorInfoTest.java
index 88766e2d97d4f..ff917aacba383 100644
--- a/core/tests/coretests/src/android/os/VibratorInfoTest.java
+++ b/core/tests/vibrator/src/android/os/VibratorInfoTest.java
@@ -24,13 +24,11 @@ import static org.junit.Assert.assertTrue;
import android.hardware.vibrator.Braking;
import android.hardware.vibrator.IVibrator;
-import android.platform.test.annotations.Presubmit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-@Presubmit
@RunWith(JUnit4.class)
public class VibratorInfoTest {
private static final float TEST_TOLERANCE = 1e-5f;
diff --git a/core/tests/coretests/src/android/os/VibratorTest.java b/core/tests/vibrator/src/android/os/VibratorTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/VibratorTest.java
rename to core/tests/vibrator/src/android/os/VibratorTest.java
index 375fdac2e223a..c559e34d92a3d 100644
--- a/core/tests/coretests/src/android/os/VibratorTest.java
+++ b/core/tests/vibrator/src/android/os/VibratorTest.java
@@ -40,7 +40,6 @@ import android.content.ContextWrapper;
import android.hardware.vibrator.IVibrator;
import android.media.AudioAttributes;
import android.os.test.TestLooper;
-import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
@@ -55,13 +54,6 @@ import org.mockito.ArgumentCaptor;
import org.mockito.InOrder;
import org.mockito.junit.MockitoJUnitRunner;
-/**
- * Tests for {@link Vibrator}.
- *
- * Build/Install/Run:
- * atest FrameworksCoreTests:VibratorTest
- */
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class VibratorTest {
diff --git a/core/tests/coretests/src/android/os/vibrator/PrebakedSegmentTest.java b/core/tests/vibrator/src/android/os/vibrator/PrebakedSegmentTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/vibrator/PrebakedSegmentTest.java
rename to core/tests/vibrator/src/android/os/vibrator/PrebakedSegmentTest.java
index 9099274e2767b..32311923e3d10 100644
--- a/core/tests/coretests/src/android/os/vibrator/PrebakedSegmentTest.java
+++ b/core/tests/vibrator/src/android/os/vibrator/PrebakedSegmentTest.java
@@ -29,7 +29,6 @@ import android.os.SystemVibrator;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.os.VibratorInfo;
-import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
@@ -37,7 +36,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class PrebakedSegmentTest {
diff --git a/core/tests/coretests/src/android/os/vibrator/PrimitiveSegmentTest.java b/core/tests/vibrator/src/android/os/vibrator/PrimitiveSegmentTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/vibrator/PrimitiveSegmentTest.java
rename to core/tests/vibrator/src/android/os/vibrator/PrimitiveSegmentTest.java
index 298438fdc243f..955d6acb88826 100644
--- a/core/tests/coretests/src/android/os/vibrator/PrimitiveSegmentTest.java
+++ b/core/tests/vibrator/src/android/os/vibrator/PrimitiveSegmentTest.java
@@ -29,7 +29,6 @@ import android.os.SystemVibrator;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.os.VibratorInfo;
-import android.platform.test.annotations.Presubmit;
import androidx.test.InstrumentationRegistry;
@@ -37,7 +36,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class PrimitiveSegmentTest {
private static final float TOLERANCE = 1e-2f;
diff --git a/core/tests/coretests/src/android/os/vibrator/RampSegmentTest.java b/core/tests/vibrator/src/android/os/vibrator/RampSegmentTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/vibrator/RampSegmentTest.java
rename to core/tests/vibrator/src/android/os/vibrator/RampSegmentTest.java
index 6f8c20558ddc6..dcbb56e22c77d 100644
--- a/core/tests/coretests/src/android/os/vibrator/RampSegmentTest.java
+++ b/core/tests/vibrator/src/android/os/vibrator/RampSegmentTest.java
@@ -29,7 +29,6 @@ import static org.testng.Assert.assertThrows;
import android.os.Parcel;
import android.os.VibrationEffect;
import android.os.Vibrator;
-import android.platform.test.annotations.Presubmit;
import org.junit.Rule;
import org.junit.Test;
@@ -39,7 +38,6 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.MockitoRule;
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class RampSegmentTest {
private static final float TOLERANCE = 1e-2f;
diff --git a/core/tests/coretests/src/android/os/vibrator/StepSegmentTest.java b/core/tests/vibrator/src/android/os/vibrator/StepSegmentTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/vibrator/StepSegmentTest.java
rename to core/tests/vibrator/src/android/os/vibrator/StepSegmentTest.java
index ade21613013f7..f9f1c08ba60d0 100644
--- a/core/tests/coretests/src/android/os/vibrator/StepSegmentTest.java
+++ b/core/tests/vibrator/src/android/os/vibrator/StepSegmentTest.java
@@ -27,7 +27,6 @@ import static org.testng.Assert.assertThrows;
import android.os.Parcel;
import android.os.VibrationEffect;
import android.os.Vibrator;
-import android.platform.test.annotations.Presubmit;
import org.junit.Rule;
import org.junit.Test;
@@ -37,7 +36,6 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.junit.MockitoRule;
-@Presubmit
@RunWith(MockitoJUnitRunner.class)
public class StepSegmentTest {
private static final float TOLERANCE = 1e-2f;
diff --git a/core/tests/coretests/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java b/core/tests/vibrator/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java
similarity index 99%
rename from core/tests/coretests/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java
rename to core/tests/vibrator/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java
index b31af89e345ba..ce1717057a1c6 100644
--- a/core/tests/coretests/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java
+++ b/core/tests/vibrator/src/android/os/vibrator/persistence/VibrationEffectXmlSerializationTest.java
@@ -28,7 +28,6 @@ import static org.junit.Assert.assertThrows;
import android.os.VibrationEffect;
import android.os.vibrator.PrebakedSegment;
-import android.platform.test.annotations.Presubmit;
import android.util.Xml;
import com.android.modules.utils.TypedXmlPullParser;
@@ -50,7 +49,6 @@ import java.util.Map;
*
The {@link VibrationEffect} public APIs are covered by CTS to enforce the schema defined at
* services/core/xsd/vibrator/vibration/vibration.xsd.
*/
-@Presubmit
@RunWith(JUnit4.class)
public class VibrationEffectXmlSerializationTest {