test:unit: keep Node WASI exit status instead of Symbol(kExitCode)#632
Open
test:unit: keep Node WASI exit status instead of Symbol(kExitCode)#632
Conversation
Set returnOnExit to false for the Node WASI instance used by run-test-unit.mjs. In this setup, proc_exit from Ruby can otherwise show up as Symbol(kExitCode) instead of a normal process exit code. Letting Node terminate with the WASI status keeps test failures observable via the runner's exit code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
run-test-unit.mjsuses Node's WASI implementation to initialize Ruby and then runs tests viavm.evalAsync().In that setup, proc_exit can end up showing up as Symbol(kExitCode) instead of a normal process exit code. That makes
test:unitfail with an unhandled rejection on Node 20/22/24, and the actual exit status is harder to use from the test runner.This changes the Node WASI setup in
run-test-unit.mjsto usereturnOnExit: false, so Node exits with the WASI status directly.Fix #628