Skip to content

Add GIMP Motif differential testing#18

Merged
jserv merged 1 commit into
mainfrom
gimp-054
Jun 22, 2026
Merged

Add GIMP Motif differential testing#18
jserv merged 1 commit into
mainfrom
gimp-054

Conversation

@jserv

@jserv jserv commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Bring GIMP up under the Motif build path and validate it against system Xlib via differential screenshot test. Adds the GIMP source patch series (compat/gimp-patches), the build fragments to fetch and build it (mk/gimp-motif.mk, mk/sdl.mk), and the differential runner (scripts/ run-gimp-differential-tests.py) with its fixtures and replay.

Supporting compat fixes surfaced by the GIMP workload:

  • events.c: route inline-text events through a side queue so they survive sdl2-compat's event path, with thread-local wheel deltas
  • snapshot.c: write screenshots to a temp file and rename into place so readers never observe a truncated BMP
  • sdl-wrapper.c: side-queue-aware SDL event wrappers, undo push-time accounting on a full ring, and a shared atomic symbol-cache macro

Summary by cubic

Adds GIMP 0.54 (Motif) as a differential test target built against libx11-compat, plus event, snapshot, and SDL loader‑path fixes uncovered by this workload to improve stability and test reliability.

  • New Features

    • Build and test GIMP 0.54 against libx11-compat + in‑tree Motif via mk/gimp-motif.mk; patch set in compat/gimp-patches (modern toolchain/LP64, updated PNG plug‑in, dropped TIFF).
    • New runner scripts/run-gimp-differential-tests.py with fixtures and a startup replay; added gimp jobs to ci.yml and differential.yml; README updated.
    • Centralized SDL detection in mk/sdl.mk; tests set runtime loader paths so sdl2-compat resolves transitive libSDL3 libraries reliably.
  • Bug Fixes

    • Inline text input now rides a side queue so it survives sdl2-compat; X event accounting stays correct; wheel deltas stored thread‑locally.
    • Screenshots save to a temp file and rename() into place to avoid truncated BMP reads.
    • SDL wrapper gains side‑queue‑aware event wrappers, fixes push‑time accounting on full rings, and uses a shared atomic symbol‑cache macro.
    • Robustness tweaks: accept “schoolbook” as a font alias, include wchar.h, use XmStringUnparse for file dialogs, and default gimprc path/name to run from the build tree.

Written for commit 4b0e85b. Summary will update on new commits.

Review in cubic

cubic-dev-ai[bot]

This comment was marked as resolved.

Bring GIMP up under the Motif build path and validate it against system
Xlib via differential screenshot test. Adds the GIMP source patch series
(compat/gimp-patches), the build fragments to fetch and build it
(mk/gimp-motif.mk, mk/sdl.mk), and the differential runner (scripts/
run-gimp-differential-tests.py) with its fixtures and replay.

Supporting compat fixes surfaced by the GIMP workload:
- events.c: route inline-text events through a side queue so they
  survive sdl2-compat's event path, with thread-local wheel deltas
- snapshot.c: write screenshots to a temp file and rename into place
  so readers never observe a truncated BMP
- sdl-wrapper.c: side-queue-aware SDL event wrappers, undo push-time
  accounting on a full ring, and a shared atomic symbol-cache macro
@jserv jserv merged commit b024b73 into main Jun 22, 2026
14 checks passed
@jserv jserv deleted the gimp-054 branch June 22, 2026 09:12
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