Skip to content

test: enable 8 already-passing Node compat tests#33572

Open
nathanwhitbot wants to merge 12 commits intodenoland:mainfrom
nathanwhitbot:fix/node-compat-iter44
Open

test: enable 8 already-passing Node compat tests#33572
nathanwhitbot wants to merge 12 commits intodenoland:mainfrom
nathanwhitbot:fix/node-compat-iter44

Conversation

@nathanwhitbot
Copy link
Copy Markdown
Contributor

Summary

Enables 8 Node.js compat tests that already pass on main without any code changes. No production code touched — just tests/node_compat/config.jsonc entries.

  • parallel/test-crypto-gcm-explicit-short-tag.js
  • parallel/test-fastutf8stream-write.js
  • parallel/test-fs-stat-date.mjs
  • parallel/test-http2-connect-options.js
  • parallel/test-net-better-error-messages-path.js
  • parallel/test-socket-options-invalid.js
  • parallel/test-windows-abort-exitcode.js
  • parallel/test-worker-onmessage-not-a-function.js

Test plan

  • Each test verified via cargo test --test node_compat -- <name> (8/8 pass)
  • Re-ran each test 3× to confirm stability — all stable

All 8 tests pass against current main with no code changes; this just
adds them to config.jsonc so they're tracked. Each was verified via
`cargo test --test node_compat -- <name>` and re-run three times to
rule out flakiness.

  parallel/test-crypto-gcm-explicit-short-tag.js
  parallel/test-fastutf8stream-write.js
  parallel/test-fs-stat-date.mjs
  parallel/test-http2-connect-options.js
  parallel/test-net-better-error-messages-path.js
  parallel/test-socket-options-invalid.js
  parallel/test-windows-abort-exitcode.js
  parallel/test-worker-onmessage-not-a-function.js
Copy link
Copy Markdown
Contributor Author

@nathanwhitbot nathanwhitbot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Config-only — 8 additive {} entries. Spot-checked the trickier - < .
placements:

  • test-fs-stat-date.mjs between …-bigint.js and …-stat.js — correct
    (stat-date.mjs has - at the position where stat.js has .).
  • test-http2-connect-options.js between …-connect-method.js and
    …-connect.js — same rule.
  • test-worker-onmessage-not-a-function.js between
    …-on-process-exit.js and …-onmessage.js- < m puts the
    hyphenated on- before onm, and - < . puts onmessage-not-…
    before onmessage.js.

All 8 land correctly. LGTM.

- test-net-better-error-messages-path.js: gate with windows:false (fails on Windows aarch64).
- test-windows-abort-exitcode.js: drop entirely (Windows-specific, fails on Windows aarch64).
Test asserts mtime equality with a 1ms margin. Failing on both macOS
aarch64 and macOS x86_64 by ~40s, suggesting a real timestamp
divergence on macOS that's not relevant to the rest of this batch.
Gate with darwin:false rather than block the PR.
@nathanwhitbot
Copy link
Copy Markdown
Contributor Author

test node_compat (3/3) debug windows-x86_64 fail on run 25031244394 — "Set up playwright cache" step failed before any test ran. Infra cache flake. cc @nathanwhit for a rerun.

Copy link
Copy Markdown
Contributor

@fibibot fibibot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Net additions look right — 7 entries in the diff (body claims 8, but test-windows-abort-exitcode.js from the body isn't yet on main either, so that count is honestly off; the actual diff is 7). Two are pre-gated:

  • test-fs-stat-date.mjs"darwin": false
  • test-net-better-error-messages-path.js"windows": false

The other 5 are unrestricted: test-crypto-gcm-explicit-short-tag.js, test-fastutf8stream-write.js, test-http2-connect-options.js, test-socket-options-invalid.js, test-worker-onmessage-not-a-function.js.

Holding off on APPROVE — CI shows test node_compat (3/3) debug windows-x86_64 failing (https://github.com/denoland/deno/actions/runs/25031244394/job/73313558381). The overall run is still in progress so I can't yet narrow down which specific test in shard 3 caused the failure, but it's almost certainly one of the unrestricted entries above (the pre-gated ones skip on the affected platforms). My guess on call order is test-worker-onmessage-not-a-function.js (matches shard 3 alpha range, has interleaved global state), but worth confirming once the run finishes and the test-results JSON artifact is downloadable.

Once CI lands, either drop / "windows": false the offending test or document why it's not actually flaky and re-run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants