deno/tests/node_compat
Daniel Osvaldo R 9371d7bcf3
fix(ext/node): handle large buffer correctly (#30369)
Previously, Deno throws error when creating `Buffer.allocUnsafe` or
`Buffer.allocUnsafeSlow` with size of `2**31` where that's not the case
with Node.js.

The changes allow these tests to pass:
-
[test-buffer-large-size-buffer-alloc-unsafe-slow.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js)
-
[test-buffer-large-size-buffer-alloc-unsafe.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe.js)
-
[test-string-decoder-large-buffer.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-string-decoder-large-buffer.js)

<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
2025-08-10 14:02:43 +02:00
..
runner fix: upgrade @node/types to 24 (#30343) 2025-08-07 16:08:47 +00:00
.gitignore chore: create monthly summary of node test runs (#28778) 2025-04-08 12:12:27 +09:00
add_day_summary_to_month_summary.ts chore: post node test results to slack (#28795) 2025-04-08 23:14:38 +09:00
common.ts chore(ext/node): reorg node compat test CI check (#29893) 2025-06-27 21:06:18 +09:00
config.toml fix(ext/node): handle large buffer correctly (#30369) 2025-08-10 14:02:43 +02:00
deno.json chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
README.md chore(ext/node): reorg node compat test CI check (#29893) 2025-06-27 21:06:18 +09:00
run_all_test_unmodified.ts fix(check): do not surface code resolution errors in declaration file dependencies (#30296) 2025-08-05 08:35:20 +00:00
slack.ts ci: update Slack bot action (#29333) 2025-05-16 15:00:10 +02:00
test.ts test: avoid race condition on node compat test runner (#30201) 2025-07-25 15:31:31 +09:00
test_runner.rs chore(ext/node): re-enable node compat test (#29936) 2025-06-28 14:17:10 +02:00

Node compat test directory

This directory includes the tools for running Node.js test cases directly in Deno.

  • ./runner/suite/ - vendored Node.js test cases (git submodule at https://github.com/denoland/node_test)
  • ./config.toml - has the list of passing Node.js test cases
  • ./test.ts - The script entrypoint of node compat test.

If you run single node.js test case, use the command:

./tools/node_compat_tests.js --filter <name of test file>

Add test case entry to CI check

If you fixed some Node.js compabitility and some test cases started passing, then add those cases to config.toml. The items listed in there are checked in CI check.

Daily test viewer

To see the latest test results of all test cases, visit this site https://node-test-viewer.deno.dev/results/latest