X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Ftest%2Fbrowser.mjs;h=e4e6112cbc88c065b162d38245b7508e17493d97;hb=e0fec3409b0cab35f00a1d1d699daf20f5de79fd;hp=0d9e9dd9ec414854fe42a7189046190c0f830914;hpb=0ec2f12b9af8bd4f17570d87c10e52d3de6cf153;p=ldk-java diff --git a/ts/test/browser.mjs b/ts/test/browser.mjs index 0d9e9dd9..e4e6112c 100644 --- a/ts/test/browser.mjs +++ b/ts/test/browser.mjs @@ -2,19 +2,29 @@ import { chromium, firefox, webkit } from 'playwright'; import { strict as assert } from 'assert'; for (const browserType of [chromium, firefox]) { // We'd like to test webkit, but playwright doesn't support it on Debian (?!) - const browser = await browserType.launch(); + var browser; + if (browserType == chromium) + browser = await browserType.launch(["--js-flags=\"--expose-gc\""]); + else + browser = await browserType.launch(); const context = await browser.newContext(); const page = await context.newPage(); page.on('console', async msg => { - const values = []; - for (const arg of msg.args()) - values.push(await arg.jsonValue()); - console.log(...values); + try { + const values = []; + for (const arg of msg.args()) + values.push(await arg.jsonValue()); + console.log(...values); + } catch (_) { /* sometimes this gets hit if we're logging while the browser shuts down */ } }); await page.goto('http://localhost:8000/test/index.html'); - const ret = await page.evaluate(() => { - return test_runner('../liblightningjs.wasm'); - }); + var ret; + // On chromium we expose the GC and can run it manually, otherwise we really can't leak-check + if (browserType == chromium) { + ret = await page.evaluate(() => { return test_runner('../liblightningjs.wasm', true); }); + } else { + ret = await page.evaluate(() => { return test_runner('../liblightningjs.wasm', false); }); + } assert(ret); await browser.close();