Skip to content

test(pyodide): add real WASM execution and browser smoke coverage #341

Closed

Description

@bbopen

Verify PyodideBridge with actual Pyodide execution before extending browser behavior.

The reviewed conformance suite executes the embedded bootstrap under CPython. Other Pyodide unit tests mock loadPyodide. This is a coverage gap, not a reproduced runtime defect.

Acceptance criteria:

  • Add a dedicated CI job with a pinned Pyodide version and actual PyodideBridge.
  • Execute standard-library calls, byte envelopes, supported JSON scientific values, and structured Python errors.
  • Cover bootstrap failure and bridge disposal.
  • Fail explicitly when required packages or runtime assets are missing.
  • Keep the CPython conformance test as a fast shared-core check.
  • Add a real browser smoke for browser loading and a generated call. Node-hosted Pyodide alone does not establish browser behavior.
  • Documentation distinguishes mocked tests, CPython checks, Node-hosted WASM, and real browser coverage.

Land this evidence before claiming browser coroutine support in #338.

Architectural approach:

Supply actual Pyodide and browser evidence for #344 where those environments are claimed. Keep backend-specific coverage distinctions explicit. Coordinate through #345.

Activity

  1. added this to the Backlog milestone on Sep 11, 2026
  2. self-assigned this
    on Sep 11, 2026
  3. bbopen commented on Sep 20, 2026

    @bbopen
    OwnerAuthor

    Required CI now runs pinned actual Pyodide and a real Chromium generated call. Coverage includes stdlib, bytes, scientific JSON, structured errors, bootstrap failure, disposal, missing packages/assets, coroutine execution, and cancellation. Missing runtime assets fail the checks. The browser guide distinguishes mocked, CPython, WASM, and browser coverage and documents JSON-only scientific transport.

    Evidence: test/runtime_pyodide_real.conformance.ts, test/runtime_pyodide_browser.conformance.ts, .github/workflows/ci.yml, and docs/guide/runtimes/browser.md.

    Verified release evidence:

    The architecture decision records the accepted scope and prototype limits.

    Closing with the implemented and verified 0.11 release outcome.

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

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions