CTS: check VR sensors for direct channel support.
Also adds a test for uncalibrated accelerometer, which was accidentally
omitted, but is required in the CDD for both high performance VR and
hifi sensors.
Bug: 77606421
Test: Ran test on Pixel XL: cts-tradefed run cts-dev -m CtsSensorTestCases
-t android.hardware.cts.SensorSupportTest
Change-Id: I4f70c8a61c657c387a5f83911c91e9207f700cec
diff --git a/tests/sensor/src/android/hardware/cts/SensorSupportTest.java b/tests/sensor/src/android/hardware/cts/SensorSupportTest.java
index 09e4711..23c122d 100644
--- a/tests/sensor/src/android/hardware/cts/SensorSupportTest.java
+++ b/tests/sensor/src/android/hardware/cts/SensorSupportTest.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.Sensor;
+import android.hardware.SensorDirectChannel;
import android.hardware.SensorManager;
/**
@@ -55,6 +56,10 @@
checkSupportsSensor(Sensor.TYPE_ACCELEROMETER);
}
+ public void testSupportsAccelerometerUncalibrated() {
+ checkSupportsSensor(Sensor.TYPE_ACCELEROMETER_UNCALIBRATED);
+ }
+
public void testSupportsGyroscope() {
checkSupportsSensor(Sensor.TYPE_GYROSCOPE);
}
@@ -97,9 +102,12 @@
}
private boolean sensorRequiredForVrHighPerformanceMode(int sensorType) {
- if (sensorType == Sensor.TYPE_MAGNETIC_FIELD ||
+ if (sensorType == Sensor.TYPE_ACCELEROMETER ||
+ sensorType == Sensor.TYPE_ACCELEROMETER_UNCALIBRATED ||
sensorType == Sensor.TYPE_GYROSCOPE ||
- sensorType == Sensor.TYPE_ACCELEROMETER) {
+ sensorType == Sensor.TYPE_GYROSCOPE_UNCALIBRATED ||
+ sensorType == Sensor.TYPE_MAGNETIC_FIELD ||
+ sensorType == Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED) {
return true;
} else {
return false;
@@ -107,10 +115,14 @@
}
private void checkSupportsSensor(int sensorType) {
- if (mAreHifiSensorsSupported ||
- (mVrHighPerformanceModeSupported &&
- sensorRequiredForVrHighPerformanceMode(sensorType))) {
- assertTrue(mSensorManager.getDefaultSensor(sensorType) != null);
+ boolean isVrSensor = mVrHighPerformanceModeSupported &&
+ sensorRequiredForVrHighPerformanceMode(sensorType);
+ if (mAreHifiSensorsSupported || isVrSensor) {
+ Sensor sensor = mSensorManager.getDefaultSensor(sensorType);
+ assertTrue(sensor != null);
+ if (isVrSensor) {
+ assertTrue(sensor.isDirectChannelTypeSupported(SensorDirectChannel.TYPE_HARDWARE_BUFFER));
+ }
}
}
}