Skip to content

testing: triage classified Wasmtime supplementary coverage gaps #372

Description

@lannbot

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions