From 188752e5f03f259d4781b0b4da2fbd5b32bdde1c Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Tue, 8 Feb 2022 16:59:18 +0100 Subject: [PATCH] Update the test `Driver` to fail on duplicate files While it's obviously fine to use the same PDF document in different reference-tests, note how we e.g. have both `eq` and `text` tests for one document, we should always avoid adding *duplicate* files in the `test/pdfs/` folder. --- test/driver.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/driver.js b/test/driver.js index e92bf829d..6805017d8 100644 --- a/test/driver.js +++ b/test/driver.js @@ -37,6 +37,8 @@ const WORKER_SRC = "../build/generic/build/pdf.worker.js"; const RENDER_TASK_ON_CONTINUE_DELAY = 5; // ms const SVG_NS = "http://www.w3.org/2000/svg"; +const md5FileMap = new Map(); + function loadStyles(styles) { const promises = []; @@ -431,6 +433,19 @@ class Driver { task.stats = { times: [] }; task.enableXfa = task.enableXfa === true; + const prevFile = md5FileMap.get(task.md5); + if (prevFile) { + if (task.file !== prevFile) { + this._nextPage( + task, + `The "${task.file}" file is identical to the previously used "${prevFile}" file.` + ); + return; + } + } else { + md5FileMap.set(task.md5, task.file); + } + // Support *linked* test-cases for the other suites, e.g. unit- and // integration-tests, without needing to run them as reference-tests. if (task.type === "other") {