Tests everything possible without the target hardware: create-vm.sh (runs on Proxmox host): - Creates Arch Linux VM (VMID 900, 8 cores, 16GB RAM, 100GB disk) - UEFI boot with OVMF (for nested QEMU testing) - Cloud-init auto-installs packages, clones repo, runs tests - Nested virtualization enabled for QEMU-in-QEMU boot tests run-in-vm.sh (runs inside the VM, 9 test suites): 1. Host environment validation 2. dpack build + unit tests + CLI smoke tests 3. Package definition validation (154 packages, dep resolution) 4. Script syntax checking (toolchain, init, installer, ISO) 5. Kernel config validation (critical options) 6. Package signing test (download zlib, compute SHA256) 7. Toolchain bootstrap (LFS Ch.5 cross-compiler build) 8. ISO generation 9. Nested QEMU boot test (UEFI boot, kernel + userspace check) Modes: --quick (30min, suites 1-5), --no-build (1hr), full (2-6hr) Generates report.json + report.txt for automated debugging. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
DarkForge — Proxmox Test Environment
Automated testing of DarkForge Linux on a Proxmox VE server. Creates an Arch Linux VM, clones the project, and runs the full test suite including toolchain compilation and QEMU boot tests.
What gets tested
Without the target hardware (9950X3D / RTX 5090), we can still test:
- dpack compilation and unit tests
- All 154 package definitions parse correctly
- Toolchain scripts have valid bash syntax
- Kernel config has all required options
- Init system scripts have valid syntax
- Source downloads and SHA256 signing (network test)
- Toolchain bootstrap (cross-compiler build — full LFS Ch.5-7)
- Kernel compilation (generic x86_64, not znver5-optimized)
- ISO generation
- UEFI boot in nested QEMU (kernel boots, reaches userspace)
- Installer runs in QEMU without errors
What can NOT be tested without target hardware
- znver5 CPU optimization (requires Zen 5 CPU)
- NVIDIA RTX 5090 driver (requires the GPU)
- Realtek RTL8125BN network driver (requires the NIC)
- Full gaming stack (Steam, Wine — requires GPU)
- dwl compositor (requires Wayland + GPU)
- Real UEFI firmware boot (QEMU OVMF is close but not identical)
Requirements
- Proxmox VE 8.x or 9.x
- At least 8 CPU cores and 16GB RAM available for the test VM
- ~100GB storage on a Proxmox storage pool
- Internet access from the VM
- SSH access to the Proxmox host
Usage
1. Create the test VM (run on Proxmox host)
# Copy scripts to Proxmox host
scp tests/proxmox/create-vm.sh root@proxmox:/root/
scp tests/proxmox/run-in-vm.sh root@proxmox:/root/
# Create the VM
ssh root@proxmox bash /root/create-vm.sh
2. Run the tests (automated via cloud-init or manual SSH)
# Option A: wait for cloud-init to finish (fully automated)
# The VM runs tests automatically on first boot.
# Option B: SSH in and run manually
ssh darkforge@<vm-ip> bash /home/darkforge/run-in-vm.sh
3. Collect the report
scp darkforge@<vm-ip>:/home/darkforge/darkforge/tests/report.json ./
scp darkforge@<vm-ip>:/home/darkforge/darkforge/tests/report.txt ./
Files
create-vm.sh— runs on the Proxmox host, creates and configures the VMrun-in-vm.sh— runs inside the VM, clones the project and runs all testscloud-init-user.yaml— cloud-init user-data for automated first-boot testing