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

4.6 KiB

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