From b279f4c1b8181f52179b1d0f5e45e3326a61a806 Mon Sep 17 00:00:00 2001 From: Lars T Hansen Date: Wed, 6 Sep 2017 10:01:22 +0200 Subject: [PATCH] Make 'wait' tests resilient on slow test systems --- test/built-ins/Atomics/wait/did-timeout.js | 6 +++--- test/built-ins/Atomics/wait/no-spurious-wakeup.js | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test/built-ins/Atomics/wait/did-timeout.js b/test/built-ins/Atomics/wait/did-timeout.js index 5a8f612118..479e51ac77 100644 --- a/test/built-ins/Atomics/wait/did-timeout.js +++ b/test/built-ins/Atomics/wait/did-timeout.js @@ -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; } diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup.js b/test/built-ins/Atomics/wait/no-spurious-wakeup.js index 8d5f696ac4..edcde9aac1 100644 --- a/test/built-ins/Atomics/wait/no-spurious-wakeup.js +++ b/test/built-ins/Atomics/wait/no-spurious-wakeup.js @@ -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;