Merge "Remove SensorManagerTest BrokenTests" into froyo
diff --git a/tests/tests/hardware/src/android/hardware/cts/SensorManagerTest.java b/tests/tests/hardware/src/android/hardware/cts/SensorManagerTest.java
deleted file mode 100644
index 136d077..0000000
--- a/tests/tests/hardware/src/android/hardware/cts/SensorManagerTest.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) 2008 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 android.hardware.cts;
-
-import dalvik.annotation.BrokenTest;
-import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargetNew;
-import dalvik.annotation.TestTargets;
-import dalvik.annotation.ToBeFixed;
-
-import android.content.Context;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorListener;
-import android.hardware.SensorManager;
-import android.test.AndroidTestCase;
-import android.util.Log;
-
-import java.util.List;
-
-@SuppressWarnings("deprecation")
-@TestTargetClass(SensorManager.class)
-public class SensorManagerTest extends AndroidTestCase {
-
- private static final String TAG = "SensorManagerTest";
- private static final float[] GRAVITY = { 0, 0, SensorManager.GRAVITY_EARTH };
- private static final double TWO_PI = 2 * Math.PI;
- private static final int MATRIX = 9;
- private static final int VECTOR = 3;
- private static final int MAX_COUNT = 10;
- private static final long TIME_OUT = 10000;
- private static Object mSync;
- private static int mCounter;
- private static boolean mHasNotified;
- private static float[] mR;
- private static float[] mI;
- private static float[] mGeomagnetic;
- private static SensorManager mSensorManager;
-
- private static int[] mSensorListenerOnChangedSensor;
- private static float[][] mSensorListenerOnChangedValus;
- private static SensorEvent[] mSensorEvents;
-
- @SuppressWarnings("serial")
- private static class SensorTestTimeOutException extends Exception {
- public SensorTestTimeOutException() {
- super("Time out while waiting for sensor events. "
- + "Please move the device to generate events.");
- }
- }
-
- private static void waitForSensorEvent() throws InterruptedException,
- SensorTestTimeOutException {
- mCounter = 0;
- mHasNotified = false;
- synchronized (mSync) {
- if (!mHasNotified) {
- mSync.wait(TIME_OUT);
- }
- if (!mHasNotified) {
- throw new SensorTestTimeOutException();
- }
- }
- }
-
- private static void addSyncCount() {
- synchronized (mSync) {
- if (++mCounter >= MAX_COUNT) {
- mCounter = MAX_COUNT -1;
- mHasNotified = true;
- mSync.notify();
- }
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mSensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
- mR = new float[MATRIX];
- mI = new float[MATRIX];
- mGeomagnetic = new float[VECTOR];
- mSync = new Object();
- mSensorListenerOnChangedSensor = new int[MAX_COUNT];
- mSensorListenerOnChangedValus = new float[MAX_COUNT][];
- mSensorEvents = new SensorEvent[MAX_COUNT];
- }
-
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getSensors",
- args = {}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "registerListener",
- args = {SensorListener.class, int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "registerListener",
- args = {SensorListener.class, int.class, int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "unregisterListener",
- args = {SensorListener.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "unregisterListener",
- args = {SensorListener.class, int.class}
- )
- })
- @ToBeFixed(bug="1852042", explanation="Error values in onSensorChanged() from system")
- @BrokenTest("Relies on earthquakes or user to generate sensor events")
- public void testSensorManagerOldAPIs() throws InterruptedException, SensorTestTimeOutException {
- assertEquals(SensorManager.SENSOR_ACCELEROMETER
- | SensorManager.SENSOR_MAGNETIC_FIELD
- | SensorManager.SENSOR_ORIENTATION
- | SensorManager.SENSOR_ORIENTATION_RAW,
- mSensorManager.getSensors());
-
- final SensorListener sensorListener = new SensorListener() {
-
- public void onAccuracyChanged(int sensor, int accuracy) {
- }
-
- public void onSensorChanged(int sensor, float[] values) {
- mSensorListenerOnChangedSensor[mCounter] = sensor;
- mSensorListenerOnChangedValus[mCounter] = values;
- if(sensor == SensorManager.SENSOR_ACCELEROMETER) {
- Log.d(TAG, "Deprecated Accelerometer value X="
- + values[0] + " Y=" + values[1] + " Z=" + values[2]);
- } else {
- Log.d(TAG, "Deprecated Orientation value X="
- + values[0] + " Y=" + values[1] + " Z=" + values[2]);
- }
- addSyncCount();
- }
- };
- mSensorManager.registerListener(sensorListener,
- SensorManager.SENSOR_ACCELEROMETER
- | SensorManager.SENSOR_ORIENTATION
- | SensorManager.SENSOR_ORIENTATION_RAW,
- SensorManager.SENSOR_DELAY_NORMAL);
- waitForSensorEvent();
-
- mSensorManager.unregisterListener(sensorListener, SensorManager.SENSOR_ACCELEROMETER);
- // Following should unregister sensorListener for all sensor type but it didn't.
- // So we unregisterListener by the other unregister method.
- // mSensorManager.unregisterListener(sensorListener);
- mSensorManager.unregisterListener(sensorListener, SensorManager.SENSOR_ORIENTATION |
- SensorManager.SENSOR_ORIENTATION_RAW);
- try {
- waitForSensorEvent();
- fail("SensorListener have been unregistered, shouldn't get any more sensor events.");
- } catch (SensorTestTimeOutException e) {
- // expected
- }
- }
-
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getDefaultSensor",
- args = {int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getInclination",
- args = {float[].class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getOrientation",
- args = {float[].class, float[].class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getRotationMatrix",
- args = {float[].class, float[].class, float[].class, float[].class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "getSensorList",
- args = {int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "registerListener",
- args = {SensorEventListener.class, Sensor.class, int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "registerListener",
- args = {SensorEventListener.class, Sensor.class, int.class, android.os.Handler.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "remapCoordinateSystem",
- args = {float[].class, int.class, int.class, float[].class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "unregisterListener",
- args = {SensorEventListener.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- method = "unregisterListener",
- args = {SensorEventListener.class, Sensor.class}
- )
- })
- @ToBeFixed(bug="1852042", explanation="Error values in onSensorChanged() from system")
- @BrokenTest("Relies on earthquakes or user to generate sensor events")
- public void testSensorManager() throws InterruptedException, SensorTestTimeOutException {
- final List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
- assertNotNull(sensorList);
- Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- assertEquals(Sensor.TYPE_ACCELEROMETER, sensor.getType());
- final SensorEventListener sensorAccListener = new SensorEventListener() {
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- }
-
- public void onSensorChanged(SensorEvent event) {
- assertEquals(Sensor.TYPE_ACCELEROMETER, event.sensor.getType());
- Log.d(TAG, "Accelerometer value X="
- + event.values[0] + " Y=" + event.values[1] + " Z=" + event.values[2]);
- addSyncCount();
- }
- };
-
- mSensorManager.registerListener(sensorAccListener,
- sensor, SensorManager.SENSOR_DELAY_NORMAL);
- waitForSensorEvent();
-
- mSensorManager.unregisterListener(sensorAccListener);
- try {
- waitForSensorEvent();
- fail("SensorListener have been unregistered, shouldn't get any more sensor events.");
- } catch (SensorTestTimeOutException e) {
- // expected
- }
-
- sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
- assertEquals(Sensor.TYPE_MAGNETIC_FIELD, sensor.getType());
- final SensorEventListener sensorMagListener = new SensorEventListener() {
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- }
-
- public void onSensorChanged(SensorEvent event) {
- mSensorEvents[mCounter] = event;
- Log.d(TAG, "Magnetic field value X="
- + event.values[0] + " Y=" + event.values[1] + " Z=" + event.values[2]);
- addSyncCount();
- }
- };
-
- mSensorManager.registerListener(sensorMagListener, sensor,
- SensorManager.SENSOR_DELAY_FASTEST, null);
- waitForSensorEvent();
- mSensorManager.unregisterListener(sensorMagListener, sensor);
-
- assertSensorEvents();
-
- assertTrue(SensorManager.remapCoordinateSystem(mR, SensorManager.AXIS_Y,
- SensorManager.AXIS_MINUS_X, mR));
- final float[] outR = new float[VECTOR];
- assertFalse(SensorManager.remapCoordinateSystem(mR, SensorManager.AXIS_Y,
- SensorManager.AXIS_MINUS_X, outR));
- }
-
- private static void assertSensorEvents() {
- for (int i = 0; i < MAX_COUNT; i++) {
- assertEquals(Sensor.TYPE_MAGNETIC_FIELD, mSensorEvents[i].sensor.getType());
- mGeomagnetic[0] = mSensorEvents[i].values[0];
- mGeomagnetic[1] = mSensorEvents[i].values[1];
- mGeomagnetic[2] = mSensorEvents[i].values[2];
-
- assertTrue(SensorManager.getRotationMatrix(mR, mI, GRAVITY, mGeomagnetic));
- float inclination = SensorManager.getInclination(mI);
- assertTrue(Math.abs(inclination) <= TWO_PI);
- float[] values = new float[3];
- float[] orientation = SensorManager.getOrientation(mR, values);
- assertTrue(Math.abs(orientation[0]) <= TWO_PI);
- assertTrue(Math.abs(orientation[1]) <= TWO_PI);
- assertTrue(Math.abs(orientation[2]) <= TWO_PI);
- }
- }
-}