Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quality

Strategy

The architecture is arranged so most behaviour is testable without a window, GPU or audio device:

  • Engine is headless. Integration tests in crates/kerosene-engine/tests/ (playthrough, gameplay, acoustics, streaming, save, ui, platform, extensions) drive whole maps through ticks and assert on world state.
  • Plain-data layers. kerosene-entity, kerosene-console, kerosene-kv and kerosene-bsp have unit tests with no engine.
  • GPU-free draw tests. scene and the UI produce draw data that tests inspect directly; a software rasteriser covers editor views.
  • Offline platform. kerosene-platform has a stand-in backend, so store code is tested without Steam. The real Steam backend is tested separately.
  • Layering as a test. cargo xtask layers fails on a forbidden dependency.

Baseline at the phase-0 audit: 84 suites, 2,273 tests, 0 failures. Counts move; run the suite for current numbers. Detail: Testing.

Commands

CheckCommand
Buildcargo build --workspace
Testcargo test --workspace --locked
Formatcargo fmt --all --check
Lintcargo clippy --workspace --all-targets --locked -- -D warnings
Layeringcargo xtask layers
Public docsRUSTDOCFLAGS=-D warnings cargo doc -p kerosene --no-deps --features tools --locked
Steam backendcargo test -p kerosene-platform --features steam
Publishable cratecargo xtask bundle
Book linkspython3 scripts/check-links.py
Book buildmdbook build

Continuous integration

.github/workflows/ci.yml runs on pushes to MASTER and on pull requests:

JobChecks
check (Linux)fmt, clippy, layers, tests, Steam tests, docs
platformsbuilds on Windows and macOS
bundlebuilds, packages and plays the published crate
booklink check and mdBook build
denycargo-deny using deny.toml (licences, advisories)

mdbook.yml deploys the book to GitHub Pages; release.yml handles releases.

Known gaps

  • No test drives the real launch boot path end to end.
  • Rendering correctness is checked by capture/smoke tests rather than image comparison against references.
  • No networking tests, because there is no networking.

See also Open issues.

See also