Files
darkforge/docs/TESTING.md
Danny 029642ae5b Initial commit: DarkForge Linux — Phases 0-12
Complete from-scratch Linux distribution targeting AMD Ryzen 9 9950X3D +
NVIDIA RTX 5090 on ASUS ROG CROSSHAIR X870E HERO.

Deliverables:
- dpack: custom package manager in Rust (3,800 lines)
  - TOML package parser, dependency resolver, build sandbox
  - CRUX Pkgfile and Gentoo ebuild converters
  - Shared library conflict detection
- 124 package definitions across 4 repos (core/extra/desktop/gaming)
- 34 toolchain bootstrap scripts (LFS 13.0 adapted for Zen 5)
- Linux 6.19.8 kernel config (hardware-specific, fully commented)
- SysVinit init system with rc.d service scripts
- Live ISO builder (UEFI-only, squashfs+xorriso)
- Interactive installer (GPT partitioning, EFISTUB boot)
- Integration test checklist (docs/TESTING.md)

No systemd. No bootloader. No display manager.
Kernel boots via EFISTUB → auto-login → dwl Wayland compositor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 11:30:40 +01:00

127 lines
4.6 KiB
Markdown

# 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`