fixup! Atomics: updates to various Atomics tests. gh-1527

This commit is contained in:
Rick Waldron 2018-04-26 11:26:34 -04:00
parent 7c30ad5c4f
commit 3ea465996c
10 changed files with 66 additions and 66 deletions

View File

@ -29,10 +29,10 @@ var agent3 = '3';
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
$262.agent.report(${agent1});
Atomics.wait(int32Array, 0, 0);
Atomics.wait(i32a, 0, 0);
$262.agent.report(${agent1});
$262.agent.leaving();
@ -41,11 +41,11 @@ $262.agent.receiveBroadcast(function(sab) {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
$262.agent.report(${agent2});
Atomics.wait(int32Array, 0, 0);
Atomics.wait(i32a, 0, 0);
$262.agent.report(${agent2});
$262.agent.leaving();
@ -54,11 +54,11 @@ $262.agent.receiveBroadcast(function(sab) {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
$262.agent.report(${agent3});
Atomics.wait(int32Array, 0, 0);
Atomics.wait(i32a, 0, 0);
$262.agent.report(${agent3});
$262.agent.leaving();
@ -66,21 +66,21 @@ $262.agent.receiveBroadcast(function(sab) {
`);
var int32Array = new Int32Array(new SharedArrayBuffer(4));
var i32a = new Int32Array(new SharedArrayBuffer(4));
$262.agent.broadcast(int32Array.buffer);
$262.agent.broadcast(i32a.buffer);
var orderWhichAgentsWereStarted = getReport() + getReport() + getReport(); // can be started in any order
assert.sameValue(Atomics.wake(int32Array, 0, 1), 1);
assert.sameValue(Atomics.wake(i32a, 0, 1), 1);
var orderAgentsWereWoken = getReport();
assert.sameValue(Atomics.wake(int32Array, 0, 1), 1);
assert.sameValue(Atomics.wake(i32a, 0, 1), 1);
orderAgentsWereWoken += getReport();
assert.sameValue(Atomics.wake(int32Array, 0, 1), 1);
assert.sameValue(Atomics.wake(i32a, 0, 1), 1);
orderAgentsWereWoken += getReport();

View File

@ -35,20 +35,20 @@ function getReport() {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report(Atomics.wait(int32Array, 0, 0, ${timeout}));
var i32a = new Int32Array(sab);
$262.agent.report(Atomics.wait(i32a, 0, 0, ${timeout}));
$262.agent.leaving();
});
`);
var sab = new SharedArrayBuffer(4);
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
$262.agent.broadcast(int32Array.buffer);
$262.agent.broadcast(i32a.buffer);
$262.agent.sleep(sleeping);
assert.sameValue(Atomics.wake(int32Array, 0), 1);
assert.sameValue(Atomics.wake(i32a, 0), 1);
assert.sameValue(getReport(), "ok");
assert(sleeping < timeout, "this test assumes it won't last for more than 20 seconds");

View File

@ -28,43 +28,43 @@ function getReport() {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("A " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("A " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("B " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("B " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("C " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("C " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("D " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("D " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
var int32Array = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
var i32a = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
$262.agent.broadcast(int32Array.buffer);
$262.agent.broadcast(i32a.buffer);
$262.agent.sleep(20);
assert.sameValue(Atomics.wake(int32Array, WAKEUP /*, count missing */), NUMAGENT);
assert.sameValue(Atomics.wake(i32a, WAKEUP /*, count missing */), NUMAGENT);
var sortedReports = [];
for (var i = 0; i < NUMAGENT; i++) {

View File

@ -26,16 +26,16 @@ function getReport() {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("A " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("A " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("B " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("B " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
@ -43,8 +43,8 @@ $262.agent.receiveBroadcast(function(sab) {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("C " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("C " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
@ -52,19 +52,19 @@ $262.agent.receiveBroadcast(function(sab) {
$262.agent.start(`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report("D " + Atomics.wait(int32Array, ${WAKEUP}, 0, 50));
var i32a = new Int32Array(sab);
$262.agent.report("D " + Atomics.wait(i32a, ${WAKEUP}, 0, 50));
$262.agent.leaving();
});
`);
var int32Array = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
var i32a = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
$262.agent.broadcast(int32Array.buffer);
$262.agent.broadcast(i32a.buffer);
$262.agent.sleep(20); // half of timeout
assert.sameValue(Atomics.wake(int32Array, WAKEUP, undefined), NUMAGENT);
assert.sameValue(Atomics.wake(i32a, WAKEUP, undefined), NUMAGENT);
var sortedReports = [];
for (var i = 0; i < NUMAGENT; i++) {

View File

@ -17,14 +17,14 @@ features: [Atomics, SharedArrayBuffer, TypedArray]
---*/
var sab = new SharedArrayBuffer(1024);
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
var poisoned = {
valueOf: function() {
throw new Test262Error("should not evaluate this code");
}
};
assert.throws(RangeError, () => Atomics.wake(int32Array, -Infinity, poisoned));
assert.throws(RangeError, () => Atomics.wake(int32Array, -7.999, poisoned));
assert.throws(RangeError, () => Atomics.wake(int32Array, -1, poisoned));
assert.throws(RangeError, () => Atomics.wake(int32Array, -300, poisoned));
assert.throws(RangeError, () => Atomics.wake(i32a, -Infinity, poisoned));
assert.throws(RangeError, () => Atomics.wake(i32a, -7.999, poisoned));
assert.throws(RangeError, () => Atomics.wake(i32a, -1, poisoned));
assert.throws(RangeError, () => Atomics.wake(i32a, -300, poisoned));

View File

@ -15,7 +15,7 @@ info: |
features: [ArrayBuffer, Atomics, TypedArray]
---*/
var int32Array = new Int32Array(new ArrayBuffer(4));
var i32a = new Int32Array(new ArrayBuffer(4));
var poisoned = {
valueOf: function() {
throw new Test262Error("should not evaluate this code");
@ -23,9 +23,9 @@ var poisoned = {
};
assert.throws(TypeError, function() {
Atomics.wake(int32Array, 0, 0)
Atomics.wake(i32a, 0, 0);
});
assert.throws(TypeError, function() {
Atomics.wake(int32Array, poisoned, poisoned)
Atomics.wake(i32a, poisoned, poisoned);
});

View File

@ -16,15 +16,15 @@ includes: [detachArrayBuffer.js]
features: [ArrayBuffer, Atomics, TypedArray]
---*/
var int32Array = new Int32Array(new ArrayBuffer(1024));
var i32a = new Int32Array(new ArrayBuffer(1024));
var poisoned = {
valueOf: function() {
throw new Test262Error("should not evaluate this code");
}
};
$DETACHBUFFER(int32Array.buffer); // Detaching a non-shared ArrayBuffer sets the [[ArrayBufferData]] value to null
$DETACHBUFFER(i32a.buffer); // Detaching a non-shared ArrayBuffer sets the [[ArrayBufferData]] value to null
assert.throws(TypeError, function() {
Atomics.wake(int32Array, poisoned, poisoned);
Atomics.wake(i32a, poisoned, poisoned);
});

View File

@ -16,7 +16,7 @@ description: >
features: [Atomics, SharedArrayBuffer, TypedArray]
---*/
var int32Array = new Int32Array(new SharedArrayBuffer(4));
var i32a = new Int32Array(new SharedArrayBuffer(4));
var poisoned = {
valueOf: function() {
throw new Test262Error("should not evaluate this code");
@ -24,11 +24,11 @@ var poisoned = {
};
assert.throws(RangeError, function() {
Atomics.wake(int32Array, Infinity, poisoned);
Atomics.wake(i32a, Infinity, poisoned);
});
assert.throws(RangeError, function() {
Atomics.wake(int32Array, 2, poisoned);
Atomics.wake(i32a, 2, poisoned);
});
assert.throws(RangeError, function() {
Atomics.wake(int32Array, 200, poisoned);
Atomics.wake(i32a, 200, poisoned);
});

View File

@ -29,7 +29,7 @@ features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray]
---*/
var buffer = new SharedArrayBuffer(1024);
var int32Array = new Int32Array(buffer);
var i32a = new Int32Array(buffer);
var poisonedValueOf = {
valueOf: function() {
@ -44,17 +44,17 @@ var poisonedToPrimitive = {
};
assert.throws(Test262Error, function() {
Atomics.wake(int32Array, poisonedValueOf, poisonedValueOf);
Atomics.wake(i32a, poisonedValueOf, poisonedValueOf);
});
assert.throws(Test262Error, function() {
Atomics.wake(int32Array, poisonedToPrimitive, poisonedToPrimitive);
Atomics.wake(i32a, poisonedToPrimitive, poisonedToPrimitive);
});
assert.throws(TypeError, function() {
Atomics.wake(int32Array, Symbol("foo"), poisonedValueOf);
Atomics.wake(i32a, Symbol("foo"), poisonedValueOf);
});
assert.throws(TypeError, function() {
Atomics.wake(int32Array, Symbol("foo"), poisonedToPrimitive);
Atomics.wake(i32a, Symbol("foo"), poisonedToPrimitive);
});

View File

@ -24,8 +24,8 @@ features: [Atomics, SharedArrayBuffer, TypedArray]
$262.agent.start(
`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report(Atomics.wait(int32Array, 0, 0, 200));
var i32a = new Int32Array(sab);
$262.agent.report(Atomics.wait(i32a, 0, 0, 200));
$262.agent.leaving();
})
@ -35,23 +35,23 @@ $262.agent.receiveBroadcast(function(sab) {
;$262.agent.start(
`
$262.agent.receiveBroadcast(function(sab) {
var int32Array = new Int32Array(sab);
$262.agent.report(Atomics.wait(int32Array, 0, 0, 200));
var i32a = new Int32Array(sab);
$262.agent.report(Atomics.wait(i32a, 0, 0, 200));
$262.agent.leaving();
})
`);
var sab = new SharedArrayBuffer(4);
var int32Array = new Int32Array(sab);
var i32a = new Int32Array(sab);
$262.agent.broadcast(int32Array.buffer);
$262.agent.broadcast(i32a.buffer);
$262.agent.sleep(100); // halfway through timeout
assert.sameValue(Atomics.wake(int32Array, undefined, 1), 1); // wake at index 0
assert.sameValue(Atomics.wake(i32a, undefined, 1), 1); // wake at index 0
assert.sameValue(getReport(), "ok");
assert.sameValue(Atomics.wake(int32Array), 1); // wake again at index 0
assert.sameValue(Atomics.wake(i32a), 1); // wake again at index 0
assert.sameValue(getReport(), "ok");
function getReport() {