From 2289b4927958322a26d11a8b3015366d6a7e9cc7 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 5 Jul 2026 15:14:35 +0200 Subject: [PATCH] test: drop pdf2htmlEX/wvWare cross-engine reference comparison The odr engine is ready to replace pdf2htmlEX for PDF and wvWare for legacy .doc. Stop the html_output snapshot test from also generating the poppler and wvware engine outputs, and bump the reference-output submodules to their commits that remove the *.pdf-poppler and *.doc-wvware reference snapshots. The snapshot test is now odr-engine-only. Update the PDF module docs to match. Co-Authored-By: Claude Opus 4.8 --- src/odr/internal/pdf/AGENTS.md | 10 +++++++--- test/data/reference-output/odr-private | 2 +- test/data/reference-output/odr-public | 2 +- test/src/html_output_test.cpp | 14 ++------------ 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/odr/internal/pdf/AGENTS.md b/src/odr/internal/pdf/AGENTS.md index 99f365b7..6ad8ccff 100644 --- a/src/odr/internal/pdf/AGENTS.md +++ b/src/odr/internal/pdf/AGENTS.md @@ -363,7 +363,10 @@ it. The **reference-output snapshot test** (`test/data/reference-output/`) is the graphics oracle: each change regenerates it and the diff is reviewed. (An -automated perceptual-diff gate is deferred; see gaps.) +automated perceptual-diff gate is deferred; see gaps.) The snapshot is now the +**odr engine's own output only** — the `pdf2htmlEX`/poppler (`*.pdf-poppler`) and +wvWare (`*.doc-wvware`) cross-engine reference snapshots were removed once the odr +engine was ready to replace them, so the test no longer runs those engines. ## Module layout @@ -701,8 +704,9 @@ Link annotations (`/URI` + internal `/GoTo`) already land — see *What works*. nested text/shadings/patterns inside a tile are skipped (rare). - **Text clipping**: the clip is not applied to text runs (paths and images are clipped); text clip render modes (`Tr` 4–7) add nothing to the clip. - - **Perceptual-diff oracle**: the reference-output snapshot test is the current - graphics gate; the automated poppler/pdf.js screenshot-diff is not built. + - **Perceptual-diff oracle**: the reference-output snapshot test (odr output + only) is the current graphics gate; an automated pdf.js screenshot-diff is + not built. - **Encryption edge cases** (deferred from stage 0 until a real file needs them): per-stream `/Crypt` filter `Name` overrides, the `EncryptMetadata false` metadata-stream `Identity` special case, and `Perms` (Algorithm 13) diff --git a/test/data/reference-output/odr-private b/test/data/reference-output/odr-private index 10c55b6b..940fe54b 160000 --- a/test/data/reference-output/odr-private +++ b/test/data/reference-output/odr-private @@ -1 +1 @@ -Subproject commit 10c55b6b637ba681f37804d8b12432fa04cc1688 +Subproject commit 940fe54b5921227beb7918c0c77519514028809b diff --git a/test/data/reference-output/odr-public b/test/data/reference-output/odr-public index 1f261826..70c4d7fa 160000 --- a/test/data/reference-output/odr-public +++ b/test/data/reference-output/odr-public @@ -1 +1 @@ -Subproject commit 1f2618261533da094670d02413ca3ec02618c2f4 +Subproject commit 70c4d7fa44ed10435d789f1d258797039f81c247 diff --git a/test/src/html_output_test.cpp b/test/src/html_output_test.cpp index b9ad95df..f3575dcc 100644 --- a/test/src/html_output_test.cpp +++ b/test/src/html_output_test.cpp @@ -249,18 +249,8 @@ TestParams create_test_params(const TestFile &test_file, std::vector list_test_params() { std::vector params; for (const TestFile &test_file : TestData::test_files()) { - std::vector engines = {DecoderEngine::odr}; - if (test_file.type == FileType::portable_document_format) { - engines.push_back(DecoderEngine::poppler); - } - if (test_file.type == FileType::legacy_word_document) { - engines.push_back(DecoderEngine::wvware); - } - - for (const DecoderEngine engine : engines) { - params.push_back( - create_test_params(test_file, engine, PdfTextMode::dual_layer)); - } + params.push_back(create_test_params(test_file, DecoderEngine::odr, + PdfTextMode::dual_layer)); // PDFs default to `PdfTextMode::dual_layer`. To keep the single-layer path // under reference-output coverage too, eject an extra `-single` test case