Skip to content

test: Launch-Smoke-Test (App bootet offscreen) + CI-Schritt - #9

Merged
TimInTech merged 1 commit into
mainfrom
test/launch-smoke-test
Jun 19, 2026
Merged

test: Launch-Smoke-Test (App bootet offscreen) + CI-Schritt#9
TimInTech merged 1 commit into
mainfrom
test/launch-smoke-test

Conversation

@TimInTech

Copy link
Copy Markdown
Owner

Ziel

„Bootet die App noch?" bei jedem Push automatisch beantworten — ein leichter Test fährt die echte App offscreen hoch und beendet sauber mit Exit 0.

Änderungen

  • tests/test_smoke_launch.py (neu): GUI-gated (WHISPER_GUI_TESTS=1) In-Process-Boot — QApplication-Singleton + BlitztextApp (Tray + Hauptfenster), stop_hotkey_worker (kein echter evdev-Thread), kurz idlen via QTimer.singleShot(50, quit), assert qapp.exec() == 0. Kein echtes Audio, keine Whisper/Piper-Nutzung. Muster analog tests/test_state_machine.py.
  • .github/workflows/blitztext-linux-ci.yml: dedizierter Schritt „Launch smoke test (App bootet offscreen)" vor der Vollsuite als sichtbares Fast-Fail-Boot-Signal (QT_QPA_PLATFORM=offscreen job-weit).

Designentscheidung

Bewusst nicht über main(): ein zweiter QApplication-Konstruktor kollidiert mit dem Suite-Singleton, und _require_display_environment() bricht offscreen ab. Der In-Process-Boot spiegelt denselben Pfad ohne Produktionscode-Änderung.

Scope

Enthält ausschließlich den Smoke-Test (Test + CI). Kein Produktionscode, unabhängig von der offenen Cloud-TTS-Arbeit.

Testplan

  • Smoke-Test offscreen grün (QT_QPA_PLATFORM=offscreen WHISPER_GUI_TESTS=1)
  • RED-Gegenprobe greift (prüft echt den Exit-Code)
  • Vollsuite ohne Regression (220 passed auf dem Feature-Branch)
  • CI grün auf Python 3.11 + 3.12 (Smoke-Schritt + Vollsuite)

🤖 Generated with Claude Code

Leichter, GUI-gated Test (WHISPER_GUI_TESTS=1), der die echte App in-process
hochfaehrt: QApplication + BlitztextApp (Tray + Hauptfenster), kurz idlen via
QTimer und sauberer Quit mit Exit 0. Kein echter Hotkey/evdev-Thread
(stop_hotkey_worker vor dem Idle), kein echtes Audio, keine Whisper/Piper-Nutzung.
Bewusst in-process statt main(), um QApplication-Singleton-Kollisionen und den
Display-Guard unter Offscreen zu vermeiden -- analog tests/test_state_machine.py.

CI: dedizierter Schritt "Launch smoke test (App bootet offscreen)" vor der
Vollsuite als sichtbares Fast-Fail-Boot-Signal bei jedem Push.

Verifiziert offscreen: Smoke-Test gruen, RED-Gegenprobe greift, Vollsuite 220 gruen.
@TimInTech
TimInTech merged commit c5679c8 into main Jun 19, 2026
7 checks passed
@TimInTech
TimInTech deleted the test/launch-smoke-test branch June 19, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant