Tests in Marchyo are fast evaluation-based checks that verify NixOS configurations evaluate without errors. They don’t build any derivations, so they complete in under a minute.Documentation Index
Fetch the complete documentation index at: https://docs.jylhis.com/llms.txt
Use this file to discover all available pages before exploring further.
Running tests
nix flake check runs them all.
Test structure
Module tests
Verify that NixOS configurations evaluate without errors for various feature combinations:| Test | Description |
|---|---|
eval-minimal | Minimal NixOS modules import |
eval-desktop | Desktop feature flag |
eval-development | Development feature flag |
eval-all-features | All features enabled together |
eval-themes | Theme configurations |
eval-keyboard | Keyboard layouts and IME |
eval-graphics-* | GPU configurations (Intel, AMD, NVIDIA, PRIME) |
Library tests
Unit tests for lib functions using theassertTest helper.
Writing tests
Module evaluation test
Add totests/module-tests.nix:
testNixOS helper evaluates the NixOS config without building derivations. The withTestUser helper merges your config with a minimal bootable config (grub disabled, root filesystem, stateVersion).
Library test
Add totests/lib-tests.nix:
CI pipeline
The GitHub Actions workflow (.github/workflows/validate.yml) runs three stages:
- Lint —
nix fmt -- --ciplus aflake.lock/devenv.lockrev-parity check on a single Linux runner. - Check —
nix flake check --accept-flake-configmatrix acrossx86_64-linux,aarch64-linux, andaarch64-darwin. - Build —
nix build .#nixosConfigurations.x86_64.config.system.build.toplevel(runs after lint and check pass).
jylhis cache).
A separate .github/workflows/pages.yml workflow deploys the docs to GitHub Pages, scoped via path filters to docs/** and flake sources so unrelated commits don’t trigger redeploys.