Fix VtsHalSensorsV2_0TargetTest am: 8659a96281 am: d8246d8300

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3115574

Change-Id: I72fe09cc9686ed7838c6a794503c2f06bb6c361b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
index aa6e881..b17ecb8 100644
--- a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
+++ b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
@@ -604,42 +604,54 @@
     EventCallback callback;
     getEnvironment()->registerCallback(&callback);
 
-    for (const SensorInfoType& sensor : sensors) {
-        // Configure and activate the sensor
-        batch(sensor.sensorHandle, sensor.maxDelay, 0 /* maxReportLatencyNs */);
-        activate(sensor.sensorHandle, activateSensor);
+    // 10 sensors per group
+    constexpr size_t kSensorsPerGroup = 10;
+    for (size_t sensorOffset = 0; sensorOffset < sensors.size();
+         sensorOffset += kSensorsPerGroup) {
+        std::vector<SensorInfoType> sensorGroup(
+            sensors.begin() + sensorOffset,
+            sensors.begin() +
+                std::min(sensorOffset + kSensorsPerGroup, sensors.size()));
 
-        // Flush the sensor
-        for (int32_t i = 0; i < flushCalls; i++) {
+        for (const SensorInfoType& sensor : sensorGroup) {
+            // Configure and activate the sensor
+            batch(sensor.sensorHandle, sensor.maxDelay, 0 /* maxReportLatencyNs */);
+            activate(sensor.sensorHandle, activateSensor);
+
+            // Flush the sensor
+            for (int32_t i = 0; i < flushCalls; i++) {
+                SCOPED_TRACE(::testing::Message()
+                             << "Flush " << i << "/" << flushCalls << ": "
+                             << " handle=0x" << std::hex << std::setw(8) << std::setfill('0')
+                             << sensor.sensorHandle << std::dec
+                             << " type=" << static_cast<int>(sensor.type)
+                             << " name=" << sensor.name);
+
+                Result flushResult = flush(sensor.sensorHandle);
+                EXPECT_EQ(flushResult, expectedResponse);
+            }
+        }
+
+        // Wait up to one second for the flush events
+        callback.waitForFlushEvents(sensorGroup, flushCalls, milliseconds(1000) /* timeout */);
+
+        // Deactivate all sensors after waiting for flush events so pending flush events are not
+        // abandoned by the HAL.
+        for (const SensorInfoType& sensor : sensorGroup) {
+            activate(sensor.sensorHandle, false);
+        }
+
+        // Check that the correct number of flushes are present for each sensor
+        for (const SensorInfoType& sensor : sensorGroup) {
             SCOPED_TRACE(::testing::Message()
-                         << "Flush " << i << "/" << flushCalls << ": "
                          << " handle=0x" << std::hex << std::setw(8) << std::setfill('0')
                          << sensor.sensorHandle << std::dec
-                         << " type=" << static_cast<int>(sensor.type) << " name=" << sensor.name);
-
-            Result flushResult = flush(sensor.sensorHandle);
-            EXPECT_EQ(flushResult, expectedResponse);
+                         << " type=" << static_cast<int>(sensor.type)
+                         << " name=" << sensor.name);
+            ASSERT_EQ(callback.getFlushCount(sensor.sensorHandle), expectedFlushCount);
         }
     }
-
-    // Wait up to one second for the flush events
-    callback.waitForFlushEvents(sensors, flushCalls, milliseconds(1000) /* timeout */);
-
-    // Deactivate all sensors after waiting for flush events so pending flush events are not
-    // abandoned by the HAL.
-    for (const SensorInfoType& sensor : sensors) {
-        activate(sensor.sensorHandle, false);
-    }
     getEnvironment()->unregisterCallback();
-
-    // Check that the correct number of flushes are present for each sensor
-    for (const SensorInfoType& sensor : sensors) {
-        SCOPED_TRACE(::testing::Message()
-                     << " handle=0x" << std::hex << std::setw(8) << std::setfill('0')
-                     << sensor.sensorHandle << std::dec << " type=" << static_cast<int>(sensor.type)
-                     << " name=" << sensor.name);
-        ASSERT_EQ(callback.getFlushCount(sensor.sensorHandle), expectedFlushCount);
-    }
 }
 
 TEST_P(SensorsHidlTest, FlushSensor) {