| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <body> | 3 <body> |
| 4 <p>Test sharing SharedArrayBuffers between dedicated workers.</p> | 4 <p>Test sharing SharedArrayBuffers between dedicated workers.</p> |
| 5 <div id="result"></div> | 5 <div id="result"></div> |
| 6 <script type="text/javascript"> | 6 <script type="text/javascript"> |
| 7 function log(message) | 7 function log(message) |
| 8 { | 8 { |
| 9 document.getElementById("result").innerHTML += message + "</br>"; | 9 document.getElementById("result").innerHTML += message + "</br>"; |
| 10 } | 10 } |
| 11 | 11 |
| 12 var testCases = [ | 12 var testCases = [ |
| 13 "testSendSharedArrayBuffer", | 13 "testSendSharedArrayBuffer", |
| 14 "testSendInt8Array", | 14 "testSendInt8Array", |
| 15 "testSendUint8Array", | 15 "testSendUint8Array", |
| 16 "testSendUint8ClampedArray", | 16 "testSendUint8ClampedArray", |
| 17 "testSendInt16Array", | 17 "testSendInt16Array", |
| 18 "testSendUint16Array", | 18 "testSendUint16Array", |
| 19 "testSendInt32Array", | 19 "testSendInt32Array", |
| 20 "testSendUint32Array", | 20 "testSendUint32Array", |
| 21 "testSendFloat32Array", | 21 "testSendFloat32Array", |
| 22 "testSendFloat64Array", | 22 "testSendFloat64Array", |
| 23 "testSendSharedArrayBufferTwice", | 23 "testSendSharedArrayBufferTwice", |
| 24 "testTransferArrayBufferAndSharedArrayBuffer" | 24 "testTransferArrayBufferAndSharedArrayBuffer", |
| 25 "testSharedArrayBufferInTransferListViaMessagePort", |
| 25 ]; | 26 ]; |
| 26 var testIndex = 0; | 27 var testIndex = 0; |
| 27 | 28 |
| 28 function runNextTest() | 29 function runNextTest() |
| 29 { | 30 { |
| 30 if (testIndex < testCases.length) { | 31 if (testIndex < testCases.length) { |
| 31 testIndex++; | 32 testIndex++; |
| 32 try { | 33 try { |
| 33 window[testCases[testIndex - 1]](); | 34 window[testCases[testIndex - 1]](); |
| 34 } catch (ex) { | 35 } catch (ex) { |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 sab2Length: sab.byteLength, | 185 sab2Length: sab.byteLength, |
| 185 }; | 186 }; |
| 186 | 187 |
| 187 log("Running SendSharedArrayBufferTwice test case"); | 188 log("Running SendSharedArrayBufferTwice test case"); |
| 188 | 189 |
| 189 initializeTypedArray(new Uint8Array(sab), sab.byteLength); | 190 initializeTypedArray(new Uint8Array(sab), sab.byteLength); |
| 190 | 191 |
| 191 worker.postMessage(msg); | 192 worker.postMessage(msg); |
| 192 } | 193 } |
| 193 | 194 |
| 195 function testSharedArrayBufferInTransferListViaMessagePort() { |
| 196 var ab1 = new ArrayBuffer(4); |
| 197 var ab2 = new ArrayBuffer(4); |
| 198 var sab1 = new SharedArrayBuffer(16); |
| 199 var sab2 = new SharedArrayBuffer(16); |
| 200 var msg = { |
| 201 name : 'SharedArrayBufferInTransferListViaMessagePort', |
| 202 ab1: ab1, |
| 203 ab2: ab2, |
| 204 sab1: sab1, |
| 205 sab2: sab2, |
| 206 }; |
| 207 |
| 208 var channel = new MessageChannel(); |
| 209 |
| 210 channel.port2.onmessage = function() { |
| 211 log("FAIL: Message should not be sent."); |
| 212 }; |
| 213 |
| 214 log("Running SharedArrayBufferInTransferListViaMessagePort test case"); |
| 215 |
| 216 try { |
| 217 channel.port1.postMessage(msg, [ab1, sab1, ab2, sab2]); |
| 218 log("FAIL: Passing SharedArrayBuffer in the transfer list did not throw.
"); |
| 219 } catch (e) { |
| 220 log("PASS: Passing SharedArrayBuffer in the transfer list threw."); |
| 221 } |
| 222 |
| 223 if (ab1.byteLength === 0) |
| 224 log("FAIL: ArrayBuffer 'ab1' was neutered."); |
| 225 else |
| 226 log("PASS: ArrayBuffer 'ab1' was not neutered."); |
| 227 |
| 228 if (ab2.byteLength === 0) |
| 229 log("FAIL: ArrayBuffer 'ab2' was neutered."); |
| 230 else |
| 231 log("PASS: ArrayBuffer 'ab2' was not neutered."); |
| 232 |
| 233 runNextTest(); |
| 234 } |
| 235 |
| 194 if (window.testRunner) { | 236 if (window.testRunner) { |
| 195 testRunner.dumpAsText(); | 237 testRunner.dumpAsText(); |
| 196 testRunner.waitUntilDone(); | 238 testRunner.waitUntilDone(); |
| 197 } | 239 } |
| 198 | 240 |
| 199 if (window.internals && internals.runtimeFlags.sharedArrayBufferEnabled && windo
w.SharedArrayBuffer) { | 241 if (window.internals && internals.runtimeFlags.sharedArrayBufferEnabled && windo
w.SharedArrayBuffer) { |
| 200 var worker = new Worker('resources/worker-sharedarraybuffer-transfer.js'); | 242 var worker = new Worker('resources/worker-sharedarraybuffer-transfer.js'); |
| 201 | 243 |
| 202 runNextTest(); | 244 runNextTest(); |
| 203 | 245 |
| 204 worker.onmessage = function(e) { | 246 worker.onmessage = function(e) { |
| 205 if (e.data != 'DONE') { | 247 if (e.data != 'DONE') { |
| 206 // The worker sent a pass/fail message. | 248 // The worker sent a pass/fail message. |
| 207 log(e.data); | 249 log(e.data); |
| 208 } else { | 250 } else { |
| 209 runNextTest(); | 251 runNextTest(); |
| 210 } | 252 } |
| 211 }; | 253 }; |
| 212 } else { | 254 } else { |
| 213 log("SharedArrayBuffers are not enabled -- skipping test."); | 255 log("SharedArrayBuffers are not enabled -- skipping test."); |
| 214 testRunner.notifyDone(); | 256 testRunner.notifyDone(); |
| 215 } | 257 } |
| 216 | 258 |
| 217 </script> | 259 </script> |
| 218 </body> | 260 </body> |
| 219 </html> | 261 </html> |
| OLD | NEW |