Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36665b1b authored by Peng Xu's avatar Peng Xu
Browse files

Zero uninitialized field in conversion and fix vts bug

Zero uninitialized sensor event field to zero to avoid undefined
value being passed to framework.

Correct sensor report type check bug in vts.

Bug: 37793558
Bug: 37710268
Test: sensor vts passes
Change-Id: I5042975fea8fe28ae130367ba083a4e4f4e5657e
parent 55f3ddf5
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -67,9 +67,11 @@ void convertFromSensorEvent(const sensors_event_t &src, Event *dst) {
    typedef ::android::hardware::sensors::V1_0::SensorType SensorType;
    typedef ::android::hardware::sensors::V1_0::MetaDataEventType MetaDataEventType;

    dst->sensorHandle = src.sensor;
    dst->sensorType = (SensorType)src.type;
    dst->timestamp = src.timestamp;
    *dst = {
        .sensorHandle = src.sensor,
        .sensorType = (SensorType)src.type,
        .timestamp = src.timestamp
    };

    switch (dst->sensorType) {
        case SensorType::META_DATA:
@@ -206,13 +208,13 @@ void convertFromSensorEvent(const sensors_event_t &src, Event *dst) {
}

void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
  dst->version = sizeof(sensors_event_t);
  dst->sensor = src.sensorHandle;
  dst->type = (int32_t)src.sensorType;
  dst->reserved0 = 0;
  dst->timestamp = src.timestamp;
  dst->flags = 0;
  dst->reserved1[0] = dst->reserved1[1] = dst->reserved1[2] = 0;
  *dst = {
      .version = sizeof(sensors_event_t),
      .sensor = src.sensorHandle,
      .type = (int32_t)src.sensorType,
      .reserved0 = 0,
      .timestamp = src.timestamp
  };

  switch (src.sensorType) {
      case SensorType::META_DATA:
+3 −1
Original line number Diff line number Diff line
@@ -697,6 +697,7 @@ void SensorsHidlTest::assertDelayMatchReportMode(
SensorFlagBits SensorsHidlTest::expectedReportModeForType(SensorType type) {
  switch (type) {
    case SensorType::ACCELEROMETER:
    case SensorType::ACCELEROMETER_UNCALIBRATED:
    case SensorType::GYROSCOPE:
    case SensorType::MAGNETIC_FIELD:
    case SensorType::ORIENTATION:
@@ -719,7 +720,6 @@ SensorFlagBits SensorsHidlTest::expectedReportModeForType(SensorType type) {
    case SensorType::AMBIENT_TEMPERATURE:
    case SensorType::HEART_RATE:
    case SensorType::DEVICE_ORIENTATION:
    case SensorType::MOTION_DETECT:
    case SensorType::STEP_COUNTER:
    case SensorType::LOW_LATENCY_OFFBODY_DETECT:
      return SensorFlagBits::ON_CHANGE_MODE;
@@ -728,6 +728,8 @@ SensorFlagBits SensorsHidlTest::expectedReportModeForType(SensorType type) {
    case SensorType::WAKE_GESTURE:
    case SensorType::GLANCE_GESTURE:
    case SensorType::PICK_UP_GESTURE:
    case SensorType::MOTION_DETECT:
    case SensorType::STATIONARY_DETECT:
      return SensorFlagBits::ONE_SHOT_MODE;

    case SensorType::STEP_DETECTOR: