Skip to content

Verification and Testing

Jason edited this page Aug 11, 2026 · 1 revision

Verification and Testing

Nakagawa uses layered evidence. A passing command proves only the path it actually executes; green tests are not complete PSP correctness.

Evidence categories

  1. Production dispatch โ€” a test reaches the real registered NID/entry through the production dispatcher and checks PSP-visible returns, output, state, or wake behavior.
  2. Production helper or white-box โ€” real implementation code runs, but fixture setup or the entry is test-specific.
  3. Model or reference โ€” a separate model/reference implementation is exercised.
  4. Source-shape/static โ€” text or structure is checked without executing public behavior.

Keep these labels explicit in test names, reports, and pull requests. In-repository renderer agreement is useful localization evidence, not an external hardware oracle.

Public local gates

From the repository root:

.\hst_manager.ps1 -Action Test
.\hst_manager.ps1 -Action Verify
python -m unittest discover -s tools -p "test_*.py" -v
python tools/publish_audit.py --tracked-only --worktree
python -m pre_commit run --all-files
mingw32-make --no-print-directory compiler-info

The manager's aggregate Verify route includes the public Python, scheduler/HLE/reference, renderer/GPU, import, publication, and other source-owned selftests applicable to the checkout. Run the subsystem-specific native route as well when changing that subsystem; for example, use the relevant ATRAC, scheduler, HLE, VFPU, reference, or GPU selftest rather than relying on a syntax check.

The publication audit has two intentional sources: tracked/staged Git blobs for hook-style checking, and worktree bytes for an interactive check. Quote which source was audited.

External and private evidence

The full static-verification and oracle routes may require user-supplied external traces or a private module. If CODEGEN_ORACLE, MICROTEST_MODULE, or MICROTEST_ORACLE is absent, the gate is blocked by design. Do not turn a blocked external-oracle check into a pass.

Hardware routes additionally qualify the probe, transport, model, firmware, and capture integrity. PPSSPP or software-vs-Vulkan agreement can validate the test chain, but real PSP acceptance remains a separate claim.

Hosted CI

GitHub Actions is path-gated by the public workflow. Check the exact head's jobs and the CI required aggregate when reviewing a change; a historical successful run is evidence for its recorded revision only. Local verification is not GitHub CI.

See the repository's CI guide, static verification guide, and Evidence Standard.

Next: Debugging โ†’ Development Workflow.

Nakagawa Recomp

Architecture

Development

Project

Research site

Clone this wiki locally