From 70bb2d5ab1bf6787bc613e33f5398be2eca1f5fd Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 27 Jan 2026 17:22:55 -0600 Subject: feat(testing): rewrite test infrastructure from libvirt to direct QEMU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the never-fully-operational libvirt-based VM test infrastructure with direct QEMU management and archangel ISO for fully automated, unattended base VM creation. Key changes: - vm-utils.sh: complete rewrite — QEMU process mgmt via PID file, monitor socket for graceful shutdown, qemu-img snapshots, SSH port forwarding (localhost:2222) - create-base-vm.sh: boots archangel ISO, SSHs in, runs unattended install via config file, verifies, creates clean-install snapshot - run-test.sh: snapshot revert, git bundle transfer, detached archsetup execution with setsid, polling, validation, and report generation - debug-vm.sh: CoW overlay disk, GTK display, auto-cleanup on close - setup-testing-env.sh: reduced deps to qemu-full/sshpass/edk2-ovmf/socat - cleanup-tests.sh: PID-based process management, orphan detection - validation.sh: port-based SSH (backward compatible), fuzzel/foot for Hyprland, corrected package list paths - network-diagnostics.sh: getent/curl instead of nslookup/ping (SLIRP) New files: - archsetup-test.conf: archangel config for base VM (btrfs, no encrypt) - archsetup-vm.conf: archsetup config for unattended test execution - assets/archangel.conf.example: reference archangel config Deleted: - finalize-base-vm.sh: merged into create-base-vm.sh - archinstall-config.json: replaced by archangel .conf format Tested: full end-to-end run — 51 validations passed, 0 failures. Co-Authored-By: Claude Opus 4.5 --- scripts/testing/archsetup-vm.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 scripts/testing/archsetup-vm.conf (limited to 'scripts/testing/archsetup-vm.conf') diff --git a/scripts/testing/archsetup-vm.conf b/scripts/testing/archsetup-vm.conf new file mode 100644 index 0000000..4117278 --- /dev/null +++ b/scripts/testing/archsetup-vm.conf @@ -0,0 +1,11 @@ +# archsetup-vm.conf - Config for running archsetup in test VMs +# Used by run-test.sh for unattended archsetup execution +# +# Usage: ./archsetup --config-file /tmp/archsetup-test/archsetup-vm.conf + +USERNAME=cjennings +PASSWORD=archsetup +LOCALE=en_US.UTF-8 +DESKTOP_ENV=hyprland +NO_GPU_DRIVERS=yes +AUTOLOGIN=yes -- cgit v1.2.3