Skip to content

Commit

Permalink
Allow customizing vis-tests further
Browse files Browse the repository at this point in the history
  • Loading branch information
RaananW committed Jun 26, 2023
1 parent 69dc6a0 commit 41ded76
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 38 deletions.
24 changes: 5 additions & 19 deletions jest-puppeteer.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,16 @@

const headless = process.env.HEADLESS === "true";
const browser = process.env.BROWSER || "chrome";
const engineType = process.env.TEST_ENGINE || "webgl2";
const gpuType = process.env.TEST_GPU || ""; // egl, desktop or nothing
const costumeFlags = engineType === "webgpu" ? ["--enable-unsafe-webgpu"] : [];
const customFlags = process.env.CUSTOM_FLAGS ? process.env.CUSTOM_FLAGS.split(" ") : [];
const browserPath = process.env.BROWSER_PATH || "";

// console.log(process.env, headless, gpuType);
// for linux and WebGPU make sure to enable the following flags:
// --enable-unsafe-webgpu --enable-features=Vulkan,UseSkiaRenderer

const chromeFlags = [
"--js-flags=--expose-gc",
"--enable-unsafe-webgpu",
// "--no-sandbox",
// "--disable-setuid-sandbox",
// // "--gpu",
// "--enable-webgl2-compute-context",
// "--enable-webgl-image-chromium",
// // "--ignore-gpu-blocklist",
// // "--enable-gpu-rasterization",
// "--enable-zero-copy",
// // "--disable-gpu-driver-bug-workarounds",
// "--enable-gpu-compositing",
// "--use-gl=egl",
// "--use-gl=desktop",
/*"--window-size=600x400",*/
...costumeFlags,
...customFlags,
];

if(gpuType) {
Expand All @@ -58,5 +44,5 @@ module.exports = {
args: browser === "chrome" ? chromeFlags : firefoxFlags, // additional arguments for Chrome
executablePath: browserPath,
},
browserContext: "default",
browserContext: process.env.BROWSER_CONTEXT || "default", // "incognito" or "default"
};
46 changes: 27 additions & 19 deletions packages/tools/tests/test/visualization/visualization.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,7 @@ export const evaluateTests = async (engineType = "webgl2", testFileName = "confi
}
}

beforeAll(async () => {
if (logToFile) {
fs.writeFileSync(logPath, "", "utf8");
}
async function preparePageForTests() {
page.on("console", async (msg) => {
// serialize my args the way I want
const args = await Promise.all(
Expand All @@ -81,30 +78,28 @@ export const evaluateTests = async (engineType = "webgl2", testFileName = "confi
}
});
page.on("pageerror", ({ message }) => log(message)).on("requestfailed", (request) => log(`${request.failure().errorText} ${request.url()}`));
log("opening page");
log("preparing page");
await page.setViewport({ width: 600, height: 400 });
page.setDefaultTimeout(0);
await page.goto(getGlobalConfig({ root: config.root }).baseUrl + `/empty.html`, {
waitUntil: "load", // for chrome should be "networkidle0"
timeout: 0,
});
// await page.evaluate(ensurePageIsReady);
log("page ready");
}

log("page opened");
// await jestPuppeteer.debug();
});
afterAll(async () => {
await page.evaluate(() => {
window.engine && window.engine.dispose();
window.scene = null;
window.engine = null;
});
// await jestPuppeteer.debug();
// if (browser) await browser.close();
beforeAll(async () => {
if (process.env.RESET_BROWSER !== "true") {
await preparePageForTests();
}
});

beforeEach(async () => {
// prepare the engine, scene
if (process.env.RESET_BROWSER === "true") {
await jestPuppeteer.resetBrowser();
await preparePageForTests();
}

await page.evaluate(() => {
if (window.scene && window.scene.dispose) {
// run the dispose function here
Expand All @@ -119,7 +114,20 @@ export const evaluateTests = async (engineType = "webgl2", testFileName = "confi
if (engineFlags.renderer) {
log(engineFlags.renderer);
}

log("engine ready");
});

afterAll(async () => {
await page.evaluate(() => {
window.engine && window.engine.dispose();
window.scene = null;
window.engine = null;
});
// await jestPuppeteer.debug();
// if (browser) await browser.close();
});

// afterEach(async () => {
// // cleanup, check heap size after each test
// });
Expand Down Expand Up @@ -147,7 +155,7 @@ export const evaluateTests = async (engineType = "webgl2", testFileName = "confi
const screenshot = await page.screenshot();

const directory = path.resolve(__dirname, "../../../../../jest-screenshot-report");

// Test screenshot (also save this new screenshot if -u is set)
expect(screenshot).toMatchImageSnapshot({
customDiffConfig: {
Expand Down

0 comments on commit 41ded76

Please sign in to comment.