-
Notifications
You must be signed in to change notification settings - Fork 271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pass wasi-testsuite #1036
Comments
Made a shared fork including @achille-roussel's start and a small glitch fix. The wrapper syntax will change again once I get how mounts are expected to work working. However, the more important thing is the failing tests: $ python3 test-runner/wasi_test_runner.py -t ./tests/assemblyscript/testsuite/ ./tests/c/testsuite/ -r adapters/wazero.sh
Note: we were earlier told that the "rights" system was deprecated and not to be implemented as it was removed from wasi. This may or may not be related to the failures. I'll look into each of the above and tick off or explain. |
see WebAssembly/wasi-testsuite#43 on proc_exit-failure |
proc_exit-failure wasn't a real failure. it was about drift so I reworded the upstream issue |
To move forward we need to implement at least |
next step is to implement io.WriterAt for pwrite. This is supported in windows and unix, so we should be ok. The lack of support in embed:fs is moot as embed:fs is read-only anyway. once this is weaved in, we should be able to pass the |
I will next Writer/ReaderAt stuff from WASI so that it is defined at the syscallfs layer (re-used for gojs this way, but also saner place to test it). after that, backfill integration tests for embed:fs, and finally implement pwrite in WASI and equiv in gojs |
update: #1037 extracts ReaderAt stuff from WASI next step: implement WriterAt as described in the last comment. |
#1038 passes the pwrite-with-access test |
#1041 passes all but one |
there are some issues with passing on Windows.
notice the trailing (see https://github.com/tetratelabs/wazero/actions/runs/4008102301/jobs/6881833821) in order to solve the first issue, I have set up with https://github.com/tetratelabs/wasi-testsuite/pull/1 an env variable you can export to override the default path to e.g., on Windows: TEST_SHELL_RUNNER='C:\Program Files\Git\bin\bash.exe' |
I found a better workaround WebAssembly/wasi-testsuite#48 |
there are some missing tests, which can be generated like |
The way some rust tests are written, they are using underlying WASI calls instead of higher level integration like wasi-libc, so it is hard to tell which of these are impactful vs just trying for coverage of specified functions. In any case, the following remain:
There are also some other things that need closer looks |
dangling_symlink fails for us due to path_open behavior. It seems wasmtime implicitly propagates O_NOFOLLOW which isn't defined in wasi. It is ok for us to change path_open the same way, but I think it should be a separate PR as it is behavior affecting. https://github.com/WebAssembly/wasi-testsuite/blob/main/tests/rust/src/bin/dangling_symlink.rs#L10 In that PR we should also coerce syscall.LOOP -> wasi ELOOP |
TL;DR; unless a current end user or maintainer of wazero screams, I'm going to put an ignore for so we had somewhat of a long discussion on slack with @jerbob92 and @achille-roussel about the new tests of "." and ".." being somewhat of suspicious merit, as compilers including even rust filter them out. The current status is that the owner of WASI decided this can't change, but maybe can in snapshot-02. As the issue is complex especially wrt how to handle ".." etc on mounts, and the tests in wasi-testsuite barely cover the nuance, I think the best course of action is to ignore these this test until the specification improves. In other words, I think it is an invalid test and feel it isn't in the best direction for end users that we try to figure out how to reverse engineer a rationale spec, impl, and unit test out of it. |
The current fd_readdir test is invalid as it requires dot and dot-dot entries, which both aren't required by POSIX nor returned by go. Once this is addressed upstream, we can remove the skip. See WebAssembly/wasi-testsuite#52 See #1036 Signed-off-by: Adrian Cole <adrian@tetrate.io>
#1098 on fd_readdir |
The current fd_readdir test is invalid as it requires dot and dot-dot entries, which both aren't required by POSIX nor returned by go. Once this is addressed upstream, we can remove the skip. See WebAssembly/wasi-testsuite#52 See #1036 Signed-off-by: Adrian Cole <adrian@tetrate.io>
https://github.com/fermyon/wagi-ruby I think the next to do should be
|
current status on Windows. Only a few tests are failing. Last time I checked,
Here is a test run on Windows using the Python suite with wazero.py as well (just rebased and restarted to see the latest status) evacchi#5 |
so with #1132, all test passes, so I will raise a PR against the upstream so that it will include our runner.py by default |
We should pass wasi-testsuite prior to 1.0. This includes the following:
The text was updated successfully, but these errors were encountered: