Relax limits for EventGapVerification.
Change-Id: I91c081f092c75aa896ccaa789e1524fd07a44b7c
diff --git a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/AbstractSensorVerification.java b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/AbstractSensorVerification.java
index 1e775e3..4c449dd 100644
--- a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/AbstractSensorVerification.java
+++ b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/AbstractSensorVerification.java
@@ -82,4 +82,8 @@
this.previousEvent = previousEvent;
}
}
+
+ protected double nanosToMillis(long nanos) {
+ return nanos/(1000.0 * 1000.0);
+ }
}
diff --git a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventGapVerification.java b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventGapVerification.java
index b692f0f..b0c0fc0 100644
--- a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventGapVerification.java
+++ b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventGapVerification.java
@@ -28,6 +28,10 @@
// Number of events to truncate (discard) from the initial events received
private static final int TRUNCATE_EVENTS_COUNT = 1;
+ // Number of event gaps to tolerate is the minimum of 1% of total events received or 10.
+ private static final int EVENT_GAP_TOLERANCE_COUNT = 10;
+ private static final double EVENT_GAP_TOLERANCE_PERCENT = 0.01;
+
private final int mExpectedDelayUs;
private final List<IndexedEventPair> mEventGaps = new LinkedList<IndexedEventPair>();
@@ -68,24 +72,24 @@
}
final int count = mEventGaps.size();
- stats.addValue(PASSED_KEY, count == 0);
+ int eventGapTolerance = (int) Math.min(EVENT_GAP_TOLERANCE_COUNT, 0.01 * mIndex);
+ stats.addValue(PASSED_KEY, count <= eventGapTolerance);
stats.addValue(SensorStats.EVENT_GAP_COUNT_KEY, count);
stats.addValue(SensorStats.EVENT_GAP_POSITIONS_KEY, getIndexArray(mEventGaps));
- if (count > 0) {
+ if (count > eventGapTolerance) {
StringBuilder sb = new StringBuilder();
sb.append(count).append(" events gaps: ");
for (int i = 0; i < Math.min(count, TRUNCATE_MESSAGE_LENGTH); i++) {
IndexedEventPair info = mEventGaps.get(i);
- sb.append(String.format("position=%d, delta_time=%dns; ", info.index,
- info.event.timestamp - info.previousEvent.timestamp));
+ sb.append(String.format("position=%d, delta_time=%.2fms; ", info.index,
+ nanosToMillis(info.event.timestamp - info.previousEvent.timestamp)));
}
if (count > TRUNCATE_MESSAGE_LENGTH) {
sb.append(count - TRUNCATE_MESSAGE_LENGTH).append(" more; ");
}
- sb.append(String.format("(expected <%dns)",
- TimeUnit.NANOSECONDS.convert((int) (THRESHOLD * mExpectedDelayUs),
- TimeUnit.MICROSECONDS)));
+ sb.append(String.format("(expected <%.2fms)",
+ (double)(THRESHOLD * mExpectedDelayUs)/1000.0));
Assert.fail(sb.toString());
}
}
diff --git a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventTimestampSynchronizationVerification.java b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventTimestampSynchronizationVerification.java
index 3af3f03..6f97439 100644
--- a/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventTimestampSynchronizationVerification.java
+++ b/tests/tests/hardware/src/android/hardware/cts/helpers/sensorverification/EventTimestampSynchronizationVerification.java
@@ -149,9 +149,12 @@
if (eventTimestampNs < lowerThresholdNs || eventTimestampNs > upperThresholdNs) {
if (failures.size() < TRUNCATE_MESSAGE_LENGTH) {
builder.append("position=").append(i);
- builder.append(", timestamp=").append(eventTimestampNs).append("ns");
- builder.append(", expected=[").append(lowerThresholdNs);
- builder.append(", ").append(upperThresholdNs).append("]ns; ");
+ builder.append(", timestamp=").append(String.format("%.2fms",
+ nanosToMillis(eventTimestampNs)));
+ builder.append(", expected=[").append(String.format("%.2fms",
+ nanosToMillis(lowerThresholdNs)));
+ builder.append(", ").append(String.format("%.2f]ms; ",
+ nanosToMillis(upperThresholdNs)));
}
failures.add(new IndexedEvent(i, event));
}