dom/encoding/test/worker_helper.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  * worker_helper.js
     3  * bug 764234 tests
     4 */
     5 function runTestInWorker(files) {
     6   function workerRun() {
     7     var tests = [];
     8     var asserts;
     9     test = function(func, msg) {
    10       asserts = [];
    11       tests.push({asserts: asserts, msg: msg});
    12     }
    13     assert_equals = function(result, expected, msg) {
    14       asserts.push(["assert_equals", result, expected, msg]);
    15     };
    16     assert_true = function(condition, msg) {
    17       asserts.push(["assert_true", condition, msg]);
    18     };
    19     assert_unreached = function(condition, msg) {
    20       asserts.push(["assert_unreached", condition, msg]);
    21     };
    22     onmessage = function(event) {
    23       importScripts.apply(self, event.data);
    24       runTest();
    25       postMessage(tests);
    26     };
    27   }
    29   var url = URL.createObjectURL(new Blob([
    30     runTest.toString(), "\n\n",
    31     "(", workerRun.toString(), ")();"
    32   ]));
    33   var worker = new Worker(url);
    34   var base = location.toString().replace(/\/[^\/]*$/,"/");
    35   worker.postMessage(files.map(function(f) { return base + f; }));
    36   worker.onmessage = function(event) {
    37     URL.revokeObjectURL(url);
    38     event.data.forEach(function(t) {
    39       test(function() {
    40         t.asserts.forEach(function(a) {
    41           func = a.shift();
    42           self[func].apply(self, a);
    43         });
    44       }, "worker " + t.msg);
    45     });
    46     done();
    47   };
    48 }

mercurial