Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1016)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/workers/worker-sharedarraybuffer-transfer.html

Issue 2860303002: Run SharedArrayBuffer WPT tests in virtual/sharedarraybuffer testsuite (Closed)
Patch Set: add comment to ExtractNonSharedArrayBuffers and merge HEAD Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698