summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/mochitest/worker_wrapper.js
blob: 19ce6dd21e4cd8d6bf52ec824ffcb3c041a6797f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ok(
  SpecialPowers.getBoolPref("dom.webgpu.enabled"),
  "WebGPU pref should be enabled."
);
ok(
  SpecialPowers.getBoolPref("gfx.offscreencanvas.enabled"),
  "OffscreenCanvas pref should be enabled."
);
SimpleTest.waitForExplicitFinish();

const workerWrapperFunc = async function(worker_path, data, transfer) {
  const worker = new Worker(worker_path);

  const results = new Promise((resolve, reject) => {
    worker.addEventListener("message", event => {
      resolve(event.data);
    });
  });

  worker.postMessage(data, transfer);
  for (const result of await results) {
    ok(result.value, result.message);
  }
};

async function runWorkerTest(worker_path, data, transfer) {
  try {
    await workerWrapperFunc(worker_path, data, transfer);
  } catch (e) {
    ok(false, "Unhandled exception " + e);
  }
  SimpleTest.finish();
}