Local Verification

Use this workflow before lab sessions, branch handoff, or config-contract work. It is intentionally narrower than full CI and focused on the checks most likely to catch local drift quickly.

Fast Path

From the repo root:

bash tools/verify-local.sh

This runs:

  • the full System Composer pytest suite
  • focused C++ tests for runtime config parsing and ownership validation when a local CMake build directory is present

What the Script Checks

Composer contract coverage

python3 -m pytest tools/system-composer/tests -q

This covers renderer output, template parity, and validator behavior.

Focused runtime coverage

If a build directory exists, the script also runs:

ctest --test-dir build/dev-release --output-on-failure -R "ConfigTest|RuntimeOwnershipValidationTest"

or, on Windows builds:

ctest --test-dir build/dev-windows-release --output-on-failure -R "ConfigTest|RuntimeOwnershipValidationTest"

These tests cover runtime YAML parsing, restart-policy validation, automation config handling, and I2C ownership invariants.

When to Run Full CI-Style Coverage Instead

Use the broader build and test flows when:

  • changing core runtime execution behavior beyond config/restart hardening
  • touching integration or scenario suites
  • modifying platform build logic or dependencies

See ../CONTRIBUTING.md for the full build and test flow.