Due to the US holiday yesterday we didn't have the meeting but wanted to give an update on my side:
A large chunk of work in getting the semantics (mostly async tasks, subtasks, etc) along with upstream tests passing (error context, back pressure, yielding, some others) has landed in jco (the name of the PR is misleading but was relevant to close a user issue that was filed -- individual commits tell the story better).
Now I'm on to updating to the latest upstream libs w/ the changes from the last couple months, and that is going fine, what I'm working on now is re-generating all the wasm binaries we store in Jco currently (for simplicity's sake) and dealing with the somewhat new behavior (there's a bit more waitable set polling, the same components seem to export a few more on-by-deafult stream/future related exports IIRC mostly related to stdin/stdout, etc).
Once the upstream deps update PR merges I'll be going back to finishing out porting the upstream P3 "base" tests (streams, futures, async sematics, etc) which is already underway. Once the base tests are in, we can start (and split up) work for the P3 shim tests (i.e. clocks, http, etc).
@Yosh Wuyts @Alex Crichton @Joel Dice @Roman Volosatovs
Thanks to Alex and Luke for the help in the bits that have landed as IIRC I needed help on the impl/spec translation there.
FWIW, things have been progressing (though a bit slowly) on wasi-testsuite for wasip3.
Finally we landed initial support for testing sockets via a test suite description that can script the interaction between the test runner and the component under test, allowing us to connect to sockets, expect that reading from a socket produces the right data, respond, etc. this extends the json specification that we used to have. there is code in wasi-testsuite to automatically translate an instance of the older way of writing those json files to the newer script format, and we have left existing tests as they are.
Documentation here: https://github.com/WebAssembly/wasi-testsuite/blob/main/doc/specification.md
Minimal example here: https://github.com/WebAssembly/wasi-testsuite/blob/main/tests/rust/wasm32-wasip3/src/bin/sockets-echo.json
There are some pending PRs for more functionality. All credit to @Saúl Cabrera for the good things and blame to me for bugs :)
For wasip3 implementations:
I would like to merge support for jco whenever that is ready; last I looked, things were not quite there yet: https://github.com/WebAssembly/wasi-testsuite/pull/165#issuecomment-3669640418
Need to sync with wasmtime folks to see about adapting their test harness to eagerly reject new-style test specifications (json files), and see if they are willing to implement the newer protocol
Hoping to finish sockets, http, and command tests for the week after FOSDEM, i.e. in two weeks or so.
@Andy Wingo
Most wasi-sockets tests in wasmtime are self contained, i.e. they act as both the server _and_ the client wherever needed. AFAIK, there's no choreography between the test runner and the component to be configured.
But I'm not familiar with this project, so maybe I'm misunderstanding
right, the question is how to adapt wasmtime's runner for wasi-testsuite tests (https://github.com/bytecodealliance/wasmtime/blob/main/tests/wasi.rs) to support the kind of test that needs to be driven externally
i.e. not wasmtime's own tests, but the ones that come from wasi-testsuite
Just to add a bit more context: most of the sockets tests are indeed self-contained as of the latest progress in the wasi-testsuite, where the new configuration becomes relevant IMHO is for testing the http handlers.
Last updated: Jan 29 2026 at 13:25 UTC