-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Hello wasi-testsuite hackers, I would like to update wasi-testsuite to support newer versions of WASI. The idea would be that the scope of wasi-testsuite should be to test the versions of WASI that are in use and in development, which I guess is currently wasip1, wasip2, and wasip3.
I am coordinating this work on #wasi > wasi-testsuite update for wasip3.
My plan first is to update the wasi-sdk used to generate the C test binaries, passing --target=wasm32-wasip1
. There are some tests whose assertions should be relaxed; for example, testing with current wasi-sdk, I get ENOENT
when opening a non-existent file instead of ENOTCAPABLE
, and so I will change the test to relax the assertion on the precise error code. Then I will arrange for the C tests to compile with --target=wasm32-wasip2
; the tests themselves shouldn't need to change. There will be some specific wasip2 tests, and specific tests for the in-progress wasip3 (which still uses the wasm32-wasip2
target triple).
This will mean that the set of directories to search for tests will change, e.g. instead of tests/c/testsuite
, we might have tests/c/testsuite/wasm32-wasip1
and so on. I'll update the github workflows appropriately.
Then once the machinery is done to keep C wasip1 tests working, I'll do the same for rust, then start writing wasip3 tests, which will probably mostly be written in Rust because its toolchain is the most advanced for this use-case. The test runner itself will need to learn some wasip3-specific things, like how to compose components and so on. It's going to be a ✨ journey ✨ but I think we can get there and still keep everyone satisfied.
Thoughts welcome!