Checks & gates
The project validates builds at two levels:
Post-build validation (export/ABI checks during the build pipeline).
Runtime checks (Node-based smoke tests and quality gates).
Post-build validation
check/post_build.sh validates export-related manifests produced during the build. It is run by forge_cli.py build
before optional runtime checks.
Runtime checks (--with-checks)
forge_cli.py build --with-checks runs these scripts:
check/tests/smoke.mjsLoads a minimal pendulum XML, compiles, steps, and frees resources.
check/tests/mesh-smoke.mjsSame idea, but covers mesh parsing/compilation.
check/tests/gates.mjsQuality gates: wasm/js size thresholds and module init time.
Enforced only when
QUALITY_ENFORCE=1(otherwise it logs warnings).
Additional scripts exist for ad-hoc debugging (not run by default), e.g.:
check/tests/xml-missing-ref.mjs(verifies error reporting for missing referenced assets).
Tuning
See reference_env_vars for the environment variables that control gates.mjs.