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>
This commit is contained in:
126
docs/TESTING.md
Normal file
126
docs/TESTING.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user