dom/encoding/test/worker_helper.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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