Repository navigation
testing: triage classified Wasmtime supplementary coverage gaps #372
Description
Scope
Track the classified gaps exposed by the new supplementary Wasmtime WAST harness at frontend revision 4675ee16b703b33948073a5ff6b961367371e7a1. This is an investigation inventory, not a claim that every failure is an engine bug. The integration intentionally addresses harness access to the engine rather than fixing all runtime behavior.
Reproduce with just test-wasmtime (and POLYENGINE_SCHED_SEED=1 just test-wasmtime). Exact file/line/cause expectations live in harness/src/wasmtime-expectations.ts; the generated harness/generated-wasmtime/results.json records complete per-file outcomes. Sources resolve from Cargo.lock, and source revision/config inventory changes require review.
Named classes
- runtime-semantics: unexpected return/trap/state outcomes requiring adjudication against the pinned Component Model spec. Examples include async context slots in compositions, error-context memory bounds, blocking-only JSPI entry checks, and oversized stream counts. Link/instantiation rejection failures in this inventory may be harness/frontend gaps rather than runtime defects.
- diagnostic-mismatch: expected and actual trap messages differ. These remain failures until equivalent conditions are established; do not normalize different semantic failures merely to turn rows green.
- exception-handling: Wasm exception objects or propagation behavior do not produce the expected harness trap verdict.
- imported-module: the translator plan cannot instantiate imported core modules, preventing related linking scenarios from reaching execution.
- provider-control: Wasmtime-native test hooks (
wasmtime/gc,set-max-table-capacity) and unsupported host surfaces. These must not become no-op providers that pretend to test native controls. - cascade: missing-instance/poisoned-tail outcomes after an earlier failure; fix the owning setup or execution problem before diagnosing the cascade as a separate bug.
- deferred-threads: explicit skipped operations, tracked by memory64 + shared-everything threads: deferred feature tracking #12.
Memory-intensive files, component GC, and a test requiring the fixed translator's implements feature to be disabled are explicitly excluded rather than counted as passes. Raw host-resource imports expose reps, so Rust Resource::owned() host assertions are not reproduced; public guest tests separately cover ownership transfer and invalidation.
Completion criteria
- Investigate root failures by class, distinguish harness/translator/runtime/test-policy differences, and split concrete engine defects into focused issues as needed.
- Prune expectations as they begin passing; never absorb a changed failure cause automatically.
- Retain complete accounting for exclusions, skips, setup commands, assertion passes, and infrastructure failures.
- Native Wasmtime is corroborating evidence; the pinned spec/reference remains the semantic authority. Schedule-sensitive expectations require separate analysis.
Activity