Relax target values to improve test performance on slower machines.
Differential Revision: https://phabricator.services.mozilla.com/D178698
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1834369
gecko-commit: b15de32be05d9c1ef2e783b468e6e0c3601217ff
gecko-reviewers: jib
diff --git a/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html b/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html
index 504de6d..98ebea2 100644
--- a/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html
+++ b/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html
@@ -25,14 +25,14 @@
"measure raising video jitterBufferTarget to 500");
async_promise_test(t => applyJitterBufferTarget(t, "audio", 500),
"measure raising audio jitterBufferTarget to 500");
-async_promise_test(t => applyJitterBufferTarget(t, "video", 250, 50),
- "measure lowering video jitterBufferTarget to 50");
-async_promise_test(t => applyJitterBufferTarget(t, "audio", 250, 50),
- "measure lowering audio jitterBufferTarget to 50");
-async_promise_test(t => applyJitterBufferTarget(t, "video", 500, 150),
+async_promise_test(t => applyJitterBufferTarget(t, "video", 250, 150),
"measure lowering video jitterBufferTarget to 150");
-async_promise_test(t => applyJitterBufferTarget(t, "audio", 500, 150),
+async_promise_test(t => applyJitterBufferTarget(t, "audio", 250, 150),
"measure lowering audio jitterBufferTarget to 150");
+async_promise_test(t => applyJitterBufferTarget(t, "video", 400, 250),
+ "measure lowering video jitterBufferTarget to 300");
+async_promise_test(t => applyJitterBufferTarget(t, "audio", 400, 250),
+ "measure lowering audio jitterBufferTarget to 300");
async function applyJitterBufferTarget(t, kind, target, targetToLower) {
const caller = new RTCPeerConnection();
@@ -67,7 +67,8 @@
async function measureDelayFromStats(t, receiver, callee, target, kind) {
const lowerBound = target * 0.7;
const upperBound = target * 1.3;
- let delay, oldInboundStats;
+ let delay, oldInboundStats, prevDelay, rateOfChange;
+ let numDelayMeasurements = 1;
for (let statChecks = 0; statChecks < 40; statChecks++) {
await new Promise(r => t.step_timeout(r, 1000));
@@ -77,6 +78,11 @@
if (oldInboundStats) {
delay = ((inboundStats.jitterBufferDelay - oldInboundStats.jitterBufferDelay) /
(inboundStats.jitterBufferEmittedCount - oldInboundStats.jitterBufferEmittedCount) * 1000);
+ if (prevDelay) {
+ rateOfChange = (delay - prevDelay) / numDelayMeasurements;
+ numDelayMeasurements++;
+ }
+ prevDelay = delay;
if (delay > lowerBound && delay < upperBound) {
break;
}
@@ -84,7 +90,7 @@
oldInboundStats = inboundStats;
}
t.step(() => assert_between_inclusive(delay , lowerBound, upperBound,
- `${kind} delay is within bounds`));
+ `${kind} delay is within bounds rateOfChange ${rateOfChange} over ${numDelayMeasurements} measurements`));
return delay;
}
</script>