diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-10-21 22:07:51 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-10-21 22:07:51 +0000 |
commit | f3d65e52783b7c91e440e9a3330e594af4db76dd (patch) | |
tree | e295b6804e29c18974d7bdb84bfc627f3b2884b0 | |
parent | 61c62c6b566817dee90ee8962fcad00a2ac9012f (diff) | |
parent | 812d9b50f6e16d6b6c63260a133c4b854f0c8fca (diff) | |
download | platform_hardware_interfaces-f3d65e52783b7c91e440e9a3330e594af4db76dd.tar.gz platform_hardware_interfaces-f3d65e52783b7c91e440e9a3330e594af4db76dd.tar.bz2 platform_hardware_interfaces-f3d65e52783b7c91e440e9a3330e594af4db76dd.zip |
Merge "Modify VTS NoStaleEvents test to omit on-change sensors"
-rw-r--r-- | sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h index 2e5aca49de..e674ddb886 100644 --- a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h +++ b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h @@ -226,6 +226,7 @@ class SensorsHidlTest : public SensorsHidlTestBaseV2_X { void activateAllSensors(bool enable); std::vector<SensorInfoType> getNonOneShotSensors(); std::vector<SensorInfoType> getNonOneShotAndNonSpecialSensors(); + std::vector<SensorInfoType> getNonOneShotAndNonOnChangeAndNonSpecialSensors(); std::vector<SensorInfoType> getOneShotSensors(); std::vector<SensorInfoType> getInjectEventSensors(); int32_t getInvalidSensorHandle(); @@ -326,6 +327,19 @@ std::vector<SensorInfoType> SensorsHidlTest::getNonOneShotAndNonSpecialSensors() return sensors; } +std::vector<SensorInfoType> SensorsHidlTest::getNonOneShotAndNonOnChangeAndNonSpecialSensors() { + std::vector<SensorInfoType> sensors; + for (const SensorInfoType& info : getSensorsList()) { + SensorFlagBits reportMode = extractReportMode(info.flags); + if (reportMode != SensorFlagBits::ONE_SHOT_MODE && + reportMode != SensorFlagBits::ON_CHANGE_MODE && + reportMode != SensorFlagBits::SPECIAL_REPORTING_MODE) { + sensors.push_back(info); + } + } + return sensors; +} + std::vector<SensorInfoType> SensorsHidlTest::getOneShotSensors() { std::vector<SensorInfoType> sensors; for (const SensorInfoType& info : getSensorsList()) { @@ -726,8 +740,8 @@ TEST_P(SensorsHidlTest, NoStaleEvents) { EventCallback callback; getEnvironment()->registerCallback(&callback); - // This test is not valid for one-shot or special-report-mode sensors - const std::vector<SensorInfoType> sensors = getNonOneShotAndNonSpecialSensors(); + // This test is not valid for one-shot, on-change or special-report-mode sensors + const std::vector<SensorInfoType> sensors = getNonOneShotAndNonOnChangeAndNonSpecialSensors(); milliseconds maxMinDelay(0); for (const SensorInfoType& sensor : sensors) { milliseconds minDelay = duration_cast<milliseconds>(microseconds(sensor.minDelay)); @@ -750,10 +764,7 @@ TEST_P(SensorsHidlTest, NoStaleEvents) { << " handle=0x" << std::hex << std::setw(8) << std::setfill('0') << sensor.sensorHandle << std::dec << " type=" << static_cast<int>(sensor.type) << " name=" << sensor.name); - // Some on-change sensors may not report an event without stimulus - if (extractReportMode(sensor.flags) != SensorFlagBits::ON_CHANGE_MODE) { - ASSERT_GE(callback.getEvents(sensor.sensorHandle).size(), 1); - } + if (callback.getEvents(sensor.sensorHandle).size() >= 1) { lastEventTimestampMap[sensor.sensorHandle] = callback.getEvents(sensor.sensorHandle).back().timestamp; @@ -779,10 +790,7 @@ TEST_P(SensorsHidlTest, NoStaleEvents) { if (lastEventTimestampMap.find(sensor.sensorHandle) == lastEventTimestampMap.end()) { continue; } - // Skip on-change sensors that do not consistently report an initial event - if (callback.getEvents(sensor.sensorHandle).size() < 1) { - continue; - } + // Ensure that the first event received is not stale by ensuring that its timestamp is // sufficiently different from the previous event const EventType newEvent = callback.getEvents(sensor.sensorHandle).front(); |