高解像度・高密度PDFのGUI検証
本番Controller・QML・PdfCanvasと既存Releaseビルドのcore/common/font brokerライブラリを使う、Linux専用の追加試験。PDF/Archive workerは既存の実行ファイルへ接続し、模擬workerや保護無効化を使わない。通常のCTestや製品バイナリーを変更せず、別の実行ファイルとしてビルドする。
cmake -S tests/heavy_pdf -B build-heavy-pdf -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DDOCVIEW_CANONICAL_BUILD="$PWD/build"
cmake --build build-heavy-pdf --parallel 4
python3 tests/heavy_pdf/run.py --output tests/results/heavy-pdf/new-run
既存ビルドと同じQt 6.11.2・ツールチェーン・依存ライブラリを使う。Qt SDKを別配置している環境ではCMAKE_PREFIX_PATH、PATH、LD_LIBRARY_PATH、PKG_CONFIG_PATHも既存ビルドに合わせる。別のビルド先はrunnerの--binaryと--canonical-buildで明示する。既存の結果フォルダーは上書きしない。
資料は2ページ、595×842 pt。1ページ目は4,960×7,016 RGB画像(展開後104,398,080 bytes、A4の600dpi相当)、2ページ目はalpha 0.16・Multiplyで重ねる60,000個のベクターパス。生成元はオリジナルの決定的なアルゴリズムで、実スキャンや書籍ではない。Helveticaの標準フォント参照は非埋込であり、OSの代替を使用する。
qpdfによる画像streamの独立復号でサイズと全画素hashを照合し、Popplerのpdfinfo/pdftotextでページと本文markerを確認する。GUIでは画像の暗いブロックと明るい紙面、多重合成したベクター領域、各ページ固有の色markerを取得画素から検査する。その後、実open RPCが未完の状態でEscを送り、実render RPCが未完の状態で別PDFへ切り替える。旧sessionの破棄、旧文書の保持、切替後の安定、原本hash不変、文書close後のcache解放、通常解像度の維持を確認する。
専用Xvfb 1100×760・DPR1・Qt Quick software・専用D-Busを使う。XDG保存先は一時領域で、利用者の履歴を使用しない。10ms heartbeatの最大間隔はCI停止検出用の1,500ms未満で判定し、50msの視覚応答p95を代用しない。50msごとに採るRSS合計は共有ページの重複を含む。
出力には原本、manifest、復号照合、QtTestログ、3画面、各操作の記録、source/library/worker hashを保存する。docview本体のmain関数そのものを実行する試験ではなく、同じ本番GUI部品を使う専用test executableである。GPU、実IME、物理画面、Windows、長時間リークや広範な実書籍の互換性をこの結果だけで合格にしない。保存済み結果