saulecabrera opened PR #6610 from saulecabrera:winch-wast
to bytecodealliance:main
:
With the introduction of control flow, Winch is getting to a point in which it would be beneficial to have some sort of run tests rather only filetests. Run tests make it easier to verify that the introduction of new features or bug fixes won't cause any regressions or bugs. They also make it easier to verify the behavior of the code generated by Winch.
The idea behind this change is to test Winch against a subset of the official spec test suite. Any unsupported tests will be commented out from the spec tests and as more features are added the corresponding tests will be uncommented. This involves a bit of duplication with regards to the spec tests, but the ideal end state is to have Winch be just another strategy in
build.rs
and have both compilers use./tests/spec_testsuite
instead of using a custom directory for Winch once Winch offers feature parity.Note that I'm currently collecting feedback on this idea, and for that reason, I've only included the block spec as an example.
We discussed this idea during today's Winch meeting: https://github.com/bytecodealliance/meetings/blob/main/winch/2023/winch-06-20.md
@cfallin and @alexcrichton I'm interested in your thoughts regarding this change.
<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
alexcrichton submitted PR review:
Glad to see Winch shaping up!
In the long run I don't think the test organization matters too too much as long as it's being tested, but in the interim one thing I might recommend is to "attempt" to run all tests with Winch but have
#[ignore]
on almost all of them. Similar to how riscv64 runs all the tests but skips anything simd related. That'd avoid having two copies of the tests and would attempt, by default, to run everything in Winch and Winch would have an allow-list that slowly grows or a deny-list that slowly gets smaller.
saulecabrera edited PR #6610:
With the introduction of control flow, Winch is getting to a point in which it would be beneficial to have some sort of run tests rather than only filetests. Run tests make it easier to verify that the introduction of new features or bug fixes won't cause any regressions or bugs. They also make it easier to verify the behavior of the code generated by Winch.
The idea behind this change is to test Winch against a subset of the official spec test suite. Any unsupported tests will be commented out from the spec tests and as more features are added the corresponding tests will be uncommented. This involves a bit of duplication with regards to the spec tests, but the ideal end state is to have Winch be just another strategy in
build.rs
and have both compilers use./tests/spec_testsuite
instead of using a custom directory for Winch once Winch offers feature parity.Note that I'm currently collecting feedback on this idea, and for that reason, I've only included the block spec as an example.
We discussed this idea during today's Winch meeting: https://github.com/bytecodealliance/meetings/blob/main/winch/2023/winch-06-20.md
@cfallin and @alexcrichton I'm interested in your thoughts regarding this change.
<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera has marked PR #6610 as ready for review.
saulecabrera requested alexcrichton for a review on PR #6610.
saulecabrera requested wasmtime-core-reviewers for a review on PR #6610.
saulecabrera requested wasmtime-default-reviewers for a review on PR #6610.
alexcrichton submitted PR review.
saulecabrera has enabled auto merge for PR #6610.
saulecabrera updated PR #6610.
saulecabrera updated PR #6610.
saulecabrera merged PR #6610.
Last updated: Dec 23 2024 at 12:05 UTC