# DarkForge Linux — Phase 12 Integration Test Checklist This checklist covers end-to-end testing of every phase's deliverables. ## Pre-Test Requirements - [ ] QEMU with OVMF (UEFI firmware) installed on the host - [ ] At least 100GB free disk space for QEMU images - [ ] DarkForge ISO built and bootable ## Phase 0 — Toolchain Bootstrap - [ ] All source tarballs download successfully - [ ] Binutils pass 1 compiles without errors - [ ] GCC pass 1 compiles without errors - [ ] Linux headers install to `$LFS/usr/include` - [ ] Glibc compiles and passes all 6 sanity checks - [ ] Libstdc++ compiles - [ ] All Chapter 6 temporary tools build - [ ] GCC pass 2 produces a working `cc` compiler - [ ] "Hello World" test compiles and runs inside chroot - [ ] Exit: `echo 'int main(){}' | cc -x c - && ./a.out` succeeds ## Phase 1 — dpack Core - [ ] `cargo build --release` compiles with 0 errors and 0 warnings - [ ] `cargo test` — all unit tests pass - [ ] `dpack --version` prints version info - [ ] `dpack install zlib` — resolves deps, downloads, builds, installs, registers in db - [ ] `dpack list` — shows zlib as installed - [ ] `dpack info zlib` — shows correct metadata - [ ] `dpack remove zlib` — removes files, unregisters - [ ] `dpack search compression` — finds zlib ## Phase 2 — dpack Advanced - [ ] `dpack convert Pkgfile` — converts a real CRUX Pkgfile to valid TOML - [ ] `dpack convert *.ebuild` — converts a real Gentoo ebuild to valid TOML - [ ] Converted TOML parses without errors when loaded by dpack - [ ] `dpack check` — reports file conflicts and scans solibs - [ ] `dpack upgrade` — compares versions and offers upgrade plan ## Phase 3 — Base System Packages - [ ] All 67 core/ packages have valid TOML definitions - [ ] All dependencies resolve within core/ (no missing deps) - [ ] At least 5 representative packages build successfully: zlib, ncurses, bash, openssl, python - [ ] Exit: minimal system boots to shell in QEMU ## Phase 4 — Kernel - [ ] `make olddefconfig` succeeds on the config file - [ ] Kernel compiles with `make -j32` - [ ] Kernel boots via EFISTUB in QEMU (using OVMF) - [ ] `dmesg` shows: AMD Zen CPU detected, NVMe detected, R8169 NIC detected - [ ] `nvidia-smi` works after installing nvidia-open modules ## Phase 5 — Init System - [ ] System boots through rc.sysinit without errors - [ ] All daemons in rc.conf start successfully (eudev, syslog, dbus, dhcpcd, pipewire) - [ ] Hostname is set correctly - [ ] Timezone is applied - [ ] Network comes up via dhcpcd - [ ] Auto-login on tty1 works (no password prompt) - [ ] `rc.shutdown` stops daemons and unmounts cleanly ## Phase 6 — Desktop - [ ] dwl compositor launches on tty1 login - [ ] foot terminal opens inside dwl - [ ] fuzzel launcher works (Mod+d or configured key) - [ ] Firefox launches and renders a web page - [ ] XWayland works (test with `xterm` or `glxgears`) - [ ] wl-clipboard copy/paste works - [ ] grim screenshot works - [ ] PipeWire audio plays sound (test with `pw-play`) ## Phase 7 — NVIDIA - [ ] nvidia-open kernel modules load (lsmod shows nvidia, nvidia-drm) - [ ] `nvidia-smi` shows RTX 5090 with driver version - [ ] Vulkan works: `vulkaninfo` shows NVIDIA GPU - [ ] `vkcube` renders spinning cube - [ ] OpenGL works: `glxgears` renders via XWayland - [ ] GBM backend works for Wayland (dwl uses nvidia-drm) ## Phase 8 — Gaming - [ ] Steam launches and logs in - [ ] Steam can download and run a Proton game - [ ] Wine runs a Windows executable - [ ] mangohud overlay shows FPS in a Vulkan game - [ ] gamemode activates when a game launches - [ ] PrismLauncher launches and can start Minecraft ## Phase 9 — Applications - [ ] WezTerm launches and is usable - [ ] FreeCAD launches (if built) - [ ] AMD microcode loaded at boot (`dmesg | grep microcode`) ## Phase 10 — ISO - [ ] `build-iso.sh` completes without errors - [ ] ISO boots in QEMU with OVMF - [ ] Live environment drops to shell - [ ] Installer is accessible via `install` command ## Phase 11 — Installer - [ ] Disk selection lists available drives - [ ] Auto-partition creates ESP + swap + root - [ ] Filesystems format correctly - [ ] Base system installs to target - [ ] User account is created with correct groups - [ ] Locale and timezone are applied - [ ] EFISTUB boot entry is created - [ ] System reboots into installed DarkForge ## End-to-End Flow - [ ] Fresh ISO → install → reboot → auto-login → dwl → Firefox → Steam game - [ ] `dpack install` and `dpack remove` work on the installed system - [ ] System hibernates and resumes (96GB swap) - [ ] Clean shutdown via `shutdown -h now`