SensorTest must unregister sensor event listener after each test case done.
SensorTest#testRegisterTwiceWithSameSensor and #testBatchAndFlushWithHandler
must unregister sensor event listener after test done.
Change-Id: I0e7c561f6e0dc7cf2763cefe6d737906d328795a
Signed-off-by: Han, He <he.han@intel.com>
diff --git a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
index d606b70..6703c47 100644
--- a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
@@ -58,8 +58,10 @@
private PowerManager.WakeLock mWakeLock;
private SensorManager mSensorManager;
+ private TestSensorManager mTestSensorManager;
private NullTriggerEventListener mNullTriggerEventListener;
private NullSensorEventListener mNullSensorEventListener;
+ private Sensor mTriggerSensor;
private List<Sensor> mSensorList;
@Override
@@ -85,6 +87,20 @@
@Override
protected void tearDown(){
+ if (mSensorManager != null) {
+ // SensorManager will check listener and status, so just unregister listener
+ mSensorManager.unregisterListener(mNullSensorEventListener);
+ if (mTriggerSensor != null) {
+ mSensorManager.cancelTriggerSensor(mNullTriggerEventListener, mTriggerSensor);
+ mTriggerSensor = null;
+ }
+ }
+
+ if (mTestSensorManager != null) {
+ mTestSensorManager.unregisterListener();
+ mTestSensorManager = null;
+ }
+
if (mWakeLock != null && mWakeLock.isHeld()) {
mWakeLock.release();
}
@@ -234,20 +250,20 @@
}
public void testRequestTriggerWithNonTriggerSensor() {
- Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- if (sensor == null) {
+ mTriggerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+ if (mTriggerSensor == null) {
throw new SensorNotSupportedException(Sensor.TYPE_ACCELEROMETER);
}
- boolean result = mSensorManager.requestTriggerSensor(mNullTriggerEventListener, sensor);
+ boolean result = mSensorManager.requestTriggerSensor(mNullTriggerEventListener, mTriggerSensor);
assertFalse(result);
}
public void testCancelTriggerWithNonTriggerSensor() {
- Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- if (sensor == null) {
+ mTriggerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+ if (mTriggerSensor == null) {
throw new SensorNotSupportedException(Sensor.TYPE_ACCELEROMETER);
}
- boolean result = mSensorManager.cancelTriggerSensor(mNullTriggerEventListener, sensor);
+ boolean result = mSensorManager.cancelTriggerSensor(mNullTriggerEventListener, mTriggerSensor);
assertFalse(result);
}
@@ -323,16 +339,16 @@
sensor,
SensorManager.SENSOR_DELAY_FASTEST,
(int) TimeUnit.SECONDS.toMicros(5));
- TestSensorManager sensorManager = new TestSensorManager(environment);
+ mTestSensorManager = new TestSensorManager(environment);
HandlerThread handlerThread = new HandlerThread("sensorThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
TestSensorEventListener listener = new TestSensorEventListener(environment, handler);
- CountDownLatch eventLatch = sensorManager.registerListener(listener, 1);
+ CountDownLatch eventLatch = mTestSensorManager.registerListener(listener, 1);
listener.waitForEvents(eventLatch, 1);
- CountDownLatch flushLatch = sensorManager.requestFlush();
+ CountDownLatch flushLatch = mTestSensorManager.requestFlush();
listener.waitForFlushComplete(flushLatch);
listener.assertEventsReceivedInHandler();
}