diff --git a/examples/screenshots/games_fps.jpg b/examples/screenshots/games_fps.jpg index 91dfd581fc9e65..40fe13cb97818f 100644 Binary files a/examples/screenshots/games_fps.jpg and b/examples/screenshots/games_fps.jpg differ diff --git a/examples/screenshots/webgl_geometry_extrude_shapes.jpg b/examples/screenshots/webgl_geometry_extrude_shapes.jpg index ee9667b72aca54..d9a3716ccafe7f 100644 Binary files a/examples/screenshots/webgl_geometry_extrude_shapes.jpg and b/examples/screenshots/webgl_geometry_extrude_shapes.jpg differ diff --git a/examples/screenshots/webgl_interactive_lines.jpg b/examples/screenshots/webgl_interactive_lines.jpg index fe8052c022f454..d55e8442bb69f1 100644 Binary files a/examples/screenshots/webgl_interactive_lines.jpg and b/examples/screenshots/webgl_interactive_lines.jpg differ diff --git a/examples/screenshots/webgl_loader_collada_kinematics.jpg b/examples/screenshots/webgl_loader_collada_kinematics.jpg index 8e3eed2f06c298..75baf3f772b74c 100644 Binary files a/examples/screenshots/webgl_loader_collada_kinematics.jpg and b/examples/screenshots/webgl_loader_collada_kinematics.jpg differ diff --git a/examples/screenshots/webgl_loader_ldraw.jpg b/examples/screenshots/webgl_loader_ldraw.jpg index 1ff32b99837bb3..3416ddee2dfc8b 100644 Binary files a/examples/screenshots/webgl_loader_ldraw.jpg and b/examples/screenshots/webgl_loader_ldraw.jpg differ diff --git a/examples/screenshots/webgl_modifier_simplifier.jpg b/examples/screenshots/webgl_modifier_simplifier.jpg index e36787ea47d83f..9149ee3460f8f1 100644 Binary files a/examples/screenshots/webgl_modifier_simplifier.jpg and b/examples/screenshots/webgl_modifier_simplifier.jpg differ diff --git a/test/e2e/puppeteer.js b/test/e2e/puppeteer.js index 10149139a41ec1..57a6ba8fdd8377 100644 --- a/test/e2e/puppeteer.js +++ b/test/e2e/puppeteer.js @@ -42,26 +42,36 @@ const parseTime = 6; // 6 seconds per megabyte const exceptionList = [ - // video tag not deterministic enough + // video tag isn't deterministic enough? 'css3d_youtube', + 'webgl_materials_video', 'webgl_video_kinect', 'webgl_video_panorama_equirectangular', - 'webxr_vr_video', 'webaudio_visualizer', // audio can't be analyzed without proper audio hook - 'webxr_ar_lighting', // webxr + // WebXR also isn't determinstic enough? + 'webxr_ar_lighting', + 'webxr_vr_sandbox', + 'webxr_vr_video', + 'webxr_xr_ballshooter', 'webgl_worker_offscreencanvas', // in a worker, not robust // Windows-Linux text rendering differences - // TODO: Fix these by setting a font in Puppeteer -- this can also fix a bunch of 0.1%-0.2% examples + // TODO: Fix these by e.g. disabling text rendering altogether -- this can also fix a bunch of 0.1%-0.2% examples 'css3d_periodictable', 'misc_controls_pointerlock', 'misc_uv_tests', 'webgl_camera_logarithmicdepthbuffer', 'webgl_effects_ascii', + 'webgl_geometry_extrude_shapes', + 'webgl_interactive_lines', + 'webgl_loader_collada_kinematics', + 'webgl_loader_ldraw', 'webgl_loader_pdb', + 'webgl_modifier_simplifier', + 'webgl_multiple_canvases_circle', 'webgl_multiple_elements_text', // Unknown @@ -149,7 +159,7 @@ console.red = msg => console.log( chalk.red( msg ) ); console.yellow = msg => console.log( chalk.yellow( msg ) ); console.green = msg => console.log( chalk.green( msg ) ); -let browser; +let browser, platform; /* Launch server */ @@ -221,7 +231,7 @@ async function main() { browser = await puppeteer.launch( { executablePath, - headless: ! process.env.VISIBLE, + headless: process.env.VISIBLE ? false : 'new', args: flags, defaultViewport: viewport, handleSIGINT: false, @@ -290,6 +300,8 @@ async function downloadLatestChromium() { const browserFetcher = new BrowserFetcher( { path: 'test/e2e/chromium' } ); + platform = browserFetcher.platform(); + let revisionInfo = browserFetcher.revisionInfo( chromiumRevision ); if ( revisionInfo.local === true ) { @@ -302,7 +314,7 @@ async function downloadLatestChromium() { console.log( 'Downloaded.' ); } - console.log( `Using Chromium r${ chromiumRevision } (${ revisionInfo.url }), stable channel on ${ browserFetcher.platform() }` ); + console.log( `Using Chromium r${ chromiumRevision } (${ revisionInfo.url }), stable channel on ${ platform }` ); return revisionInfo; } @@ -539,7 +551,7 @@ async function makeAttempt( pages, failedScreenshots, cleanPage, isMakeScreensho } catch { - await screenshot.writeAsync( `test/e2e/output-screenshots/${ file }-actual.jpg` ); + await screenshot.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-actual.jpg` ); throw new Error( `Screenshot does not exist: ${ file }` ); } @@ -558,8 +570,8 @@ async function makeAttempt( pages, failedScreenshots, cleanPage, isMakeScreensho } catch { - await screenshot.writeAsync( `test/e2e/output-screenshots/${ file }-actual.jpg` ); - await expected.writeAsync( `test/e2e/output-screenshots/${ file }-expected.jpg` ); + await screenshot.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-actual.jpg` ); + await expected.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-expected.jpg` ); throw new Error( `Image sizes does not match in file: ${ file }` ); } @@ -574,9 +586,9 @@ async function makeAttempt( pages, failedScreenshots, cleanPage, isMakeScreensho } else { - await screenshot.writeAsync( `test/e2e/output-screenshots/${ file }-actual.jpg` ); - await expected.writeAsync( `test/e2e/output-screenshots/${ file }-expected.jpg` ); - await diff.writeAsync( `test/e2e/output-screenshots/${ file }-diff.jpg` ); + await screenshot.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-actual.jpg` ); + await expected.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-expected.jpg` ); + await diff.writeAsync( `test/e2e/output-screenshots/${ platform }-${ file }-diff.jpg` ); throw new Error( `Diff wrong in ${ differentPixels.toFixed( 1 ) }% of pixels in file: ${ file }` ); }