initial commit

This commit is contained in:
2026-09-21 13:41:40 +09:00
commit 855c7328df
411 changed files with 85352 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
# 高解像度・高密度PDFのGUI検証
本番Controller・QML・PdfCanvasと既存Releaseビルドのcore/common/font brokerライブラリを使う、Linux専用の追加試験。PDF/Archive workerは既存の実行ファイルへ接続し、模擬workerや保護無効化を使わない。通常のCTestや製品バイナリーを変更せず、別の実行ファイルとしてビルドする。
```sh
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、長時間リークや広範な実書籍の互換性をこの結果だけで合格にしない。[保存済み結果](../results/heavy-pdf/README.md)