Make 'wait' tests resilient on slow test systems

This commit is contained in:
Lars T Hansen 2017-09-06 10:01:22 +02:00 committed by Rick Waldron
parent 7f88a6d7f9
commit b279f4c1b8
2 changed files with 7 additions and 7 deletions

View File

@ -15,7 +15,7 @@ $262.agent.receiveBroadcast(function (sab, id) {
var ia = new Int32Array(sab); var ia = new Int32Array(sab);
var then = Date.now(); var then = Date.now();
$262.agent.report(Atomics.wait(ia, 0, 0, 500)); // Timeout 500ms $262.agent.report(Atomics.wait(ia, 0, 0, 500)); // Timeout 500ms
$262.agent.report(Date.now() - then); $262.agent.report(Date.now() - then); // Actual time can be more than 500ms
$262.agent.leaving(); $262.agent.leaving();
}) })
`); `);
@ -24,7 +24,7 @@ var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
$262.agent.broadcast(ia.buffer); $262.agent.broadcast(ia.buffer);
assert.sameValue(getReport(), "timed-out"); assert.sameValue(getReport(), "timed-out");
assert.sameValue(Math.abs((getReport()|0) - 500) < $ATOMICS_MAX_TIME_EPSILON, true); assert.sameValue(Math.abs((getReport()|0) >= 500 - $ATOMICS_MAX_TIME_EPSILON, true);
function getReport() { function getReport() {
var r; var r;

View File

@ -15,7 +15,7 @@ $262.agent.receiveBroadcast(function (sab, id) {
var ia = new Int32Array(sab); var ia = new Int32Array(sab);
var then = Date.now(); var then = Date.now();
Atomics.wait(ia, 0, 0); Atomics.wait(ia, 0, 0);
var diff = Date.now() - then; // Should be about 1000 ms var diff = Date.now() - then; // Should be about 1000 ms but can be more
$262.agent.report(diff); $262.agent.report(diff);
$262.agent.leaving(); $262.agent.leaving();
}) })
@ -28,7 +28,7 @@ $262.agent.sleep(500); // Give the agent a chance to wait
Atomics.store(ia, 0, 1); // Change the value, should not wake the agent Atomics.store(ia, 0, 1); // Change the value, should not wake the agent
$262.agent.sleep(500); // Wait some more so that we can tell $262.agent.sleep(500); // Wait some more so that we can tell
Atomics.wake(ia, 0); // Really wake it up Atomics.wake(ia, 0); // Really wake it up
assert.sameValue(Math.abs((getReport()|0) - 1000) < $ATOMICS_MAX_TIME_EPSILON, true); assert.sameValue((getReport()|0) >= 1000 - $ATOMICS_MAX_TIME_EPSILON, true);
function getReport() { function getReport() {
var r; var r;