MIL-013: Debian container and Windows Sandbox checks
A Debian image (python:3.13-slim-bookworm with Xvfb and GNOME's window manager) runs the linters, the whole test suite, the screenshots and the smoke test of a PyInstaller Linux binary and of the source program, so no window opens on the development machine. The screenshot tool works on Linux, a smoke driver presses the known button with the virtual mouse, and Windows Sandbox scripts are written (not run, they open a window on the host). README and the wiki Install pages describe it. Review records RC-077 (Python) and RC-078 (shell). Task: MIL-013#2 Task: MIL-013#3 Task: MIL-013#4 Task: MIL-013#5 Task: MIL-013#6 Task: MIL-013#7 Task: MIL-013#9 Task: MIL-013#10
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build the Linux binary with PyInstaller and smoke-test it, and the source
|
||||
# program, on the virtual desktop. The smoke test starts the program, finds the
|
||||
# window, presses the known button with the virtual mouse of the desktop and
|
||||
# checks the progress file.
|
||||
#
|
||||
# Purpose: the "does the packaged program work" check without a desktop of the
|
||||
# host (ADR-0005, RC-072).
|
||||
# Usage: smoke-binary.sh [repeat-count] (default 5)
|
||||
# Env: see start-desktop.sh
|
||||
# Needs: pyinstaller (the build extra), binutils, xdotool, the desktop
|
||||
# Exit: 0 only when every run of both programs passes; 2 on a bad count
|
||||
set -euo pipefail
|
||||
|
||||
repeat="${1:-5}"
|
||||
if ! [[ "${repeat}" =~ ^[1-9][0-9]*$ ]]; then
|
||||
echo "error: repeat-count must be a positive integer, got '${repeat}'" >&2
|
||||
echo "usage: smoke-binary.sh [repeat-count]" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")/../.."
|
||||
# shellcheck source=tools/docker/start-desktop.sh
|
||||
. tools/docker/start-desktop.sh
|
||||
|
||||
python tools/build_executable.py --clean
|
||||
test -x dist/flash-card
|
||||
echo "== binary"
|
||||
python tools/docker/smoke_driver.py --repeat "${repeat}" --command dist/flash-card
|
||||
echo "== source"
|
||||
python tools/docker/smoke_driver.py --repeat "${repeat}" --command python -m flash_card
|
||||
Reference in New Issue
Block a user