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));
+            }
         }
     }
 }