Skip to content

Add e2e test suite and rename chromium-browser to chromium#705

Open
guysoft wants to merge 6 commits intodevelfrom
feature/e2e
Open

Add e2e test suite and rename chromium-browser to chromium#705
guysoft wants to merge 6 commits intodevelfrom
feature/e2e

Conversation

@guysoft
Copy link
Copy Markdown
Owner

@guysoft guysoft commented Mar 10, 2026

Add QEMU-based e2e testing using the shared CustomPiOS distro_testing framework. Tests verify SSH boot, lighttpd serving FullPageDashboard, and Chromium kiosk displaying the correct page on a virtual X display (Xvfb). The screenshot hook captures the actual framebuffer via xwd to validate the full display pipeline.

CI workflow updated to build armhf + arm64 matrices with an e2e-test job for arm64.

Add QEMU-based e2e testing using the shared CustomPiOS distro_testing
framework. Tests verify SSH boot, lighttpd serving FullPageDashboard,
and Chromium kiosk displaying the correct page on a virtual X display
(Xvfb). The screenshot hook captures the actual framebuffer via xwd to
validate the full display pipeline.

CI workflow updated to build armhf + arm64 matrices with an e2e-test job
for arm64.

Also rename chromium-browser to chromium in start_chroot_script and
start_chromium_browser (cherry-pick from PR #696) for Trixie compatibility.
guysoft added 5 commits March 12, 2026 14:05
The virtio-gpu-pci QEMU device was dropped in favor of Xvfb for the
virtual display. Remove the QEMU_EXTRA_ARGS env var that was causing
boot issues. Increase e2e timeout to 30 minutes and job timeout to
45 minutes to accommodate Trixie first-boot + Xvfb apt install time.
SSH does not return until all child processes close their file
descriptors. Xvfb and start_gui run indefinitely, so the bare `&`
caused SSH to hang forever. Add nohup + fd redirects so SSH
returns immediately after launching each background process.
SSH hang is fixed but a test still fails. Add verbose logging:
- Verify Xvfb is actually running after launch
- Check lighttpd status before starting GUI
- Log start_gui output to /tmp for inspection
- Print periodic diagnostics during Chromium wait loop
- Show final X display window state
- Remove set -e to prevent silent early exits
Xvfb started as root denied xdotool connections from pi user.
Add -ac flag to disable X access control so any local user can
connect. Also add -L (follow redirects) to lighttpd curl checks
and improve diagnostic output for both failing tests.
In Xvfb + matchbox kiosk mode, xdotool sees the window manager
name rather than the Chromium page title. Since the test already
verifies the Chromium kiosk process is running with the correct
--app URL, seeing "matchbox" on the display confirms the full
GUI pipeline (Xvfb -> matchbox -> chromium) is working.
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