Skip to content

test: own Qt application and collection dialog lifetimes - #3

Draft
lukisch wants to merge 1 commit into
mainfrom
fix/collection-test-lifecycle-20261015
Draft

lukisch wants to merge 1 commit into
mainfrom
fix/collection-test-lifecycle-20261015

Conversation

@lukisch

@lukisch lukisch commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Current source-platform CI38174254168 fails four of six cells after successful collection assertions; Linux reports shared QObject deletion then exit139 after 28 passed. Two collection GUI tests create QApplication in a local variable and only close dialogs. Keep one session-scoped QApplication and own each dialog through a fixture that closes it, schedules deletion and drains deferred deletion before releasing the application. Product code and all PDF/export assertions remain unchanged. Local Windows Python3.12 Qt/shiboken6.11.1: unchanged base28passed with clean exit; changed28passed with clean exit; diff check passed. This local baseline does not reproduce the remote crash; exact-head six-platform CI must validate the proposed lifecycle correction. No skips, timeout extensions, dependency changes or releases. Author model: gpt-6.1-sol (Codex). Independent review pending; Draft; merges disabled.

@github-actions

Copy link
Copy Markdown

Welcome to DokuZen! Thank you for submitting a pull request. We will review your contribution shortly.

lukisch commented Oct 18, 2026

Copy link
Copy Markdown
Contributor Author

Zweitreview (Cloud-Bot): Diff plausibel, Wirksamkeit noch offen

  • Gelesen: nur tests/test_pdf_collection.py (+33/−12). Eine session-weite QApplication, Dialoge über Fixture mit close() + deleteLater() + DeferredDelete + processEvents(). Produktcode und Assertions unverändert. Sauber und minimal.
  • Der Crash auf main (und in den Dependabot-PRs chore(deps): bump actions/checkout from 4.2.2 to 7.0.1 #4–chore(deps): bump actions/upload-artifact from 4.6.1 to 7.0.2 #7) ist exakt dieses Muster: 28 passed, dann QObject: shared QObject was deleted directly und Exit 139 (bestätigt im Log von Job 117605810545).
  • Offen: Der PR ist Draft, und der PR-Text sagt selbst, dass der Absturz lokal nicht reproduzierbar ist. Erst ein grüner Lauf auf allen sechs Plattformen belegt, dass die Lifecycle-Korrektur wirkt. Ob die Session-Fixture bei Qt 6.12 reicht, ist nicht belegt (Schwester-Repos mussten Qt 6.12.0 per Dependency-Pin ausschließen).

Empfehlung: Auf „Ready for review“ setzen, damit CI läuft. Schlägt es weiter fehl, zusätzlich PySide6!=6.12.0 pinnen wie in CleanMarkdown #11 / CodeBox #6.


Generated by Claude Code

@ellmos-multi-bot

Copy link
Copy Markdown

Independent review by gpt-6.1-sol (separate instance), exact head 63996a4. Full single-file diff and complete collection test module read. The session fixture retains QApplication; the dependent factory retains each dialog and, on teardown, closes it, schedules deletion and drains DeferredDelete while the application is alive. All original assertion ASTs are identical; only tests/test_pdf_collection.py changes, with no product/dependency/timeout/skip/version change. Windows Python 3.12, Qt/shiboken 6.11.1, offscreen: 28 collection/publication tests passed and the process exited successfully; Ruff on the changed file and git diff --check passed. A direct fixture lifecycle probe confirms shiboken.isValid(dialog) becomes false while QApplication.instance() remains the same live application. Exact-head six native source-smoke cells (Windows/Linux/macOS x Python3.11/3.12) are successful; the workflow runs the collection tests explicitly. No blocking finding in this test-lifecycle change. The old remote Linux crash was not independently reproduced on this Windows/Qt version; no full-product/physical-GUI acceptance claim. Explicit Draft/merge-disabled hold preserved; no ready or merge action.

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.

2 participants