From b279f4c1b8181f52179b1d0f5e45e3326a61a806 Mon Sep 17 00:00:00 2001
From: Lars T Hansen <lhansen@mozilla.com>
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;
-- 
GitLab