tree b4265cfe64ca7dba4a408de512be6a41c3f1ddc5
parent be38bb01ebbe9e0dc70865dfe2bdaf9551978df0
author saurav subedi <subedi@google.com> 1537549255 -0700
committer Ross Yeh <rossyeh@google.com> 1539726259 +0000

DO NOT MERGE:CDD Annotations for Sensors

7.3/C-1-8: MUST ensure that the sensor event stream MUST NOT prevent the device
CPU from entering a suspend state or waking up from a suspend state.
-->DeviceSuspendActivity#testAPWakeup..
-->DeviceSuspendActivity#testAccelBatching..

Composite Sensors: CDD:7.3.2/C-2-1,7.3.1/,C-3-1,C-4-1,7.3/C-2-1
-->SingleSensorTests#testGravity1/5_hz
-->SingleSensorTest#testGameRotationVector
-->SingleSensorTest#testLinearAcceleration

CDD 7.3/C-1-7:Continuous Sensor: jitter test
-->SingleSensorTest#testAcclerometer
-->SingleSensorTest#testMagneticField
-->SingleSensorTest#testGyroscope

CDD:7.3/C-0-1/C-0-2/C-0-3
 C-0-1:MUST accurately report the presence or absence of sensors per the
android.content.pm.PackageManager class.
 C-0-2:MUST return an accurate list of supported sensors via the
SensorManager.getSensorList() and similar methods.
-->SystemFeaturesTest#testSensorFeatures

C-0-3:MUST behave reasonably for all other sensor APIs..(Must return true or false as
appropriate when applications attempt to register listeners,
-->SensorTest#testRequestTriggerWithNonTrigger
-->testCancelTriggerWithNonTrigger
-->testRegisterTrigger

CDD:7.3.9/C-3-1,C-3-2:
 C-3-1: MUST correctly declare support of direct channel types
and direct report rates level through the isDirectChannelTypeSupported and
getHighestDirectReportRateLevel API.
 C-3-2 MUST support at least one of the two sensor direct channel types for all
sensors that declare support for sensor direct channel
TYPE_HARDWARE_BUFFER
TYPE_MEMORY_FILE

-->SenosrDirectReportTest#testAccle/Gyro/MagAshMemNormal/Fast/VeryFast

CDD:7.3/C-1-1: MUST report all sensor measurements using the relevant International System
of Units (metric)
-->"SensorParameterRangeTest#checkSensor
RangeAndFrequency#getUnitsForSensor"

CDD: 7.3/C-1-2,C-1-3
 C-1-2: MUST report sensor data with a maximum latency of 100 milliseconds
2 * sample_time for the case of a sensor streamed with a minimum required latency
of 5 ms + 2 * sample_time when the application processor is active.
This delay does not include any filtering delays.
-->SingleSensorTests#testAccel/gyro/mag

 C-1-3 MUST report the first sensor sample within 400 milliseconds + 2 * sample_time of
the sensor being activated. It is acceptable for this sample to have an accuracy of 0.
-->SensorBatchingTests#testAcce/Gyro/Mag/_fastestBatching/_50hz

CDD: 7.3.9/C-2-1: TYPE_ACCELEROMETER: buffering capability of at least 3000 events
CDD: 7.3.9/C-2-6: TYPE_PRESSURE: buffering capability of 300 sensor events.
CDD: 7.3.9/C-2-17: TYPE_PROXIMITY: buffering capability of 100 sensor events.
CDD: 7.3.9/C-2-10: TYPE_STEP_DETECTOR:  buffering capability of 100 sensor events
--> SensorParameterRangeTest#testPressure/GameRotation/Proximity/StepDetectorFifoLength()

Bug: 117652133

Test: make cts
Change-Id: I8b6bab31c71ff4734374d26569427357f252520f
