con un clic
smoke-harness-scope
// How to extend smoke coverage without collapsing dynamic sweeps into the curated generated harness
// How to extend smoke coverage without collapsing dynamic sweeps into the curated generated harness
| name | smoke-harness-scope |
| description | How to extend smoke coverage without collapsing dynamic sweeps into the curated generated harness |
| domain | testing-architecture |
| confidence | high |
| source | lando review |
openapi2zig uses two smoke layers on purpose:
test/smoke-tests.ps1 for broad, dynamically discovered fixture coveragebuild.zig + generated/* for a small, stable curated harness used by normal build/test flowsWhen expanding coverage (for example, JSON → YAML), keep both layers, but do not merge their responsibilities.
test/smoke-tests.ps1build.zig limited to a curated set of stable fixtures with checked-in generated outputsgenerated/compile_generated.zig and generated/main.zig only for those curated artifactsIf the same fixture basename exists as both JSON and YAML in the same version folder, artifact names must include the source format:
petstore__json__paths.zigpetstore__yaml__paths.zigWithout that segment, one format overwrites the other.
If build.zig or generated/* starts importing a new generated file, that same commit must also add the checked-in generated artifact. Otherwise zig build test breaks immediately on missing imports.
generated/main.zig as a sanity harness, not the final smoke authorityzig build run-generate + zig run generated/main.zig is useful to prove curated generated modules still build, initialize, and can exercise a tiny happy path.test/smoke-tests.ps1.Some valid YAML smoke candidates may be YAML-only roots. Prefer explicit inclusion plus collision-safe naming. If a file is truly non-runnable, skip or denylist it with a reason instead of silently dropping all YAML-only files.
Mode = "*" when every wrapper mode fails from the same pre-generation cause, and make the Reason describe the parser/normalization gap rather than only saying "generation failed".build.zigopenapi/