From b3bcf7dac12223d99fb3d627734165f6100d777f Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 16 Nov 2018 11:29:42 +0100 Subject: [PATCH] Add 2% tolerance to vector rendering tests --- rendering/cases/layer-vectortile-simple/main.js | 5 ++++- .../cases/linestring-style-rotation/main.js | 2 +- rendering/test.js | 16 +++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/rendering/cases/layer-vectortile-simple/main.js b/rendering/cases/layer-vectortile-simple/main.js index baa2382917..2a149087e3 100644 --- a/rendering/cases/layer-vectortile-simple/main.js +++ b/rendering/cases/layer-vectortile-simple/main.js @@ -23,4 +23,7 @@ new Map({ }) }); -render({message: 'Vector tile layer renders'}); +render({ + message: 'Vector tile layer renders', + tolerance: 0.02 +}); diff --git a/rendering/cases/linestring-style-rotation/main.js b/rendering/cases/linestring-style-rotation/main.js index 3a4031e89f..98a8f76c57 100644 --- a/rendering/cases/linestring-style-rotation/main.js +++ b/rendering/cases/linestring-style-rotation/main.js @@ -67,4 +67,4 @@ new Map({ }) }); -render(); +render({tolerance: 0.02}); diff --git a/rendering/test.js b/rendering/test.js index d267bdc99a..85d5660493 100755 --- a/rendering/test.js +++ b/rendering/test.js @@ -182,24 +182,30 @@ async function copyActualToExpected(entry) { async function renderEach(page, entries, options) { let fail = false; for (const entry of entries) { - const config = await renderPage(page, entry, options); - const message = config.message !== undefined ? config.message : entry; - const tolerance = config.tolerance !== undefined ? config.tolerance : 0; + const {tolerance = 0, message = ''} = await renderPage(page, entry, options); + if (options.fix) { await copyActualToExpected(entry); continue; } + const {error, mismatch} = await getScreenshotsMismatch(entry); if (error) { options.log.error(error); fail = true; continue; } + + let detail = `case ${entry}`; + if (message) { + detail = `${detail} (${message})`; + } + if (mismatch > tolerance) { - options.log.error(`checking '${message}': mismatch ${mismatch.toFixed(3)}`); + options.log.error(`${detail}': mismatch ${mismatch.toFixed(3)}`); fail = true; } else { - options.log.info(`checking '${message}': ok`); + options.log.info(`${detail}': ok`); await touch(getPassFilePath(entry)); } }