Files
docview/tests/ime
2026-09-21 13:41:40 +09:00
..
2026-09-21 13:41:40 +09:00
2026-09-21 13:41:40 +09:00
2026-09-21 13:41:40 +09:00
2026-09-21 13:41:40 +09:00
2026-09-21 13:41:40 +09:00

実IME・XKBの補助GUI試験

Ubuntu 24.04のIBus/Mozcを通して、本番QML・Controllerの検索欄とコマンド欄を検査する。QInputMethodEventを手作業で送らず、X11では専用XvfbへXTestのキー入力を送る。US pc105とJP jp106の配列を明示し、:・/・+・-はキー番号から入力する。WaylandではXWaylandを無効にした専用Swayへwtypeの仮想キーを送り、Qt Wayland+IBusのD-Bus接続で検査する。

必要なUbuntuパッケージはibus ibus-mozc xdotool x11-xkb-utils libxtst6 xvfb dbus-x11 sway wtype。既存のDocView Releaseビルド、Qt 6.11.2 SDK、通常の開発依存を用意する。専用VMでは追加パッケージを導入したが、ホストのIME・ユーザー設定は変更していない。

export PATH=/opt/docview-deps/bin:/opt/docview-qt/6.11.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/opt/docview-deps/lib:/opt/docview-qt/6.11.2/gcc_64/lib
export PKG_CONFIG_PATH=/opt/docview-deps/lib/pkgconfig
cmake -S docview-source/tests/ime -B docview-ime-build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DDOCVIEW_CANONICAL_BUILD=/home/docview/docview-build \
  '-DCMAKE_PREFIX_PATH=/opt/docview-qt/6.11.2/gcc_64;/opt/docview-deps'
cmake --build docview-ime-build --parallel 4
python3 docview-source/tests/ime/run.py \
  --binary docview-ime-build/test_ime --canonical-build docview-build \
  --platform xcb --output validation/ime/new-x11-run
python3 docview-source/tests/ime/run.py \
  --binary docview-ime-build/test_ime --canonical-build docview-build \
  --platform wayland --output validation/ime/new-wayland-run

出力先は毎回新規にする。runnerはprivate D-Bus、選択したXvfb/Sway、IBusとMozc、専用のXDGディレクトリを作り、起動した子だけを識別して回収する。内部sandboxは有効。通常のCTest 22群には追加せず、既存core/common/font brokerと実ワーカーを使う別実行ファイルとして検証する。

「日本語」の変換確定Enterが検索を実行せず、次のEnterで検索すること、「確認」の変換確定がコマンドを実行しないことを確認する。jikan123の編集中・変換候補取消・未確定入力取消でも位置200を維持し、通常モードへ戻った後のj/kで200→248→200へ移動する。最初から上下移動できる表示寸法を要求する。

IBus 1.5.29のCLIは、エンジン切替後にlayoutがdefaultだと終了コード1を返す。そのためSetGlobalEngineをD-Busで呼び、ibus engineで選択結果を照合する。使用版の実装。IME開始はトグルではなくHiraganaを使用し、前ケースの入力モードに依存させない。

Waylandの仮想キーはwtypeが独自のキー配列を持つため、US/JP配列の試験として扱わない。Swayには試験中だけ仮想キーボードを常設し、短い入力ツールの終了で唯一のキーボードが抜けてQtの焦点を失うことを防ぐ。起動後のデバイス一覧を記録し、全子プロセスを回収する。

実行結果。物理キーボード、候補ウィンドウの外観、コンポジターのtext-inputプロトコル経由のIME連携、WindowsのIMEはこの試験の対象外。本番コンポーネントを使うが、製品のmain関数はこの補助試験から実行しない。