feat(tools): commit the VM test harness + one-command installer regression
Promotes the throwaway harness that verified the installer into tools/:
- tools/vm/qmp.py QMP keystroke injection / typing / quit
- tools/vm/vncshot.py GL-safe screenshots via VNC readback (QMP
screendump shows "no surface" with virtio-vga-gl)
- tools/vm/gap-analysis.py drv-graph diff that converged the offline
pin set; run it when offline installs build
from source
- tools/test-install.sh the full offline regression: build ISO, boot
offline, unattended LUKS+swap install via a
config disk (typed long commands drop keys),
wait for poweroff, boot the installed disk,
screenshot the first boot for visual verdict
docs/TESTING.md §4 now points at the script.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -65,7 +65,10 @@ Flat on purpose. Two module trees, one options file each, no hidden layers.
|
||||
├── docs/TESTING.md # how to verify changes (incl. AI-agent rules)
|
||||
└── tools/ # maintainer-only
|
||||
├── import-palettes.py # converts old-distro themes → JSON + assets
|
||||
└── test-live-iso.sh # build the ISO + boot it in QEMU
|
||||
├── test-live-iso.sh # build the ISO + boot it in QEMU
|
||||
├── test-install.sh # full offline-install regression in QEMU
|
||||
└── vm/ # headless-VM helpers (QMP keys, VNC shots,
|
||||
# offline-pin gap analysis)
|
||||
```
|
||||
|
||||
**Rule of thumb:** `modules/` is the distro (reusable, no machine specifics),
|
||||
|
||||
Reference in New Issue
Block a user