Skip to content
Snippets Groups Projects
Commit b279f4c1 authored by Lars T Hansen's avatar Lars T Hansen Committed by Rick Waldron
Browse files

Make 'wait' tests resilient on slow test systems

parent 7f88a6d7
No related branches found
No related tags found
No related merge requests found
......@@ -15,7 +15,7 @@ $262.agent.receiveBroadcast(function (sab, id) {
var ia = new Int32Array(sab);
var then = Date.now();
$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();
})
`);
......@@ -24,11 +24,11 @@ var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
$262.agent.broadcast(ia.buffer);
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() {
var r;
while ((r = $262.agent.getReport()) == null)
$262.agent.sleep(100);
$262.agent.sleep(100);
return r;
}
......@@ -15,7 +15,7 @@ $262.agent.receiveBroadcast(function (sab, id) {
var ia = new Int32Array(sab);
var then = Date.now();
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.leaving();
})
......@@ -25,10 +25,10 @@ var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
$262.agent.broadcast(ia.buffer);
$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
Atomics.wake(ia, 0); // Really wake it up
assert.sameValue(Math.abs((getReport()|0) - 1000) < $ATOMICS_MAX_TIME_EPSILON, true);
Atomics.wake(ia, 0); // Really wake it up
assert.sameValue((getReport()|0) >= 1000 - $ATOMICS_MAX_TIME_EPSILON, true);
function getReport() {
var r;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment