sensors: Wait for all sensors to receive a "reading" event before use.

Make the tests in runGenericSensorTests() that use more than one sensor of
the same type wait for the "reading" event to be delivered to all of them
rather than just one before verifying all readings to prevent flakiness and
incorrect usage.

Bug: 731018, 1078172
Change-Id: I7a78d5a2d26b8d6f1074c93199e158ba8567b19b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2204180
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#769491}
diff --git a/generic-sensor/generic-sensor-tests.js b/generic-sensor/generic-sensor-tests.js
index 003dd17..22101cc 100644
--- a/generic-sensor/generic-sensor-tests.js
+++ b/generic-sensor/generic-sensor-tests.js
@@ -221,16 +221,18 @@
   sensor_test(async (t, sensorProvider) => {
     assert_true(sensorName in self);
     const sensor1 = new sensorType();
-    const sensorWatcher = new EventWatcher(t, sensor1, ["reading", "error"]);
+    const sensorWatcher1 = new EventWatcher(t, sensor1, ["reading", "error"]);
     sensor1.start();
 
     const sensor2 = new sensorType();
+    const sensorWatcher2 = new EventWatcher(t, sensor2, ["reading", "error"]);
     sensor2.start();
 
     const mockSensor = await sensorProvider.getCreatedSensor(sensorName);
     await mockSensor.setSensorReading(readings);
 
-    await sensorWatcher.wait_for("reading");
+    await Promise.all([sensorWatcher1.wait_for("reading"),
+                       sensorWatcher2.wait_for("reading")]);
     const expected = new RingBuffer(expectedReadings).next().value;
     // Reading values are correct for both sensors.
     assert_true(verificationFunction(expected, sensor1));
@@ -466,7 +468,8 @@
     assert_true(sensorName in self);
     const sensor1 = new sensorType({frequency: 60});
     const sensor2 = new sensorType({frequency: 60, referenceFrame: "screen"});
-    const sensorWatcher = new EventWatcher(t, sensor1, ["reading", "error"]);
+    const sensorWatcher1 = new EventWatcher(t, sensor1, ["reading", "error"]);
+    const sensorWatcher2 = new EventWatcher(t, sensor1, ["reading", "error"]);
 
     sensor1.start();
     sensor2.start();
@@ -474,7 +477,8 @@
     const mockSensor = await sensorProvider.getCreatedSensor(sensorName);
     await mockSensor.setSensorReading(readings);
 
-    await sensorWatcher.wait_for("reading");
+    await Promise.all([sensorWatcher1.wait_for("reading"),
+                       sensorWatcher2.wait_for("reading")]);
 
     const expected = new RingBuffer(expectedReadings).next().value;
     const expectedRemapped =