WI: WayRay compositor smoke test suite #188

Closed
opened 2026-05-24 05:13:27 +00:00 by toasterson · 0 comments
Owner

Goal

Create QA test suite for the WayRay compositor: verify wrsrvd boots, creates a Wayland socket, and renders nested client windows correctly.

Background

WayRay is a Smithay-based Wayland compositor for thin client computing. It runs headless-first with PixmanRenderer. Testing verifies that the compositor builds, runs in the QA VM, and correctly handles client window rendering.

🔗 Remote Sources (all on code.aopc.cloud)

WayRay:

Design doc: Ask Tecton for memory/projects/anima-qa.md — test spec template

🏗️ Implementation Guide

Create test file

Create tests/qa/wayray/compositor-boot.qa.yaml in Anima repo.

Setup: Clone wayray from code.aopc.cloud → cargo build --release

Test steps:

  • Start wrsrvd: WAYLAND_DISPLAY=wayland-0 RUST_LOG=info /src/wayray/target/release/wrsrvd &
  • Wait for "wayland socket:" output
  • Launch foot terminal as nested client on wrsrvd's socket: WAYLAND_DISPLAY=wayland-1 foot -- sh -c 'echo CLIENT_READY; sleep 2; exit'
  • Wait for client ready
  • Capture screenshot → assert "Wayland compositor window showing running terminal, correct text, no corruption"
  • Launch second client → capture multi-window → assert both visible

Golden references: goldens/wayray/compositor-boot.png and goldens/wayray/multi-window.png

Acceptance Criteria

  • wrsrvd builds and runs
  • Compositor creates Wayland socket
  • Client windows render inside compositor
  • Multi-window scenario works
  • Test passes reliably
  • #183 — VM image
  • #184 — visual primitives
  • #185 — test runner
## Goal Create QA test suite for the WayRay compositor: verify wrsrvd boots, creates a Wayland socket, and renders nested client windows correctly. ## Background WayRay is a Smithay-based Wayland compositor for thin client computing. It runs headless-first with PixmanRenderer. Testing verifies that the compositor builds, runs in the QA VM, and correctly handles client window rendering. ## 🔗 Remote Sources (all on code.aopc.cloud) **WayRay:** - **Repo:** https://code.aopc.cloud/CloudNebulaProject/wayray - **Clone:** `git clone https://code.aopc.cloud/CloudNebulaProject/wayray.git` - https://code.aopc.cloud/CloudNebulaProject/wayray/src/branch/main/CLAUDE.md — architecture: Smithay + calloop + QUIC transport, headless-first with PixmanRenderer, binary: wrsrvd - https://code.aopc.cloud/CloudNebulaProject/wayray/src/branch/main/vm/README.md — existing VM testing docs: Sway nested compositor, X11 backend fallback when EGL fails - https://code.aopc.cloud/CloudNebulaProject/wayray/src/branch/main/crates/wrsrvd/src/main.rs — compositor entrypoint - https://code.aopc.cloud/CloudNebulaProject/wayray/src/branch/main/crates/wrsrvd/src/session/ — session management **Design doc:** Ask Tecton for `memory/projects/anima-qa.md` — test spec template ## 🏗️ Implementation Guide ### Create test file Create `tests/qa/wayray/compositor-boot.qa.yaml` in Anima repo. **Setup:** Clone wayray from code.aopc.cloud → `cargo build --release` **Test steps:** - Start wrsrvd: `WAYLAND_DISPLAY=wayland-0 RUST_LOG=info /src/wayray/target/release/wrsrvd &` - Wait for "wayland socket:" output - Launch foot terminal as nested client on wrsrvd's socket: `WAYLAND_DISPLAY=wayland-1 foot -- sh -c 'echo CLIENT_READY; sleep 2; exit'` - Wait for client ready - Capture screenshot → assert "Wayland compositor window showing running terminal, correct text, no corruption" - Launch second client → capture multi-window → assert both visible **Golden references:** `goldens/wayray/compositor-boot.png` and `goldens/wayray/multi-window.png` ## ✅ Acceptance Criteria - [ ] wrsrvd builds and runs - [ ] Compositor creates Wayland socket - [ ] Client windows render inside compositor - [ ] Multi-window scenario works - [ ] Test passes reliably ## Related WIs - #183 — VM image - #184 — visual primitives - #185 — test runner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
toasterson/Anima#188
No description provided.