Repository navigation
ci: run the Wayland frame-insets suite under headless weston - #2
Merged
Merged
Conversation
foxnne
force-pushed
the
test/wayland-insets-job
branch
2 times, most recently
from
October 9, 2026 18:03
e2abc06 to
d8c7ae8
Compare
foxnne
force-pushed
the
test/wayland-insets-job
branch
from
October 9, 2026 18:20
d8c7ae8 to
3515e9b
Compare
This was referenced Oct 9, 2026
fizzyedit/SDL's suite for patch 6 (`FizzyWayland`, test/testautomation_fizzy_wayland.c) joins `zig build test-fizzy`, and a job of its own runs it under weston's headless backend with its desktop shell, at output scale 1 and 2, in the Ubuntu 26.04 container. The suite reads libwayland's request trace, so it needs a real compositor; lavapipe presents the frames that map its windows. The pin moves to SDL's `test/fizzy-wayland-insets` (the suite for patch 6 on `fizzy-3.4`), which needs a permanent tag before this merges. Part of fizzyedit/fizzy#280 (step A2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
foxnne
force-pushed
the
test/wayland-insets-job
branch
from
October 9, 2026 18:56
3515e9b to
a02dda8
Compare
foxnne
marked this pull request as ready for review
October 9, 2026 19:17
foxnne
added a commit
to fizzyedit/fizzy
that referenced
this pull request
Oct 9, 2026
…294) Fixes #289. Part of #280 (steps A1, A2 and A4b landed on the forks). Moves fizzy's `.sdl` pin to sdl_zig `fizzy-1.0.3+3.4.16-8` (SDL `fizzy-3.4.16-8`). That brings two things: **1. The forks carry tests now.** fizzyedit/SDL has fizzy's own suites on SDL's test harness, one per patch, each failing without its patch. fizzyedit/sdl_zig runs them with `zig build test-fizzy` in CI: Linux on lavapipe under Xvfb and headless weston, and the hosted macOS runners, which have a Metal device. - fizzyedit/SDL#1 → `fizzy-3.4.16-6` (`4839ede`): the runner, plus patch 1's suite (transparent window claimed on Metal and Vulkan). - fizzyedit/sdl_zig#1 → `fizzy-1.0.3+3.4.16-6` (`0f6a2a8`): the `test-fizzy` step. - fizzyedit/SDL#2 → `fizzy-3.4.16-8` (`a518aaf`), fizzyedit/sdl_zig#2 → `fizzy-1.0.3+3.4.16-8` (`a02dda8`): patch 6's suite, Wayland frame insets. - **How:** it reads libwayland's request trace under headless weston, at scale 1 and 2. - **Checks:** geometry, input region, min/max sizes and published insets while floating; zero insets when maximized or fullscreen; popup anchoring. - **Result:** passes on the fork, and fails on upstream 3.4.16. - **Problems it found in patch 6:** five, listed in #280 (C2b). **2. SDL patch 8: Wayland loads where libxkbcommon is older than 1.10** (#289). - **The bug:** built against 1.10+ headers (sdl_zig uses 1.13), SDL required `xkb_keymap_mod_get_mask()`. On Ubuntu 24.04 (1.6) or Debian 12 (1.5) the whole Wayland driver reported itself unavailable, and fizzy fell back to X11. Upstream `main` has the same problem. - **The fix:** the symbol is now optional at runtime, and the masks fall back to `xkb_keymap_mod_get_index()`, the path SDL already takes when built against older headers. For standard keymaps both paths give the same masks. - **The proof:** - [red](https://github.com/fizzyedit/sdl_zig/actions/runs/37968707700) on `ubuntu:24.04` without the patch ("wayland not available"); - [green](https://github.com/fizzyedit/sdl_zig/actions/runs/37971005996) on 24.04 and 26.04 with it, where a German keymap's Shift, Caps Lock and AltGr levels come out right. - **The PRs:** fizzyedit/SDL#3 → `fizzy-3.4.16-7` (`36dda37`); fizzyedit/sdl_zig#3 → `fizzy-1.0.3+3.4.16-7` (`264af2a`). `docs/DEPENDENCIES.md` records patch 8, the three suites, sdl_zig's step and CI jobs, all six tags, and each patch's check at a rebase. ## Verified On macOS (arm64), in a fresh workspace on `main`: | Gate | Result | |---|---| | `zig build` | 43/43 steps | | `zig build test` | 75/75 steps | | `zig build test-integration` | 33/33 steps, 347/347 tests | | `zig build check-web` | 16/16 steps | | `zig build test-sdk-version` | 12/12 steps | | `zig build -Dtarget=x86_64-linux-gnu` | 54/54 steps (builds the patched Wayland file) | Not verified: a fizzy binary running on a real Ubuntu 24.04 Wayland desktop. The evidence is the fork suite in CI containers, built from the same sdl_zig. The SDK fingerprint doesn't move, since plugins never link SDL. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of fizzyedit/fizzy#280 (step A2), with fizzyedit/SDL#2.
zig build test-fizzybuilds fizzyedit/SDL's newtest/testautomation_fizzy_wayland.c(suiteFizzyWayland, patch 6: Wayland frame insets).test-fizzy-wayland-insets, runs--filter FizzyWaylandunderweston --backend=headlessat output scale 1 and 2, in the same Ubuntu 26.04 container as A1's Linux job. The suite reads libwayland's request trace, so it needs a real compositor. Weston's default desktop shell maximizes and fullscreens, and lavapipe presents the frames that map the windows. weston's log is printed after the run. It's a job of its own rather than a step intest-fizzy-linuxso it can carry the scale matrix and stays clear of the ubuntu:24.04 work for linux: Wayland unavailable where libxkbcommon is older than 1.10 fizzy#289.test-fizzy-linux (wayland)also runs the suite, since it runs every suite.eb7e688(branchtest/fizzy-wayland-insets=fizzy-3.4, tagfizzy-3.4.16-6, plus the suite). That commit needs a permanent tag before this merges.Verified
test-fizzy-wayland-insets (1),(2)andtest-fizzy-linux (wayland)are green, 4/4 tests and 123/123 asserts. This PR's own run, on the same pin, is linked from the checks.build (master, ubuntu-latest)andbuild (master, windows-latest)fail in translate-c (Zig master'savx512bmmintrin.hbuiltins). That's unrelated to this change: Zig master against the build, not the suites.What the suite asserts and what headless weston can't cover are in fizzyedit/SDL#2.
🤖 Generated with Claude Code