Add official Node.js core module test harness#693
Open
brandonpayton wants to merge 58 commits into
Open
Conversation
Phase B-1 matrix build status —
|
| Package | Arch | Status | Sha |
|---|---|---|---|
| spidermonkey | wasm32 | built | 4d53a25c |
| node | wasm32 | built | a7921aea |
| spidermonkey-node | wasm32 | built | 37faf41e |
| node-vfs | wasm32 | built | 3b6ef3e6 |
Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.
… into HEAD # Conflicts: # packages/registry/spidermonkey/node-compat/adapter.js
…wz' into HEAD # Conflicts: # packages/registry/spidermonkey/node-compat/adapter.js
…d8exaf' into HEAD # Conflicts: # packages/registry/node-compat/bootstrap.js # packages/registry/spidermonkey-node/build.toml
…f0b' into HEAD # Conflicts: # docs/node-core-official-tests.md
…d8o3uj' into HEAD # Conflicts: # packages/registry/spidermonkey/test/spidermonkey-node-compat.test.ts
…0' into HEAD # Conflicts: # packages/registry/node-compat/bootstrap.js # packages/registry/node/build.toml # packages/registry/spidermonkey-node/build.toml # packages/registry/spidermonkey/build.toml # packages/registry/spidermonkey/test/spidermonkey-node-compat.test.ts # scripts/node-core-official-runner.ts
…d-nct.42' into HEAD # Conflicts: # packages/registry/node-compat/bootstrap.js # packages/registry/node/build.toml # packages/registry/spidermonkey-node/build.toml # packages/registry/spidermonkey/build.toml # packages/registry/spidermonkey/test/spidermonkey-node-compat.test.ts
….56@mqdlmhr5' into HEAD # Conflicts: # packages/registry/spidermonkey-node/build.toml # packages/registry/spidermonkey/build.toml
…nct.51@mqdduhc7' into HEAD # Conflicts: # scripts/node-core-official-runner.ts
…ad-nct.47@mqda4jct' into HEAD # Conflicts: # packages/registry/node-compat/bootstrap.js # packages/registry/spidermonkey-node/build.toml # packages/registry/spidermonkey/build.toml
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
This PR adds the first official Node.js core JavaScript module test harness for
Kandelo's SpiderMonkey-backed Node-compatible runtime. The harness is pinned to
upstream
nodejs/nodev22.0.0at peeled commit12fb157f79da8c094a54bc99370994941c28c235, sparse-checks out only the selectedofficial test material, and runs each selected
test/parallel/test-*.jsfilethrough Kandelo's normal runtime path on either host.
The branch includes:
scripts/run-node-core-official-tests.shandscripts/node-core-official-runner.ts.tests/node-core-official/.generated prelude, and runtime wasm through a same-origin Vite route.
test-runs/node-core-official-*.vm.runInNewContext, Symbol-aware assertion parity, and invalid pathargument validation.
Validation Status
Pinned source:
https://github.com/nodejs/node.gitv22.0.0ec49bec48284ab642db1d109d917c6ae3b695c1312fb157f79da8c094a54bc99370994941c28c235Final authoritative artifacts:
test-runs/node-core-official-node-final/test-runs/node-core-official-browser-final/Final commands:
Both final runs used the same selected 10-test manifest, upstream Node
v22.0.0peeled commit12fb157f79da8c094a54bc99370994941c28c235, and thecurrent integration runtime staged at
local-binaries/programs/wasm32/spidermonkey-node.wasmfrom packagespidermonkey-noderevision 8. Both hosts completed all executable selectedtests and recorded the explicit manifest skip. No test timed out. No browser
result was missing.
test-runs/node-core-official-browser-final/browser-console.logcontains only Vite startup/client messages.
Final counts:
Superseded artifacts are retained for history but are not the final status:
test-runs/node-core-official-node-kad-nct6-integration-rev7/andtest-runs/node-core-official-browser-kad-nct6-integration-rev7/were recordedagainst the pre-
kad-nct.9rev7 runtime and reportedFAIL=10on both hosts.They are excluded from the final counts above.
The final shared failures are:
test-path.js,test-events-list.js,test-console-count.js,test-url-parse-query.js,test-timers-clear-null-does-not-throw-error.jstest/commonglobal-leak check:__kandeloRunDueTimers,__kandeloNextTimerDelay,__kandeloCreateWorkerThreads,argv0,execArgv,TextEncoder,TextDecoder,btoa,atob,Blob,File,FormData,MessagePort,MessageChannel,BroadcastChannel,Event,EventTarget,MessageEvent,CloseEvent,ErrorEvent,DOMException,AbortSignal.kad-nct.11test-buffer-alloc.jsbuffer.kMaxLengthstill does not match the actual typed-array allocation limit; the test expected allocation pastkMaxLengthto throw.kad-nct.12test-querystring.jsquerystring.stringify()still throwsTypeError: can't convert undefined to objectfor an official-test input.kad-nct.13test-string-decoder.jsc9 b5 a9 41.kad-nct.14test-whatwg-url-custom-searchparams.jsURLSearchParamspercent-encodes unpaired surrogate values differently from Node, preserving%ED...instead of replacement-character%EF%BF%BD.kad-nct.15test-util-inspect.js--expose-internalspath andinternal/test/bindingnative hooks.Unsupported And Excluded Scope
The initial manifest is intentionally small and public-API focused. The full
scope policy is in
docs/plans/2026-06-12-node-core-js-test-scope.md.Current exclusions are not hidden failures:
.nodeloads, andprocess.dlopen()are outside this harness boundary.and V8-specific stack/format details are outside this SpiderMonkey-backed
runtime contract.
host-specific signal/job-control expectations are excluded unless a later
bead expands the supported behavior.
VFS, CLI restart/flag tests, and Python
tools/test.pyorchestration areharness-host escape hatches and are not run here.
explicit
SKIPentries with reasons, not as unexplained failures.Follow-Up Work
kad-nct.8: open or update the GitHub PR using the command in the comment atthe top of this file after the
kad-nct.9MR has landed and the finaltwo-host official runs have been recorded.
in
docs/plans/2026-06-12-node-core-js-test-scope.md. Each expansion shouldclassify unsupported official expectations as
SKIPand real in-scope gaps asXFAILor tracked runtime bugs.