mirror of
https://github.com/tc39/test262.git
synced 2025-06-05 06:30:28 +02:00
additional test coverage for atomics.wait + removing old tests which have been replaced + test cleanup and renaming test files for consistency
This commit is contained in:
parent
9f57733ed9
commit
0059b4783d
@ -24,10 +24,10 @@ $262.agent.receiveBroadcast(function (sab, id) {
|
|||||||
var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
|
var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
|
||||||
|
|
||||||
$262.agent.broadcast(ia.buffer);
|
$262.agent.broadcast(ia.buffer);
|
||||||
|
|
||||||
assert.sameValue(getReport(), "timed-out");
|
assert.sameValue(getReport(), "timed-out");
|
||||||
assert.sameValue((getReport() | 0) >= 500 - $ATOMICS_MAX_TIME_EPSILON, true);
|
assert.sameValue((getReport() | 0) >= 500 - $ATOMICS_MAX_TIME_EPSILON, true);
|
||||||
|
|
||||||
|
|
||||||
function getReport() {
|
function getReport() {
|
||||||
var r;
|
var r;
|
||||||
while ((r = $262.agent.getReport()) == null)
|
while ((r = $262.agent.getReport()) == null)
|
||||||
|
@ -28,3 +28,5 @@ function getReport() {
|
|||||||
$262.agent.sleep(100);
|
$262.agent.sleep(100);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert.sameValue(Atomics.wake(ia, 0), 0);
|
||||||
|
@ -31,21 +31,20 @@ function getReport() {
|
|||||||
$262.agent.start(
|
$262.agent.start(
|
||||||
`
|
`
|
||||||
$262.agent.receiveBroadcast(function (sab) {
|
$262.agent.receiveBroadcast(function (sab) {
|
||||||
|
|
||||||
var int32Array = new Int32Array(sab);
|
var int32Array = new Int32Array(sab);
|
||||||
|
|
||||||
var poisoned = {
|
var poisoned = {
|
||||||
valueOf: false,
|
valueOf: false,
|
||||||
toString: false
|
toString: false
|
||||||
};
|
};
|
||||||
var err;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Atomics.wait(int32Array, 0, 0, poisoned);
|
Atomics.wait(int32Array, 0, 0, poisoned);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
err = e.name;
|
$262.agent.report(e.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$262.agent.report(err);
|
|
||||||
$262.agent.leaving();
|
$262.agent.leaving();
|
||||||
})
|
})
|
||||||
`);
|
`);
|
||||||
@ -55,6 +54,8 @@ var int32Array = new Int32Array(sab);
|
|||||||
|
|
||||||
$262.agent.broadcast(int32Array.buffer);
|
$262.agent.broadcast(int32Array.buffer);
|
||||||
|
|
||||||
|
$262.agent.sleep(150);
|
||||||
|
|
||||||
assert.sameValue(getReport(), 'TypeError');
|
assert.sameValue(getReport(), 'TypeError');
|
||||||
|
|
||||||
assert.sameValue(Atomics.wake(int32Array, 0), 0);
|
assert.sameValue(Atomics.wake(int32Array, 0), 0);
|
||||||
|
@ -27,15 +27,13 @@ $262.agent.start(
|
|||||||
$262.agent.receiveBroadcast(function (sab) {
|
$262.agent.receiveBroadcast(function (sab) {
|
||||||
|
|
||||||
var int32Array = new Int32Array(sab);
|
var int32Array = new Int32Array(sab);
|
||||||
var err;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Atomics.wait(int32Array, 0, 0, Symbol('foo'));
|
Atomics.wait(int32Array, 0, 0, Symbol('foo'));
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
err = e.name;
|
$262.agent.report(e.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$262.agent.report(err);
|
|
||||||
$262.agent.leaving();
|
$262.agent.leaving();
|
||||||
})
|
})
|
||||||
`);
|
`);
|
||||||
@ -45,4 +43,8 @@ var int32Array = new Int32Array(sab);
|
|||||||
|
|
||||||
$262.agent.broadcast(int32Array.buffer);
|
$262.agent.broadcast(int32Array.buffer);
|
||||||
|
|
||||||
|
$262.agent.sleep(150);
|
||||||
|
|
||||||
assert.sameValue(getReport(), 'TypeError');
|
assert.sameValue(getReport(), 'TypeError');
|
||||||
|
|
||||||
|
assert.sameValue(Atomics.wake(int32Array, 0), 0);
|
||||||
|
@ -38,7 +38,7 @@ var int32Array = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEME
|
|||||||
|
|
||||||
$262.agent.broadcast(int32Array.buffer);
|
$262.agent.broadcast(int32Array.buffer);
|
||||||
|
|
||||||
$262.agent.sleep(2);
|
$262.agent.sleep(150);
|
||||||
|
|
||||||
var r1 = getReport();
|
var r1 = getReport();
|
||||||
var r2 = getReport();
|
var r2 = getReport();
|
||||||
|
@ -17,9 +17,8 @@ features: [ Atomics, SharedArrayBuffer, TypedArray ]
|
|||||||
|
|
||||||
function getReport() {
|
function getReport() {
|
||||||
var r;
|
var r;
|
||||||
while ((r = $262.agent.getReport()) == null) {
|
while ((r = $262.agent.getReport()) == null)
|
||||||
$262.agent.sleep(100);
|
$262.agent.sleep(100);
|
||||||
}
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user