# 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) ```bash # 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) ```bash # 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@ bash /home/darkforge/run-in-vm.sh ``` ### 3. Collect the report ```bash scp darkforge@:/home/darkforge/darkforge/tests/report.json ./ scp darkforge@:/home/darkforge/darkforge/tests/report.txt ./ ``` ## Files - `create-vm.sh` — runs on the Proxmox host, creates and configures the VM - `run-in-vm.sh` — runs inside the VM, clones the project and runs all tests - `cloud-init-user.yaml` — cloud-init user-data for automated first-boot testing