mirror of https://github.com/tc39/test262.git
Make 'wait' tests resilient on slow test systems
This commit is contained in:
parent
7f88a6d7f9
commit
b279f4c1b8
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue