Add e2e test suite and rename chromium-browser to chromium#705
Open
Add e2e test suite and rename chromium-browser to chromium#705
Conversation
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.
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.
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.
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.