From aa729a42b4257b4d58bfcd0270566756c9470d08 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Tue, 21 Mar 2023 22:38:07 +0900 Subject: [PATCH] chore(tools): restore node compat test setup script (#18290) --- .dprint.json | 2 + cli/tests/node_compat/common.ts | 6 +- cli/tests/node_compat/config.json | 144 +- cli/tests/node_compat/test.ts | 6 +- .../test/internet/test-dgram-connect.js | 26 - .../parallel/test-buffer-sharedarraybuffer.js | 34 - .../test/parallel/test-buffer-write.js | 115 - .../test/parallel/test-dgram-address.js | 88 - .../test-dgram-bind-default-address.js | 60 - .../test/parallel/test-dgram-bind.js | 50 - .../test/parallel/test-dgram-bytes-length.js | 46 - .../parallel/test-dgram-close-in-listening.js | 33 - .../test-dgram-close-is-not-callback.js | 28 - .../test/parallel/test-dgram-close.js | 63 - ...ram-connect-send-callback-buffer-length.js | 30 - ...test-dgram-connect-send-callback-buffer.js | 27 - ...gram-connect-send-callback-multi-buffer.js | 36 - .../test-dgram-connect-send-default-host.js | 55 - .../test-dgram-connect-send-empty-array.js | 29 - .../test-dgram-connect-send-empty-buffer.js | 27 - .../test-dgram-connect-send-empty-packet.js | 35 - ...st-dgram-connect-send-multi-buffer-copy.js | 36 - ...t-dgram-connect-send-multi-string-array.js | 24 - .../test/parallel/test-dgram-connect.js | 73 - .../parallel/test-dgram-createSocket-type.js | 68 - .../test-dgram-error-message-address.js | 64 - .../test/parallel/test-dgram-implicit-bind.js | 53 - .../parallel/test-dgram-listen-after-bind.js | 52 - .../test/parallel/test-dgram-msgsize.js | 46 - .../test/parallel/test-dgram-oob-buffer.js | 52 - .../test/parallel/test-dgram-recv-error.js | 26 - .../parallel/test-dgram-send-bad-arguments.js | 162 - ...gram-send-callback-buffer-empty-address.js | 23 - ...nd-callback-buffer-length-empty-address.js | 28 - .../test-dgram-send-callback-buffer-length.js | 50 - .../test-dgram-send-callback-buffer.js | 26 - ...end-callback-multi-buffer-empty-address.js | 34 - .../test-dgram-send-callback-multi-buffer.js | 34 - .../test-dgram-send-callback-recursive.js | 50 - .../parallel/test-dgram-send-default-host.js | 79 - .../parallel/test-dgram-send-empty-array.js | 32 - .../parallel/test-dgram-send-empty-buffer.js | 50 - .../parallel/test-dgram-send-empty-packet.js | 36 - .../test/parallel/test-dgram-send-error.js | 77 - .../test-dgram-send-invalid-msg-type.js | 43 - .../test-dgram-send-multi-buffer-copy.js | 35 - .../test-dgram-send-multi-string-array.js | 20 - .../test/parallel/test-dgram-udp4.js | 59 - .../test-dgram-udp6-send-default-host.js | 83 - .../parallel/test-diagnostics-channel-net.js | 32 - .../test/parallel/test-dns-multi-channel.js | 59 - ...test-event-emitter-check-listener-leaks.js | 110 - ...-emitter-max-listeners-warning-for-null.js | 30 - ...mitter-max-listeners-warning-for-symbol.js | 32 - ...est-event-emitter-max-listeners-warning.js | 38 - .../node_compat/test/parallel/test-fs-rm.js | 433 --- .../test/parallel/test-fs-watch.js | 105 - .../test/parallel/test-fs-writev.js | 114 - .../parallel/test-http-outgoing-destroy.js | 24 - .../test-http-outgoing-finish-writable.js | 47 - .../test/parallel/test-net-after-close.js | 58 - .../test/parallel/test-net-allow-half-open.js | 54 - .../test-net-better-error-messages-listen.js | 19 - .../test/parallel/test-net-bind-twice.js | 43 - .../test/parallel/test-net-buffersize.js | 59 - .../parallel/test-net-bytes-written-large.js | 74 - .../parallel/test-net-can-reset-timeout.js | 64 - .../test-net-connect-call-socket-connect.js | 46 - .../parallel/test-net-connect-options-ipv6.js | 74 - .../parallel/test-net-connect-options-port.js | 237 -- .../parallel/test-net-dns-custom-lookup.js | 61 - .../test/parallel/test-net-dns-lookup-skip.js | 26 - .../test/parallel/test-net-dns-lookup.js | 47 - .../test/parallel/test-net-eaddrinuse.js | 44 - .../test/parallel/test-net-end-destroyed.js | 33 - .../test-net-listen-after-destroying-stdin.js | 29 - .../test/parallel/test-net-listen-error.js | 36 - .../parallel/test-net-local-address-port.js | 50 - .../test-net-pause-resume-connecting.js | 102 - .../parallel/test-net-persistent-ref-unref.js | 48 - .../parallel/test-net-remote-address-port.js | 91 - .../test-net-server-capture-rejection.js | 34 - .../test/parallel/test-net-server-close.js | 52 - .../test-net-server-max-connections.js | 114 - .../test-net-server-pause-on-connect.js | 79 - .../test-net-socket-close-after-end.js | 38 - .../test-net-socket-connect-without-cb.js | 33 - .../parallel/test-net-socket-connecting.js | 28 - .../parallel/test-net-socket-destroy-send.js | 31 - .../test-net-socket-end-before-connect.js | 20 - .../parallel/test-net-socket-end-callback.js | 29 - .../test-net-socket-ready-without-cb.js | 27 - .../test-net-socket-write-after-close.js | 49 - .../parallel/test-net-socket-write-error.js | 29 - .../test/parallel/test-net-sync-cork.js | 40 - .../test/parallel/test-net-writable.js | 22 - .../parallel/test-net-write-after-end-nt.js | 39 - .../test-net-write-fully-async-buffer.js | 41 - .../test-net-write-fully-async-hex-string.js | 39 - .../test/parallel/test-net-write-slow.js | 70 - .../test/parallel/test-punycode.js | 280 -- .../test/parallel/test-readline-csi.js | 183 - .../parallel/test-readline-promises-csi.mjs | 233 -- .../test-readline-promises-interface.js | 1149 ------- .../parallel/test-stream-asIndexedPairs.mjs | 60 - .../parallel/test-stream-catch-rejections.js | 58 - .../parallel/test-stream-some-find-every.mjs | 179 - .../test/parallel/test-tls-connect-simple.js | 69 - ...t-net-bytes-per-incoming-chunk-overhead.js | 58 - .../test/pummel/test-net-pingpong-delay.js | 114 - .../test/pummel/test-net-write-callbacks.js | 80 - tools/node_compat/.gitignore | 1 + tools/node_compat/TODO.md | 2931 +++++++++++++++++ tools/node_compat/setup.ts | 240 ++ 114 files changed, 3182 insertions(+), 7941 deletions(-) delete mode 100644 cli/tests/node_compat/test/internet/test-dgram-connect.js delete mode 100644 cli/tests/node_compat/test/parallel/test-buffer-sharedarraybuffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-buffer-write.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-bind-default-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-bind.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-bytes-length.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-close-in-listening.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-close-is-not-callback.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-close.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer-length.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-multi-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-default-host.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-array.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-packet.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-buffer-copy.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-string-array.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-connect.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-createSocket-type.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-error-message-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-implicit-bind.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-listen-after-bind.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-msgsize.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-oob-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-recv-error.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-bad-arguments.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-empty-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-callback-recursive.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-default-host.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-empty-array.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-empty-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-empty-packet.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-error.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-invalid-msg-type.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-multi-buffer-copy.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-send-multi-string-array.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-udp4.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dgram-udp6-send-default-host.js delete mode 100644 cli/tests/node_compat/test/parallel/test-diagnostics-channel-net.js delete mode 100644 cli/tests/node_compat/test/parallel/test-dns-multi-channel.js delete mode 100644 cli/tests/node_compat/test/parallel/test-event-emitter-check-listener-leaks.js delete mode 100644 cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-null.js delete mode 100644 cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js delete mode 100644 cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning.js delete mode 100644 cli/tests/node_compat/test/parallel/test-fs-rm.js delete mode 100644 cli/tests/node_compat/test/parallel/test-fs-watch.js delete mode 100644 cli/tests/node_compat/test/parallel/test-fs-writev.js delete mode 100644 cli/tests/node_compat/test/parallel/test-http-outgoing-destroy.js delete mode 100644 cli/tests/node_compat/test/parallel/test-http-outgoing-finish-writable.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-after-close.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-allow-half-open.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-better-error-messages-listen.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-bind-twice.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-buffersize.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-bytes-written-large.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-can-reset-timeout.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-connect-call-socket-connect.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-connect-options-ipv6.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-connect-options-port.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-dns-custom-lookup.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-dns-lookup-skip.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-dns-lookup.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-eaddrinuse.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-end-destroyed.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-listen-after-destroying-stdin.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-listen-error.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-local-address-port.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-pause-resume-connecting.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-persistent-ref-unref.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-remote-address-port.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-server-capture-rejection.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-server-close.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-server-max-connections.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-server-pause-on-connect.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-close-after-end.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-connect-without-cb.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-connecting.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-destroy-send.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-end-before-connect.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-end-callback.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-ready-without-cb.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-write-after-close.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-socket-write-error.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-sync-cork.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-writable.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-write-after-end-nt.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-write-fully-async-buffer.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-write-fully-async-hex-string.js delete mode 100644 cli/tests/node_compat/test/parallel/test-net-write-slow.js delete mode 100644 cli/tests/node_compat/test/parallel/test-punycode.js delete mode 100644 cli/tests/node_compat/test/parallel/test-readline-csi.js delete mode 100644 cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs delete mode 100644 cli/tests/node_compat/test/parallel/test-readline-promises-interface.js delete mode 100644 cli/tests/node_compat/test/parallel/test-stream-asIndexedPairs.mjs delete mode 100644 cli/tests/node_compat/test/parallel/test-stream-catch-rejections.js delete mode 100644 cli/tests/node_compat/test/parallel/test-stream-some-find-every.mjs delete mode 100644 cli/tests/node_compat/test/parallel/test-tls-connect-simple.js delete mode 100644 cli/tests/node_compat/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js delete mode 100644 cli/tests/node_compat/test/pummel/test-net-pingpong-delay.js delete mode 100644 cli/tests/node_compat/test/pummel/test-net-write-callbacks.js create mode 100644 tools/node_compat/.gitignore create mode 100644 tools/node_compat/TODO.md create mode 100755 tools/node_compat/setup.ts diff --git a/.dprint.json b/.dprint.json index 422cd41e5a..2146de4bdd 100644 --- a/.dprint.json +++ b/.dprint.json @@ -40,6 +40,8 @@ "test_util/std", "test_util/wpt", "third_party", + "tools/node_compat/TODO.md", + "tools/node_compat/versions", "tools/wpt/expectation.json", "tools/wpt/manifest.json" ], diff --git a/cli/tests/node_compat/common.ts b/cli/tests/node_compat/common.ts index 0941e2c8f3..e774991f62 100644 --- a/cli/tests/node_compat/common.ts +++ b/cli/tests/node_compat/common.ts @@ -1,6 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. -import { partition } from "std/collections/mod.ts"; -import { join } from "std/path/mod.ts"; +import { partition } from "../../../test_util/std/collections/partition.ts"; +import { join } from "../../../test_util/std/path/mod.ts"; /** * The test suite matches the folders inside the `test` folder inside the @@ -35,7 +35,7 @@ export const ignoreList = Object.entries(config.ignore).reduce( paths.forEach((path) => total.push(new RegExp(join(suite, path)))); return total; }, - [], + [/package\.json/], ); export function getPathsFromTestSuites(suites: TestSuites): string[] { diff --git a/cli/tests/node_compat/config.json b/cli/tests/node_compat/config.json index 2f21e0d464..90e4a9a35e 100644 --- a/cli/tests/node_compat/config.json +++ b/cli/tests/node_compat/config.json @@ -100,10 +100,7 @@ "test-zlib-zero-byte.js", "test-zlib-zero-windowBits.js" ], - "pummel": [ - "test-net-bytes-per-incoming-chunk-overhead.js", - "test-net-write-callbacks.js" - ], + "pummel": [], "sequential": [ "test-child-process-exit.js" ] @@ -115,7 +112,7 @@ "dns.js", "duplexpair.js", "fixtures.js", - "hijackstdio", + "hijackstdio.js", "index.mjs", "internet.js" ], @@ -137,7 +134,6 @@ "agent1-key.pem" ], "internet": [ - "TODO:test-dgram-connect.js", "test-dns-any.js", "test-dns-idna2008.js", "test-dns-ipv4.js", @@ -155,7 +151,6 @@ "test-assert.js", "test-bad-unicode.js", "test-btoa-atob.js", - "TODO:test-buffer-alloc.js", "test-buffer-arraybuffer.js", "test-buffer-ascii.js", "test-buffer-badhex.js", @@ -170,7 +165,6 @@ "test-buffer-fakes.js", "test-buffer-from.js", "test-buffer-includes.js", - "TODO:test-buffer-indexof.js", "test-buffer-inheritance.js", "test-buffer-isencoding.js", "test-buffer-iterator.js", @@ -186,7 +180,6 @@ "test-buffer-readint.js", "test-buffer-readuint.js", "test-buffer-safe-unsafe.js", - "TODO:test-buffer-sharedarraybuffer.js", "test-buffer-slice.js", "test-buffer-slow.js", "test-buffer-swap.js", @@ -194,7 +187,6 @@ "test-buffer-tostring-range.js", "test-buffer-tostring-rangeerror.js", "test-buffer-tostring.js", - "TODO:test-buffer-write.js", "test-buffer-writedouble.js", "test-buffer-writefloat.js", "test-buffer-writeint.js", @@ -207,40 +199,29 @@ "test-child-process-double-pipe.js", "test-child-process-exec-abortcontroller-promisified.js", "test-child-process-exec-cwd.js", - "TODO:test-child-process-exec-encoding.js", "test-child-process-exec-env.js", "test-child-process-exec-error.js", "test-child-process-exec-kill-throws.js", "test-child-process-exec-maxbuf.js", - "TODO:test-child-process-exec-std-encoding.js", "test-child-process-exec-stdout-stderr-data-string.js", "test-child-process-exec-timeout-expire.js", "test-child-process-exec-timeout-kill.js", - "TODO:test-child-process-exec-timeout-not-expired.js", "test-child-process-execFile-promisified-abortController.js", "test-child-process-execfile-maxbuf.js", - "TODO:test-child-process-execfile.js", "test-child-process-execfilesync-maxbuf.js", "test-child-process-execsync-maxbuf.js", - "TODO:test-child-process-exit-code.js", "test-child-process-flush-stdio.js", - "TODO:test-child-process-ipc.js", "test-child-process-kill.js", "test-child-process-set-blocking.js", "test-child-process-spawn-args.js", "test-child-process-spawn-event.js", "test-child-process-spawnsync-args.js", - "TODO:test-child-process-spawnsync-env.js", "test-child-process-spawnsync-maxbuf.js", "test-child-process-spawnsync-validation-errors.js", "test-child-process-spawnsync.js", - "TODO:test-child-process-stdio-inherit.js", - "TODO:test-child-process-stdout-flush-exit.js", - "TODO:test-child-process-stdout-flush.js", "test-client-request-destroy.js", "test-console-async-write-error.js", "test-console-group.js", - "TODO:test-console-instance.js", "test-console-log-stdio-broken-dest.js", "test-console-log-throw-primitive.js", "test-console-no-swallow-stack-overflow.js", @@ -248,73 +229,21 @@ "test-console-table.js", "test-console-tty-colors.js", "test-crypto-hmac.js", - "TODO:test-dgram-address.js", - "TODO:test-dgram-bind-default-address.js", - "TODO:test-dgram-bind.js", - "TODO:test-dgram-bytes-length.js", "test-dgram-close-during-bind.js", - "TODO:test-dgram-close-in-listening.js", - "TODO:test-dgram-close-is-not-callback.js", "test-dgram-close-signal.js", - "TODO:test-dgram-close.js", - "TODO:test-dgram-connect-send-callback-buffer-length.js", - "TODO:test-dgram-connect-send-callback-buffer.js", - "TODO:test-dgram-connect-send-callback-multi-buffer.js", - "TODO:test-dgram-connect-send-default-host.js", - "TODO:test-dgram-connect-send-empty-array.js", - "TODO:test-dgram-connect-send-empty-buffer.js", - "TODO:test-dgram-connect-send-empty-packet.js", - "TODO:test-dgram-connect-send-multi-buffer-copy.js", - "TODO:test-dgram-connect-send-multi-string-array.js", - "TODO:test-dgram-connect.js", - "TODO:test-dgram-createSocket-type.js", - "TODO:test-dgram-custom-lookup.js", - "TODO:test-dgram-error-message-address.js", - "TODO:test-dgram-implicit-bind.js", - "TODO:test-dgram-ipv6only.js", - "TODO:test-dgram-listen-after-bind.js", - "TODO:test-dgram-msgsize.js", - "TODO:test-dgram-oob-buffer.js", - "TODO:test-dgram-recv-error.js", - "TODO:test-dgram-send-bad-arguments.js", - "TODO:test-dgram-send-callback-buffer-empty-address.js", - "TODO:test-dgram-send-callback-buffer-length-empty-address.js", - "TODO:test-dgram-send-callback-buffer-length.js", - "TODO:test-dgram-send-callback-buffer.js", - "TODO:test-dgram-send-callback-multi-buffer-empty-address.js", - "TODO:test-dgram-send-callback-multi-buffer.js", - "TODO:test-dgram-send-callback-recursive.js", - "TODO:test-dgram-send-cb-quelches-error.js", - "TODO:test-dgram-send-default-host.js", - "TODO:test-dgram-send-empty-array.js", - "TODO:test-dgram-send-empty-buffer.js", - "TODO:test-dgram-send-empty-packet.js", - "TODO:test-dgram-send-error.js", - "TODO:test-dgram-send-invalid-msg-type.js", - "TODO:test-dgram-send-multi-buffer-copy.js", - "TODO:test-dgram-send-multi-string-array.js", - "TODO:test-dgram-socket-buffer-size.js", - "TODO:test-dgram-udp4.js", - "TODO:test-dgram-udp6-link-local-address.js", - "TODO:test-dgram-udp6-send-default-host.js", "test-diagnostics-channel-has-subscribers.js", - "TODO:test-diagnostics-channel-net.js", "test-diagnostics-channel-object-channel-pub-sub.js", "test-diagnostics-channel-pub-sub.js", "test-diagnostics-channel-symbol-named.js", "test-diagnostics-channel-udp.js", "test-dns-lookup.js", "test-dns-memory-error.js", - "TODO:test-dns-multi-channel.js", "test-dns-promises-exists.js", - "TODO:test-dns-resolveany.js", "test-dns-resolvens-typeerror.js", "test-dns-setservers-type-check.js", - "TODO:test-dns.js", "test-eval-strict-referenceerror.js", "test-eval.js", "test-event-emitter-add-listeners.js", - "TODO:test-event-emitter-check-listener-leaks.js", "test-event-emitter-emit-context.js", "test-event-emitter-error-monitor.js", "test-event-emitter-errors.js", @@ -323,9 +252,6 @@ "test-event-emitter-listener-count.js", "test-event-emitter-listeners-side-effects.js", "test-event-emitter-listeners.js", - "TODO:test-event-emitter-max-listeners-warning-for-null.js", - "TODO:test-event-emitter-max-listeners-warning-for-symbol.js", - "TODO:test-event-emitter-max-listeners-warning.js", "test-event-emitter-max-listeners.js", "test-event-emitter-method-names.js", "test-event-emitter-modify-in-emit.js", @@ -383,7 +309,6 @@ "test-fs-readdir.js", "test-fs-readfile-empty.js", "test-fs-realpath-native.js", - "TODO:test-fs-rm.js", "test-fs-rmdir-recursive-sync-warns-not-found.js", "test-fs-rmdir-recursive-sync-warns-on-file.js", "test-fs-rmdir-recursive-throws-not-found.js", @@ -392,7 +317,6 @@ "test-fs-rmdir-recursive-warns-on-file.js", "test-fs-rmdir-recursive.js", "test-fs-rmdir-type-check.js", - "TODO:test-fs-watch.js", "test-fs-watchfile.js", "test-fs-write-buffer.js", "test-fs-write-file-buffer.js", @@ -410,14 +334,11 @@ "test-fs-write-sync.js", "test-fs-write.js", "test-fs-writev-sync.js", - "TODO:test-fs-writev.js", "test-handle-wrap-close-abort.js", "test-http-agent-getname.js", "test-http-client-get-url.js", "test-http-client-read-in-error.js", "test-http-outgoing-buffer.js", - "TODO:test-http-outgoing-destroy.js", - "TODO:test-http-outgoing-finish-writable.js", "test-http-outgoing-internal-headernames-getter.js", "test-http-outgoing-internal-headernames-setter.js", "test-http-outgoing-internal-headers.js", @@ -429,84 +350,39 @@ "test-http-url.parse-post.js", "test-http-url.parse-search.js", "test-net-access-byteswritten.js", - "TODO:test-net-after-close.js", - "TODO:test-net-allow-half-open.js", "test-net-better-error-messages-listen-path.js", - "TODO:test-net-better-error-messages-listen.js", "test-net-better-error-messages-path.js", "test-net-better-error-messages-port-hostname.js", - "TODO:test-net-bind-twice.js", - "TODO:test-net-buffersize.js", - "TODO:test-net-bytes-written-large.js", - "TODO:test-net-can-reset-timeout.js", "test-net-connect-after-destroy.js", - "TODO:test-net-connect-buffer.js", - "TODO:test-net-connect-buffer2.js", - "TODO:test-net-connect-call-socket-connect.js", "test-net-connect-destroy.js", "test-net-connect-immediate-destroy.js", "test-net-connect-immediate-finish.js", "test-net-connect-no-arg.js", - "TODO:test-net-connect-options-ipv6.js", - "TODO:test-net-connect-options-port.js", - "TODO:test-net-dns-custom-lookup.js", "test-net-dns-error.js", - "TODO:test-net-dns-lookup-skip.js", - "TODO:test-net-dns-lookup.js", "test-net-during-close.js", - "TODO:test-net-eaddrinuse.js", "test-net-end-close.js", - "TODO:test-net-end-destroyed.js", "test-net-end-without-connect.js", "test-net-isip.js", "test-net-isipv4.js", "test-net-isipv6.js", - "TODO:test-net-listen-after-destroying-stdin.js", "test-net-listen-close-server-callback-is-not-function.js", "test-net-listen-close-server.js", - "TODO:test-net-listen-error.js", "test-net-listen-invalid-port.js", "test-net-listening.js", - "TODO:test-net-local-address-port.js", "test-net-localerror.js", "test-net-options-lookup.js", - "TODO:test-net-pause-resume-connecting.js", - "TODO:test-net-persistent-ref-unref.js", "test-net-pipe-connect-errors.js", - "TODO:test-net-remote-address-port.js", - "TODO:test-net-server-call-listen-multiple-times.js", - "TODO:test-net-server-capture-rejection.js", - "TODO:test-net-server-close.js", "test-net-server-listen-options-signal.js", "test-net-server-listen-options.js", "test-net-server-listen-path.js", "test-net-server-listen-remove-callback.js", - "TODO:test-net-server-max-connections.js", "test-net-server-options.js", - "TODO:test-net-server-pause-on-connect.js", - "TODO:test-net-server-try-ports.js", "test-net-server-unref-persistent.js", "test-net-server-unref.js", - "TODO:test-net-socket-close-after-end.js", - "TODO:test-net-socket-connect-without-cb.js", - "TODO:test-net-socket-connecting.js", - "TODO:test-net-socket-destroy-send.js", "test-net-socket-destroy-twice.js", - "TODO:test-net-socket-end-before-connect.js", - "TODO:test-net-socket-end-callback.js", "test-net-socket-no-halfopen-enforcer.js", - "TODO:test-net-socket-ready-without-cb.js", - "TODO:test-net-socket-timeout.js", - "TODO:test-net-socket-write-after-close.js", - "TODO:test-net-socket-write-error.js", - "TODO:test-net-sync-cork.js", "test-net-timeout-no-handle.js", - "TODO:test-net-writable.js", - "TODO:test-net-write-after-end-nt.js", "test-net-write-arguments.js", - "TODO:test-net-write-fully-async-buffer.js", - "TODO:test-net-write-fully-async-hex-string.js", - "TODO:test-net-write-slow.js", "test-next-tick-doesnt-hang.js", "test-next-tick-fixed-queue-regression.js", "test-next-tick-intentional-starvation.js", @@ -515,7 +391,6 @@ "test-next-tick-when-exiting.js", "test-next-tick.js", "test-nodeeventtarget.js", - "TODO:test-os.js", "test-outgoing-message-destroy.js", "test-outgoing-message-pipe.js", "test-path-basename.js", @@ -543,19 +418,14 @@ "test-process-uptime.js", "test-promise-unhandled-silent.js", "test-promise-unhandled-throw-handler.js", - "TODO:test-punycode.js", "test-querystring-escape.js", "test-querystring-maxKeys-non-finite.js", "test-querystring-multichar-separator.js", "test-querystring.js", - "TODO:test-readline-csi.js", "test-readline-emit-keypress-events.js", "test-readline-interface-escapecodetimeout.js", - "TODO:test-readline-interface.js", "test-readline-keys.js", "test-readline-position.js", - "TODO:test-readline-promises-csi.mjs", - "TODO:test-readline-promises-interface.js", "test-readline-reopen.js", "test-readline-set-raw-mode.js", "test-readline-undefined-columns.js", @@ -563,14 +433,12 @@ "test-stdin-from-file-spawn.js", "test-stream-add-abort-signal.js", "test-stream-aliases-legacy.js", - "TODO:test-stream-asIndexedPairs.mjs", "test-stream-auto-destroy.js", "test-stream-await-drain-writers-in-synchronously-recursion-write.js", "test-stream-backpressure.js", "test-stream-big-packet.js", "test-stream-big-push.js", "test-stream-buffer-list.js", - "TODO:test-stream-catch-rejections.js", "test-stream-construct.js", "test-stream-destroy-event-order.js", "test-stream-duplex-destroy.js", @@ -640,7 +508,6 @@ "test-stream-readable-unshift.js", "test-stream-readable-with-unimplemented-_read.js", "test-stream-readableListening-state.js", - "TODO:test-stream-some-find-every.mjs", "test-stream-transform-callback-twice.js", "test-stream-transform-constructor-set-methods.js", "test-stream-transform-destroy.js", @@ -723,7 +590,6 @@ "test-timers-unref-throw-then-ref.js", "test-timers-user-call.js", "test-timers-zero-timeout.js", - "TODO:test-tls-connect-simple.js", "test-url-domain-ascii-unicode.js", "test-url-fileurltopath.js", "test-url-format-invalid-input.js", @@ -798,11 +664,7 @@ "test-tty-stdin-end.js", "test-tty-stdout-end.js" ], - "pummel": [ - "TODO:test-net-bytes-per-incoming-chunk-overhead.js", - "TODO:test-net-pingpong-delay.js", - "TODO:test-net-write-callbacks.js" - ], + "pummel": [], "sequential": [ "test-child-process-exit.js" ] diff --git a/cli/tests/node_compat/test.ts b/cli/tests/node_compat/test.ts index 505a20f085..ad2847f088 100644 --- a/cli/tests/node_compat/test.ts +++ b/cli/tests/node_compat/test.ts @@ -47,10 +47,9 @@ async function runTest(t: Deno.TestContext, path: string): Promise { ) { return; } - const isTodo = path.includes("TODO"); const ignore = (Deno.build.os === "windows" && windowsIgnorePaths.has(path)) || - (Deno.build.os === "darwin" && darwinIgnorePaths.has(path)) || isTodo; + (Deno.build.os === "darwin" && darwinIgnorePaths.has(path)); await t.step({ name: `Node.js compatibility "${path}"`, ignore, @@ -124,8 +123,7 @@ Deno.test("Node.js compatibility", async (t) => { }); function checkConfigTestFilesOrder(testFileLists: Array) { - for (let testFileList of testFileLists) { - testFileList = testFileList.filter((name) => !name.startsWith("TODO:")); + for (const testFileList of testFileLists) { const sortedTestList = JSON.parse(JSON.stringify(testFileList)); sortedTestList.sort(); if (JSON.stringify(testFileList) !== JSON.stringify(sortedTestList)) { diff --git a/cli/tests/node_compat/test/internet/test-dgram-connect.js b/cli/tests/node_compat/test/internet/test-dgram-connect.js deleted file mode 100644 index 17b52472cd..0000000000 --- a/cli/tests/node_compat/test/internet/test-dgram-connect.js +++ /dev/null @@ -1,26 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const { addresses } = require('../common/internet'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); -client.connect(common.PORT, addresses.INVALID_HOST, common.mustCall((err) => { - assert.ok(err.code === 'ENOTFOUND' || err.code === 'EAI_AGAIN'); - - client.once('error', common.mustCall((err) => { - assert.ok(err.code === 'ENOTFOUND' || err.code === 'EAI_AGAIN'); - client.once('connect', common.mustCall(() => client.close())); - client.connect(common.PORT); - })); - - client.connect(common.PORT, addresses.INVALID_HOST); -})); diff --git a/cli/tests/node_compat/test/parallel/test-buffer-sharedarraybuffer.js b/cli/tests/node_compat/test/parallel/test-buffer-sharedarraybuffer.js deleted file mode 100644 index 9ec8f1a6d2..0000000000 --- a/cli/tests/node_compat/test/parallel/test-buffer-sharedarraybuffer.js +++ /dev/null @@ -1,34 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -require('../common'); -const assert = require('assert'); - -const sab = new SharedArrayBuffer(24); -const arr1 = new Uint16Array(sab); -const arr2 = new Uint16Array(12); -arr2[0] = 5000; -arr1[0] = 5000; -arr1[1] = 4000; -arr2[1] = 4000; - -const arr_buf = Buffer.from(arr1.buffer); -const ar_buf = Buffer.from(arr2.buffer); - -assert.deepStrictEqual(arr_buf, ar_buf); - -arr1[1] = 6000; -arr2[1] = 6000; - -assert.deepStrictEqual(arr_buf, ar_buf); - -// Checks for calling Buffer.byteLength on a SharedArrayBuffer. -assert.strictEqual(Buffer.byteLength(sab), sab.byteLength); - -Buffer.from({ buffer: sab }); // Should not throw. diff --git a/cli/tests/node_compat/test/parallel/test-buffer-write.js b/cli/tests/node_compat/test/parallel/test-buffer-write.js deleted file mode 100644 index 5ca26c96d0..0000000000 --- a/cli/tests/node_compat/test/parallel/test-buffer-write.js +++ /dev/null @@ -1,115 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -[-1, 10].forEach((offset) => { - assert.throws( - () => Buffer.alloc(9).write('foo', offset), - { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - message: 'The value of "offset" is out of range. ' + - `It must be >= 0 && <= 9. Received ${offset}` - } - ); -}); - -const resultMap = new Map([ - ['utf8', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['ucs2', Buffer.from([102, 0, 111, 0, 111, 0, 0, 0, 0])], - ['ascii', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['latin1', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['binary', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['utf16le', Buffer.from([102, 0, 111, 0, 111, 0, 0, 0, 0])], - ['base64', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['base64url', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], - ['hex', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], -]); - -// utf8, ucs2, ascii, latin1, utf16le -const encodings = ['utf8', 'utf-8', 'ucs2', 'ucs-2', 'ascii', 'latin1', - 'binary', 'utf16le', 'utf-16le']; - -encodings - .reduce((es, e) => es.concat(e, e.toUpperCase()), []) - .forEach((encoding) => { - const buf = Buffer.alloc(9); - const len = Buffer.byteLength('foo', encoding); - assert.strictEqual(buf.write('foo', 0, len, encoding), len); - - if (encoding.includes('-')) - encoding = encoding.replace('-', ''); - - assert.deepStrictEqual(buf, resultMap.get(encoding.toLowerCase())); - }); - -// base64 -['base64', 'BASE64', 'base64url', 'BASE64URL'].forEach((encoding) => { - const buf = Buffer.alloc(9); - const len = Buffer.byteLength('Zm9v', encoding); - - assert.strictEqual(buf.write('Zm9v', 0, len, encoding), len); - assert.deepStrictEqual(buf, resultMap.get(encoding.toLowerCase())); -}); - -// hex -['hex', 'HEX'].forEach((encoding) => { - const buf = Buffer.alloc(9); - const len = Buffer.byteLength('666f6f', encoding); - - assert.strictEqual(buf.write('666f6f', 0, len, encoding), len); - assert.deepStrictEqual(buf, resultMap.get(encoding.toLowerCase())); -}); - -// Invalid encodings -for (let i = 1; i < 10; i++) { - const encoding = String(i).repeat(i); - const error = common.expectsError({ - code: 'ERR_UNKNOWN_ENCODING', - name: 'TypeError', - message: `Unknown encoding: ${encoding}` - }); - - assert.ok(!Buffer.isEncoding(encoding)); - assert.throws(() => Buffer.alloc(9).write('foo', encoding), error); -} - -// UCS-2 overflow CVE-2018-12115 -for (let i = 1; i < 4; i++) { - // Allocate two Buffers sequentially off the pool. Run more than once in case - // we hit the end of the pool and don't get sequential allocations - const x = Buffer.allocUnsafe(4).fill(0); - const y = Buffer.allocUnsafe(4).fill(1); - // Should not write anything, pos 3 doesn't have enough room for a 16-bit char - assert.strictEqual(x.write('ыыыыыы', 3, 'ucs2'), 0); - // CVE-2018-12115 experienced via buffer overrun to next block in the pool - assert.strictEqual(Buffer.compare(y, Buffer.alloc(4, 1)), 0); -} - -// Should not write any data when there is no space for 16-bit chars -const z = Buffer.alloc(4, 0); -assert.strictEqual(z.write('\u0001', 3, 'ucs2'), 0); -assert.strictEqual(Buffer.compare(z, Buffer.alloc(4, 0)), 0); -// Make sure longer strings are written up to the buffer end. -assert.strictEqual(z.write('abcd', 2), 2); -assert.deepStrictEqual([...z], [0, 0, 0x61, 0x62]); - -// Large overrun could corrupt the process -assert.strictEqual(Buffer.alloc(4) - .write('ыыыыыы'.repeat(100), 3, 'utf16le'), 0); - -{ - // .write() does not affect the byte after the written-to slice of the Buffer. - // Refs: https://github.com/nodejs/node/issues/26422 - const buf = Buffer.alloc(8); - assert.strictEqual(buf.write('ыы', 1, 'utf16le'), 4); - assert.deepStrictEqual([...buf], [0, 0x4b, 0x04, 0x4b, 0x04, 0, 0, 0]); -} diff --git a/cli/tests/node_compat/test/parallel/test-dgram-address.js b/cli/tests/node_compat/test/parallel/test-dgram-address.js deleted file mode 100644 index ffcf8485e8..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-address.js +++ /dev/null @@ -1,88 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -{ - // IPv4 Test - const socket = dgram.createSocket('udp4'); - - socket.on('listening', common.mustCall(() => { - const address = socket.address(); - - assert.strictEqual(address.address, common.localhostIPv4); - assert.strictEqual(typeof address.port, 'number'); - assert.ok(isFinite(address.port)); - assert.ok(address.port > 0); - assert.strictEqual(address.family, 'IPv4'); - socket.close(); - })); - - socket.on('error', (err) => { - socket.close(); - assert.fail(`Unexpected error on udp4 socket. ${err.toString()}`); - }); - - socket.bind(0, common.localhostIPv4); -} - -if (common.hasIPv6) { - // IPv6 Test - const socket = dgram.createSocket('udp6'); - const localhost = '::1'; - - socket.on('listening', common.mustCall(() => { - const address = socket.address(); - - assert.strictEqual(address.address, localhost); - assert.strictEqual(typeof address.port, 'number'); - assert.ok(isFinite(address.port)); - assert.ok(address.port > 0); - assert.strictEqual(address.family, 'IPv6'); - socket.close(); - })); - - socket.on('error', (err) => { - socket.close(); - assert.fail(`Unexpected error on udp6 socket. ${err.toString()}`); - }); - - socket.bind(0, localhost); -} - -{ - // Verify that address() throws if the socket is not bound. - const socket = dgram.createSocket('udp4'); - - assert.throws(() => { - socket.address(); - }, /^Error: getsockname EBADF$/); -} diff --git a/cli/tests/node_compat/test/parallel/test-dgram-bind-default-address.js b/cli/tests/node_compat/test/parallel/test-dgram-bind-default-address.js deleted file mode 100644 index 9a6e1412ca..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-bind-default-address.js +++ /dev/null @@ -1,60 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -// Skip test in FreeBSD jails since 0.0.0.0 will resolve to default interface -if (common.inFreeBSDJail) - common.skip('In a FreeBSD jail'); - -const assert = require('assert'); -const dgram = require('dgram'); - -dgram.createSocket('udp4').bind(0, common.mustCall(function() { - assert.strictEqual(typeof this.address().port, 'number'); - assert.ok(isFinite(this.address().port)); - assert.ok(this.address().port > 0); - assert.strictEqual(this.address().address, '0.0.0.0'); - this.close(); -})); - -if (!common.hasIPv6) { - common.printSkipMessage('udp6 part of test, because no IPv6 support'); - return; -} - -dgram.createSocket('udp6').bind(0, common.mustCall(function() { - assert.strictEqual(typeof this.address().port, 'number'); - assert.ok(isFinite(this.address().port)); - assert.ok(this.address().port > 0); - let address = this.address().address; - if (address === '::ffff:0.0.0.0') - address = '::'; - assert.strictEqual(address, '::'); - this.close(); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-bind.js b/cli/tests/node_compat/test/parallel/test-dgram-bind.js deleted file mode 100644 index 93d68fd8a3..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-bind.js +++ /dev/null @@ -1,50 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const socket = dgram.createSocket('udp4'); - -socket.on('listening', common.mustCall(() => { - assert.throws(() => { - socket.bind(); - }, { - code: 'ERR_SOCKET_ALREADY_BOUND', - name: 'Error', - message: /^Socket is already bound$/ - }); - - socket.close(); -})); - -const result = socket.bind(); // Should not throw. - -assert.strictEqual(result, socket); // Should have returned itself. diff --git a/cli/tests/node_compat/test/parallel/test-dgram-bytes-length.js b/cli/tests/node_compat/test/parallel/test-dgram-bytes-length.js deleted file mode 100644 index 4ce2dabc35..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-bytes-length.js +++ /dev/null @@ -1,46 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const message = Buffer.from('Some bytes'); -const client = dgram.createSocket('udp4'); -client.send( - message, - 0, - message.length, - 41234, - 'localhost', - function(err, bytes) { - assert.strictEqual(bytes, message.length); - client.close(); - } -); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-close-in-listening.js b/cli/tests/node_compat/test/parallel/test-dgram-close-in-listening.js deleted file mode 100644 index 673b145b86..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-close-in-listening.js +++ /dev/null @@ -1,33 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -// Ensure that if a dgram socket is closed before the sendQueue is drained -// will not crash - -const common = require('../common'); -const dgram = require('dgram'); - -const buf = Buffer.alloc(1024, 42); - -const socket = dgram.createSocket('udp4'); - -socket.on('listening', function() { - socket.close(); -}); - -// Get a random port for send -const portGetter = dgram.createSocket('udp4') - .bind(0, 'localhost', common.mustCall(() => { - // Adds a listener to 'listening' to send the data when - // the socket is available - socket.send(buf, 0, buf.length, - portGetter.address().port, - portGetter.address().address); - - portGetter.close(); - })); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-close-is-not-callback.js b/cli/tests/node_compat/test/parallel/test-dgram-close-is-not-callback.js deleted file mode 100644 index d67bf5aa4d..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-close-is-not-callback.js +++ /dev/null @@ -1,28 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const dgram = require('dgram'); - -const buf = Buffer.alloc(1024, 42); - -const socket = dgram.createSocket('udp4'); - -// Get a random port for send -const portGetter = dgram.createSocket('udp4') - .bind(0, 'localhost', common.mustCall(() => { - socket.send(buf, 0, buf.length, - portGetter.address().port, - portGetter.address().address); - - // If close callback is not function, ignore the argument. - socket.close('bad argument'); - portGetter.close(); - - socket.on('close', common.mustCall()); - })); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-close.js b/cli/tests/node_compat/test/parallel/test-dgram-close.js deleted file mode 100644 index 46dfd80148..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-close.js +++ /dev/null @@ -1,63 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Flags: --expose-internals -'use strict'; -// Ensure that if a dgram socket is closed before the DNS lookup completes, it -// won't crash. - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const { kStateSymbol } = require('internal/dgram'); - -const buf = Buffer.alloc(1024, 42); - -let socket = dgram.createSocket('udp4'); -const { handle } = socket[kStateSymbol]; - -// Get a random port for send -const portGetter = dgram.createSocket('udp4') - .bind(0, 'localhost', common.mustCall(() => { - socket.send(buf, 0, buf.length, - portGetter.address().port, - portGetter.address().address); - - assert.strictEqual(socket.close(common.mustCall()), socket); - socket.on('close', common.mustCall()); - socket = null; - - // Verify that accessing handle after closure doesn't throw - setImmediate(function() { - setImmediate(function() { - console.log('Handle fd is: ', handle.fd); - }); - }); - - portGetter.close(); - })); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer-length.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer-length.js deleted file mode 100644 index 87f878754f..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer-length.js +++ /dev/null @@ -1,30 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -const dgram = require('dgram'); -const client = dgram.createSocket('udp4'); - -const buf = Buffer.allocUnsafe(256); -const offset = 20; -const len = buf.length - offset; - -const messageSent = common.mustSucceed(function messageSent(bytes) { - assert.notStrictEqual(bytes, buf.length); - assert.strictEqual(bytes, buf.length - offset); - client.close(); -}); - -client.bind(0, common.mustCall(() => { - client.connect(client.address().port, common.mustCall(() => { - client.send(buf, offset, len, messageSent); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer.js deleted file mode 100644 index 3b1948cc01..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer.js +++ /dev/null @@ -1,27 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const buf = Buffer.allocUnsafe(256); - -const onMessage = common.mustSucceed((bytes) => { - assert.strictEqual(bytes, buf.length); - client.close(); -}); - -client.bind(0, common.mustCall(() => { - client.connect(client.address().port, common.mustCall(() => { - client.send(buf, onMessage); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-multi-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-multi-buffer.js deleted file mode 100644 index 365d0c4e76..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-multi-buffer.js +++ /dev/null @@ -1,36 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const messageSent = common.mustCall((err, bytes) => { - assert.strictEqual(bytes, buf1.length + buf2.length); -}); - -const buf1 = Buffer.alloc(256, 'x'); -const buf2 = Buffer.alloc(256, 'y'); - -client.on('listening', common.mustCall(() => { - const port = client.address().port; - client.connect(port, common.mustCall(() => { - client.send([buf1, buf2], messageSent); - })); -})); - -client.on('message', common.mustCall((buf, info) => { - const expected = Buffer.concat([buf1, buf2]); - assert.ok(buf.equals(expected), 'message was received correctly'); - client.close(); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-default-host.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-default-host.js deleted file mode 100644 index 3b2a579c00..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-default-host.js +++ /dev/null @@ -1,55 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); -const server = dgram.createSocket('udp4'); - -const toSend = [Buffer.alloc(256, 'x'), - Buffer.alloc(256, 'y'), - Buffer.alloc(256, 'z'), - 'hello']; - -const received = []; - -server.on('listening', common.mustCall(() => { - const port = server.address().port; - client.connect(port, (err) => { - assert.ifError(err); - client.send(toSend[0], 0, toSend[0].length); - client.send(toSend[1]); - client.send([toSend[2]]); - client.send(toSend[3], 0, toSend[3].length); - - client.send(new Uint8Array(toSend[0]), 0, toSend[0].length); - client.send(new Uint8Array(toSend[1])); - client.send([new Uint8Array(toSend[2])]); - client.send(new Uint8Array(Buffer.from(toSend[3])), - 0, toSend[3].length); - }); -})); - -server.on('message', common.mustCall((buf, info) => { - received.push(buf.toString()); - - if (received.length === toSend.length * 2) { - // The replies may arrive out of order -> sort them before checking. - received.sort(); - - const expected = toSend.concat(toSend).map(String).sort(); - assert.deepStrictEqual(received, expected); - client.close(); - server.close(); - } -}, toSend.length * 2)); - -server.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-array.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-array.js deleted file mode 100644 index 3ca2f930b5..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-array.js +++ /dev/null @@ -1,29 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -client.on('message', common.mustCall((buf, info) => { - const expected = Buffer.alloc(0); - assert.ok(buf.equals(expected), `Expected empty message but got ${buf}`); - client.close(); -})); - -client.on('listening', common.mustCall(() => { - client.connect(client.address().port, - common.localhostIPv4, - common.mustCall(() => client.send([]))); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-buffer.js deleted file mode 100644 index 07a841305a..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-buffer.js +++ /dev/null @@ -1,27 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -client.bind(0, common.mustCall(function() { - const port = this.address().port; - client.connect(port, common.mustCall(() => { - const buf = Buffer.alloc(0); - client.send(buf, 0, 0, common.mustSucceed()); - })); - - client.on('message', common.mustCall((buffer) => { - assert.strictEqual(buffer.length, 0); - client.close(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-packet.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-packet.js deleted file mode 100644 index 04bb36ab62..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-packet.js +++ /dev/null @@ -1,35 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -client.bind(0, common.mustCall(function() { - client.connect(client.address().port, common.mustCall(() => { - client.on('message', common.mustCall(callback)); - const buf = Buffer.alloc(1); - - const interval = setInterval(function() { - client.send(buf, 0, 0, common.mustCall(callback)); - }, 10); - - function callback(firstArg) { - // If client.send() callback, firstArg should be null. - // If client.on('message') listener, firstArg should be a 0-length buffer. - if (firstArg instanceof Buffer) { - assert.strictEqual(firstArg.length, 0); - clearInterval(interval); - client.close(); - } - } - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-buffer-copy.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-buffer-copy.js deleted file mode 100644 index aec62ee51a..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-buffer-copy.js +++ /dev/null @@ -1,36 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const onMessage = common.mustCall(common.mustSucceed((bytes) => { - assert.strictEqual(bytes, buf1.length + buf2.length); -})); - -const buf1 = Buffer.alloc(256, 'x'); -const buf2 = Buffer.alloc(256, 'y'); - -client.on('listening', common.mustCall(function() { - const toSend = [buf1, buf2]; - client.connect(client.address().port, common.mustCall(() => { - client.send(toSend, onMessage); - })); -})); - -client.on('message', common.mustCall(function onMessage(buf, info) { - const expected = Buffer.concat([buf1, buf2]); - assert.ok(buf.equals(expected), 'message was received correctly'); - client.close(); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-string-array.js b/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-string-array.js deleted file mode 100644 index daf787e25d..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-string-array.js +++ /dev/null @@ -1,24 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const socket = dgram.createSocket('udp4'); -const data = ['foo', 'bar', 'baz']; - -socket.on('message', common.mustCall((msg, rinfo) => { - socket.close(); - assert.deepStrictEqual(msg.toString(), data.join('')); -})); - -socket.bind(0, () => { - socket.connect(socket.address().port, common.mustCall(() => { - socket.send(data); - })); -}); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-connect.js b/cli/tests/node_compat/test/parallel/test-dgram-connect.js deleted file mode 100644 index 41d6a60620..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-connect.js +++ /dev/null @@ -1,73 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const PORT = 12345; - -const client = dgram.createSocket('udp4'); -client.connect(PORT, common.mustCall(() => { - const remoteAddr = client.remoteAddress(); - assert.strictEqual(remoteAddr.port, PORT); - assert.throws(() => { - client.connect(PORT, common.mustNotCall()); - }, { - name: 'Error', - message: 'Already connected', - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED' - }); - - client.disconnect(); - assert.throws(() => { - client.disconnect(); - }, { - name: 'Error', - message: 'Not connected', - code: 'ERR_SOCKET_DGRAM_NOT_CONNECTED' - }); - - assert.throws(() => { - client.remoteAddress(); - }, { - name: 'Error', - message: 'Not connected', - code: 'ERR_SOCKET_DGRAM_NOT_CONNECTED' - }); - - client.once('connect', common.mustCall(() => client.close())); - client.connect(PORT); -})); - -assert.throws(() => { - client.connect(PORT); -}, { - name: 'Error', - message: 'Already connected', - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED' -}); - -assert.throws(() => { - client.disconnect(); -}, { - name: 'Error', - message: 'Not connected', - code: 'ERR_SOCKET_DGRAM_NOT_CONNECTED' -}); - -[ 0, null, 78960, undefined ].forEach((port) => { - assert.throws(() => { - client.connect(port); - }, { - name: 'RangeError', - message: /^Port should be > 0 and < 65536/, - code: 'ERR_SOCKET_BAD_PORT' - }); -}); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-createSocket-type.js b/cli/tests/node_compat/test/parallel/test-dgram-createSocket-type.js deleted file mode 100644 index afcb54ab2f..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-createSocket-type.js +++ /dev/null @@ -1,68 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const invalidTypes = [ - 'test', - ['udp4'], - new String('udp4'), - 1, - {}, - true, - false, - null, - undefined, -]; -const validTypes = [ - 'udp4', - 'udp6', - { type: 'udp4' }, - { type: 'udp6' }, -]; -const errMessage = /^Bad socket type specified\. Valid types are: udp4, udp6$/; - -// Error must be thrown with invalid types -invalidTypes.forEach((invalidType) => { - assert.throws(() => { - dgram.createSocket(invalidType); - }, { - code: 'ERR_SOCKET_BAD_TYPE', - name: 'TypeError', - message: errMessage - }); -}); - -// Error must not be thrown with valid types -validTypes.forEach((validType) => { - const socket = dgram.createSocket(validType); - socket.close(); -}); - -// Ensure buffer sizes can be set -{ - const socket = dgram.createSocket({ - type: 'udp4', - recvBufferSize: 10000, - sendBufferSize: 15000 - }); - - socket.bind(common.mustCall(() => { - // note: linux will double the buffer size - assert.ok(socket.getRecvBufferSize() === 10000 || - socket.getRecvBufferSize() === 20000, - 'SO_RCVBUF not 10000 or 20000, ' + - `was ${socket.getRecvBufferSize()}`); - assert.ok(socket.getSendBufferSize() === 15000 || - socket.getSendBufferSize() === 30000, - 'SO_SNDBUF not 15000 or 30000, ' + - `was ${socket.getRecvBufferSize()}`); - socket.close(); - })); -} diff --git a/cli/tests/node_compat/test/parallel/test-dgram-error-message-address.js b/cli/tests/node_compat/test/parallel/test-dgram-error-message-address.js deleted file mode 100644 index 3bb144a898..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-error-message-address.js +++ /dev/null @@ -1,64 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -// IPv4 Test -const socket_ipv4 = dgram.createSocket('udp4'); - -socket_ipv4.on('listening', common.mustNotCall()); - -socket_ipv4.on('error', common.mustCall(function(e) { - assert.strictEqual(e.port, undefined); - assert.strictEqual(e.message, 'bind EADDRNOTAVAIL 1.1.1.1'); - assert.strictEqual(e.address, '1.1.1.1'); - assert.strictEqual(e.code, 'EADDRNOTAVAIL'); - socket_ipv4.close(); -})); - -socket_ipv4.bind(0, '1.1.1.1'); - -// IPv6 Test -const socket_ipv6 = dgram.createSocket('udp6'); - -socket_ipv6.on('listening', common.mustNotCall()); - -socket_ipv6.on('error', common.mustCall(function(e) { - // EAFNOSUPPORT or EPROTONOSUPPORT means IPv6 is disabled on this system. - const allowed = ['EADDRNOTAVAIL', 'EAFNOSUPPORT', 'EPROTONOSUPPORT']; - assert(allowed.includes(e.code), `'${e.code}' was not one of ${allowed}.`); - assert.strictEqual(e.port, undefined); - assert.strictEqual(e.message, `bind ${e.code} 111::1`); - assert.strictEqual(e.address, '111::1'); - socket_ipv6.close(); -})); - -socket_ipv6.bind(0, '111::1'); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-implicit-bind.js b/cli/tests/node_compat/test/parallel/test-dgram-implicit-bind.js deleted file mode 100644 index 34167c95b2..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-implicit-bind.js +++ /dev/null @@ -1,53 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const dgram = require('dgram'); - -const source = dgram.createSocket('udp4'); -const target = dgram.createSocket('udp4'); -let messages = 0; - -target.on('message', common.mustCall(function(buf) { - if (buf.toString() === 'abc') ++messages; - if (buf.toString() === 'def') ++messages; - if (messages === 2) { - source.close(); - target.close(); - } -}, 2)); - -target.on('listening', common.mustCall(function() { - // Second .send() call should not throw a bind error. - const port = this.address().port; - source.send(Buffer.from('abc'), 0, 3, port, '127.0.0.1'); - source.send(Buffer.from('def'), 0, 3, port, '127.0.0.1'); -})); - -target.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-listen-after-bind.js b/cli/tests/node_compat/test/parallel/test-dgram-listen-after-bind.js deleted file mode 100644 index 3b9fd97719..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-listen-after-bind.js +++ /dev/null @@ -1,52 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -require('../common'); -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const socket = dgram.createSocket('udp4'); - -socket.bind(); - -let fired = false; -const timer = setTimeout(() => { - socket.close(); -}, 100); - -socket.on('listening', common.mustCall(() => { - clearTimeout(timer); - fired = true; - socket.close(); -})); - -socket.on('close', common.mustCall(() => { - assert(fired, 'listening should fire after bind'); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-msgsize.js b/cli/tests/node_compat/test/parallel/test-dgram-msgsize.js deleted file mode 100644 index 88587842d9..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-msgsize.js +++ /dev/null @@ -1,46 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -// Send a too big datagram. The destination doesn't matter because it's -// not supposed to get sent out anyway. -const buf = Buffer.allocUnsafe(256 * 1024); -const sock = dgram.createSocket('udp4'); -sock.send(buf, 0, buf.length, 12345, '127.0.0.1', common.mustCall(cb)); -function cb(err) { - assert(err instanceof Error); - assert.strictEqual(err.code, 'EMSGSIZE'); - assert.strictEqual(err.address, '127.0.0.1'); - assert.strictEqual(err.port, 12345); - assert.strictEqual(err.message, 'send EMSGSIZE 127.0.0.1:12345'); - sock.close(); -} diff --git a/cli/tests/node_compat/test/parallel/test-dgram-oob-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-oob-buffer.js deleted file mode 100644 index 6ab59420c1..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-oob-buffer.js +++ /dev/null @@ -1,52 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -// Some operating systems report errors when an UDP message is sent to an -// unreachable host. This error can be reported by sendto() and even by -// recvfrom(). Node should not propagate this error to the user. - -const common = require('../common'); -const dgram = require('dgram'); - -const socket = dgram.createSocket('udp4'); -const buf = Buffer.from([1, 2, 3, 4]); -const portGetter = dgram.createSocket('udp4') - .bind(0, 'localhost', common.mustCall(() => { - const { address, port } = portGetter.address(); - portGetter.close(common.mustCall(() => { - socket.send(buf, 0, 0, port, address, common.mustNotCall()); - socket.send(buf, 0, 4, port, address, common.mustNotCall()); - socket.send(buf, 1, 3, port, address, common.mustNotCall()); - socket.send(buf, 3, 1, port, address, common.mustNotCall()); - // Since length of zero means nothing, don't error despite OOB. - socket.send(buf, 4, 0, port, address, common.mustNotCall()); - - socket.close(); - })); - })); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-recv-error.js b/cli/tests/node_compat/test/parallel/test-dgram-recv-error.js deleted file mode 100644 index 11b2633d88..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-recv-error.js +++ /dev/null @@ -1,26 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const { kStateSymbol } = require('internal/dgram'); -const s = dgram.createSocket('udp4'); -const { handle } = s[kStateSymbol]; - -s.on('error', common.mustCall((err) => { - s.close(); - - // Don't check the full error message, as the errno is not important here. - assert.match(String(err), /^Error: recvmsg/); - assert.strictEqual(err.syscall, 'recvmsg'); -})); - -s.on('message', common.mustNotCall('no message should be received.')); -s.bind(common.mustCall(() => handle.onmessage(-1, handle, null, null))); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-bad-arguments.js b/cli/tests/node_compat/test/parallel/test-dgram-send-bad-arguments.js deleted file mode 100644 index a465be0984..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-bad-arguments.js +++ /dev/null @@ -1,162 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const buf = Buffer.from('test'); -const host = '127.0.0.1'; -const sock = dgram.createSocket('udp4'); - -function checkArgs(connected) { - // First argument should be a buffer. - assert.throws( - () => { sock.send(); }, - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "buffer" argument must be of type string or an instance ' + - 'of Buffer, TypedArray, or DataView. Received undefined' - } - ); - - // send(buf, offset, length, port, host) - if (connected) { - assert.throws( - () => { sock.send(buf, 1, 1, -1, host); }, - { - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED', - name: 'Error', - message: 'Already connected' - } - ); - - assert.throws( - () => { sock.send(buf, 1, 1, 0, host); }, - { - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED', - name: 'Error', - message: 'Already connected' - } - ); - - assert.throws( - () => { sock.send(buf, 1, 1, 65536, host); }, - { - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED', - name: 'Error', - message: 'Already connected' - } - ); - - assert.throws( - () => { sock.send(buf, 1234, '127.0.0.1', common.mustNotCall()); }, - { - code: 'ERR_SOCKET_DGRAM_IS_CONNECTED', - name: 'Error', - message: 'Already connected' - } - ); - - const longArray = [1, 2, 3, 4, 5, 6, 7, 8]; - for (const input of ['hello', - Buffer.from('hello'), - Buffer.from('hello world').subarray(0, 5), - Buffer.from('hello world').subarray(4, 9), - Buffer.from('hello world').subarray(6), - new Uint8Array([1, 2, 3, 4, 5]), - new Uint8Array(longArray).subarray(0, 5), - new Uint8Array(longArray).subarray(2, 7), - new Uint8Array(longArray).subarray(3), - new DataView(new ArrayBuffer(5), 0), - new DataView(new ArrayBuffer(6), 1), - new DataView(new ArrayBuffer(7), 1, 5)]) { - assert.throws( - () => { sock.send(input, 6, 0); }, - { - code: 'ERR_BUFFER_OUT_OF_BOUNDS', - name: 'RangeError', - message: '"offset" is outside of buffer bounds', - } - ); - - assert.throws( - () => { sock.send(input, 0, 6); }, - { - code: 'ERR_BUFFER_OUT_OF_BOUNDS', - name: 'RangeError', - message: '"length" is outside of buffer bounds', - } - ); - - assert.throws( - () => { sock.send(input, 3, 4); }, - { - code: 'ERR_BUFFER_OUT_OF_BOUNDS', - name: 'RangeError', - message: '"length" is outside of buffer bounds', - } - ); - } - } else { - assert.throws(() => { sock.send(buf, 1, 1, -1, host); }, RangeError); - assert.throws(() => { sock.send(buf, 1, 1, 0, host); }, RangeError); - assert.throws(() => { sock.send(buf, 1, 1, 65536, host); }, RangeError); - } - - // send(buf, port, host) - assert.throws( - () => { sock.send(23, 12345, host); }, - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "buffer" argument must be of type string or an instance ' + - 'of Buffer, TypedArray, or DataView. Received type number (23)' - } - ); - - // send([buf1, ..], port, host) - assert.throws( - () => { sock.send([buf, 23], 12345, host); }, - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "buffer list arguments" argument must be of type string ' + - 'or an instance of Buffer, TypedArray, or DataView. ' + - 'Received an instance of Array' - } - ); -} - -checkArgs(); -sock.connect(12345, common.mustCall(() => { - checkArgs(true); - sock.close(); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-empty-address.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-empty-address.js deleted file mode 100644 index f04945597c..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-empty-address.js +++ /dev/null @@ -1,23 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const buf = Buffer.alloc(256, 'x'); - -const onMessage = common.mustSucceed((bytes) => { - assert.strictEqual(bytes, buf.length); - client.close(); -}); - -client.bind(0, () => client.send(buf, client.address().port, onMessage)); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js deleted file mode 100644 index bb7095b590..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js +++ /dev/null @@ -1,28 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -const dgram = require('dgram'); -const client = dgram.createSocket('udp4'); - -const buf = Buffer.alloc(256, 'x'); -const offset = 20; -const len = buf.length - offset; - -const onMessage = common.mustSucceed(function messageSent(bytes) { - assert.notStrictEqual(bytes, buf.length); - assert.strictEqual(bytes, buf.length - offset); - client.close(); -}); - -client.bind(0, () => client.send(buf, offset, len, - client.address().port, - onMessage)); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length.js deleted file mode 100644 index 03bb52a17e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length.js +++ /dev/null @@ -1,50 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -const dgram = require('dgram'); -const client = dgram.createSocket('udp4'); - -const buf = Buffer.allocUnsafe(256); -const offset = 20; -const len = buf.length - offset; - -const messageSent = common.mustSucceed(function messageSent(bytes) { - assert.notStrictEqual(bytes, buf.length); - assert.strictEqual(bytes, buf.length - offset); - client.close(); -}); - -client.bind(0, () => client.send(buf, offset, len, - client.address().port, - '127.0.0.1', - messageSent)); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer.js deleted file mode 100644 index c486df86b5..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer.js +++ /dev/null @@ -1,26 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const buf = Buffer.allocUnsafe(256); - -const onMessage = common.mustSucceed((bytes) => { - assert.strictEqual(bytes, buf.length); - client.close(); -}); - -client.bind(0, () => client.send(buf, - client.address().port, - common.localhostIPv4, - onMessage)); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js deleted file mode 100644 index 33bb8d7f4e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js +++ /dev/null @@ -1,34 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const messageSent = common.mustSucceed(function messageSent(bytes) { - assert.strictEqual(bytes, buf1.length + buf2.length); -}); - -const buf1 = Buffer.alloc(256, 'x'); -const buf2 = Buffer.alloc(256, 'y'); - -client.on('listening', function() { - const port = this.address().port; - client.send([buf1, buf2], port, messageSent); -}); - -client.on('message', common.mustCall(function onMessage(buf) { - const expected = Buffer.concat([buf1, buf2]); - assert.ok(buf.equals(expected), 'message was received correctly'); - client.close(); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer.js deleted file mode 100644 index 3f6e793619..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer.js +++ /dev/null @@ -1,34 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const messageSent = common.mustCall((err, bytes) => { - assert.strictEqual(bytes, buf1.length + buf2.length); -}); - -const buf1 = Buffer.alloc(256, 'x'); -const buf2 = Buffer.alloc(256, 'y'); - -client.on('listening', () => { - const port = client.address().port; - client.send([buf1, buf2], port, common.localhostIPv4, messageSent); -}); - -client.on('message', common.mustCall((buf, info) => { - const expected = Buffer.concat([buf1, buf2]); - assert.ok(buf.equals(expected), 'message was received correctly'); - client.close(); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-recursive.js b/cli/tests/node_compat/test/parallel/test-dgram-send-callback-recursive.js deleted file mode 100644 index 6752cbf4ab..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-callback-recursive.js +++ /dev/null @@ -1,50 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); - -const dgram = require('dgram'); -const client = dgram.createSocket('udp4'); -const chunk = 'abc'; -let received = 0; -let sent = 0; -const limit = 10; -let async = false; -let port; - -function onsend() { - if (sent++ < limit) { - client.send(chunk, 0, chunk.length, port, common.localhostIPv4, onsend); - } else { - assert.strictEqual(async, true); - } -} - -client.on('listening', function() { - port = this.address().port; - - process.nextTick(() => { - async = true; - }); - - onsend(); -}); - -client.on('message', (buf, info) => { - received++; - if (received === limit) { - client.close(); - } -}); - -client.on('close', common.mustCall(function() { - assert.strictEqual(received, limit); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-default-host.js b/cli/tests/node_compat/test/parallel/test-dgram-send-default-host.js deleted file mode 100644 index 694531347c..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-default-host.js +++ /dev/null @@ -1,79 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const toSend = [Buffer.alloc(256, 'x'), - Buffer.alloc(256, 'y'), - Buffer.alloc(256, 'z'), - 'hello']; - -const received = []; -let totalBytesSent = 0; -let totalBytesReceived = 0; -const arrayBufferViewsCount = common.getArrayBufferViews( - Buffer.from('') -).length; - -client.on('listening', common.mustCall(() => { - const port = client.address().port; - - client.send(toSend[0], 0, toSend[0].length, port); - client.send(toSend[1], port); - client.send([toSend[2]], port); - client.send(toSend[3], 0, toSend[3].length, port); - - totalBytesSent += toSend.map((buf) => buf.length) - .reduce((a, b) => a + b, 0); - - for (const msgBuf of common.getArrayBufferViews(toSend[0])) { - client.send(msgBuf, 0, msgBuf.byteLength, port); - totalBytesSent += msgBuf.byteLength; - } - for (const msgBuf of common.getArrayBufferViews(toSend[1])) { - client.send(msgBuf, port); - totalBytesSent += msgBuf.byteLength; - } - for (const msgBuf of common.getArrayBufferViews(toSend[2])) { - client.send([msgBuf], port); - totalBytesSent += msgBuf.byteLength; - } -})); - -client.on('message', common.mustCall((buf, info) => { - received.push(buf.toString()); - totalBytesReceived += info.size; - - if (totalBytesReceived === totalBytesSent) { - client.close(); - } - // For every buffer in `toSend`, we send the raw Buffer, - // as well as every TypedArray in getArrayBufferViews() -}, toSend.length + (toSend.length - 1) * arrayBufferViewsCount)); - -client.on('close', common.mustCall((buf, info) => { - // The replies may arrive out of order -> sort them before checking. - received.sort(); - - const repeated = [...toSend]; - for (let i = 0; i < arrayBufferViewsCount; i++) { - repeated.push(...toSend.slice(0, 3)); - } - - assert.strictEqual(totalBytesSent, totalBytesReceived); - - const expected = repeated.map(String).sort(); - assert.deepStrictEqual(received, expected); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-array.js b/cli/tests/node_compat/test/parallel/test-dgram-send-empty-array.js deleted file mode 100644 index 6554cb5012..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-array.js +++ /dev/null @@ -1,32 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -let interval; - -client.on('message', common.mustCall(function onMessage(buf, info) { - const expected = Buffer.alloc(0); - assert.ok(buf.equals(expected), `Expected empty message but got ${buf}`); - clearInterval(interval); - client.close(); -})); - -client.on('listening', common.mustCall(function() { - interval = setInterval(function() { - client.send([], client.address().port, common.localhostIPv4); - }, 10); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-buffer.js b/cli/tests/node_compat/test/parallel/test-dgram-send-empty-buffer.js deleted file mode 100644 index 55ed56e5b7..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-buffer.js +++ /dev/null @@ -1,50 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -client.bind(0, common.mustCall(function() { - const port = this.address().port; - - client.on('message', common.mustCall(function onMessage(buffer) { - assert.strictEqual(buffer.length, 0); - clearInterval(interval); - client.close(); - })); - - const buf = Buffer.alloc(0); - const interval = setInterval(function() { - client.send(buf, 0, 0, port, '127.0.0.1', common.mustCall()); - }, 10); -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-packet.js b/cli/tests/node_compat/test/parallel/test-dgram-send-empty-packet.js deleted file mode 100644 index 78789a71a6..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-empty-packet.js +++ /dev/null @@ -1,36 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -client.bind(0, common.mustCall(function() { - - client.on('message', common.mustCall(callback)); - - const port = this.address().port; - const buf = Buffer.alloc(1); - - const interval = setInterval(function() { - client.send(buf, 0, 0, port, '127.0.0.1', common.mustCall(callback)); - }, 10); - - function callback(firstArg) { - // If client.send() callback, firstArg should be null. - // If client.on('message') listener, firstArg should be a 0-length buffer. - if (firstArg instanceof Buffer) { - assert.strictEqual(firstArg.length, 0); - clearInterval(interval); - client.close(); - } - } -})); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-error.js b/cli/tests/node_compat/test/parallel/test-dgram-send-error.js deleted file mode 100644 index 409097d082..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-error.js +++ /dev/null @@ -1,77 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const { internalBinding } = require('internal/test/binding'); -const { UV_UNKNOWN } = internalBinding('uv'); -const { getSystemErrorName } = require('util'); -const { kStateSymbol } = require('internal/dgram'); -const mockError = new Error('mock DNS error'); - -function getSocket(callback) { - const socket = dgram.createSocket('udp4'); - - socket.on('message', common.mustNotCall('Should not receive any messages.')); - socket.bind(common.mustCall(() => { - socket[kStateSymbol].handle.lookup = function(address, callback) { - process.nextTick(callback, mockError); - }; - - callback(socket); - })); - return socket; -} - -getSocket((socket) => { - socket.on('error', common.mustCall((err) => { - socket.close(); - assert.strictEqual(err, mockError); - })); - - socket.send('foo', socket.address().port, 'localhost'); -}); - -getSocket((socket) => { - const callback = common.mustCall((err) => { - socket.close(); - assert.strictEqual(err, mockError); - }); - - socket.send('foo', socket.address().port, 'localhost', callback); -}); - -{ - const socket = dgram.createSocket('udp4'); - - socket.on('message', common.mustNotCall('Should not receive any messages.')); - - socket.bind(common.mustCall(() => { - const port = socket.address().port; - const callback = common.mustCall((err) => { - socket.close(); - assert.strictEqual(err.code, 'UNKNOWN'); - assert.strictEqual(getSystemErrorName(err.errno), 'UNKNOWN'); - assert.strictEqual(err.syscall, 'send'); - assert.strictEqual(err.address, common.localhostIPv4); - assert.strictEqual(err.port, port); - assert.strictEqual( - err.message, - `${err.syscall} ${err.code} ${err.address}:${err.port}` - ); - }); - - socket[kStateSymbol].handle.send = function() { - return UV_UNKNOWN; - }; - - socket.send('foo', port, common.localhostIPv4, callback); - })); -} diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-invalid-msg-type.js b/cli/tests/node_compat/test/parallel/test-dgram-send-invalid-msg-type.js deleted file mode 100644 index 49d79c46ad..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-invalid-msg-type.js +++ /dev/null @@ -1,43 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -require('../common'); - -// This test ensures that a TypeError is raised when the argument to `send()` -// or `sendto()` is anything but a Buffer. -// https://github.com/nodejs/node-v0.x-archive/issues/4496 - -const assert = require('assert'); -const dgram = require('dgram'); - -// Should throw but not crash. -const socket = dgram.createSocket('udp4'); -assert.throws(function() { socket.send(true, 0, 1, 1, 'host'); }, TypeError); -assert.throws(function() { socket.sendto(5, 0, 1, 1, 'host'); }, TypeError); -socket.close(); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-multi-buffer-copy.js b/cli/tests/node_compat/test/parallel/test-dgram-send-multi-buffer-copy.js deleted file mode 100644 index 437c1dc349..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-multi-buffer-copy.js +++ /dev/null @@ -1,35 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp4'); - -const onMessage = common.mustCall(function(err, bytes) { - assert.strictEqual(bytes, buf1.length + buf2.length); -}); - -const buf1 = Buffer.alloc(256, 'x'); -const buf2 = Buffer.alloc(256, 'y'); - -client.on('listening', function() { - const toSend = [buf1, buf2]; - client.send(toSend, this.address().port, common.localhostIPv4, onMessage); - toSend.splice(0, 2); -}); - -client.on('message', common.mustCall(function onMessage(buf, info) { - const expected = Buffer.concat([buf1, buf2]); - assert.ok(buf.equals(expected), 'message was received correctly'); - client.close(); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-send-multi-string-array.js b/cli/tests/node_compat/test/parallel/test-dgram-send-multi-string-array.js deleted file mode 100644 index 9754c90eb6..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-send-multi-string-array.js +++ /dev/null @@ -1,20 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const socket = dgram.createSocket('udp4'); -const data = ['foo', 'bar', 'baz']; - -socket.on('message', common.mustCall((msg, rinfo) => { - socket.close(); - assert.deepStrictEqual(msg.toString(), data.join('')); -})); - -socket.bind(() => socket.send(data, socket.address().port, 'localhost')); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-udp4.js b/cli/tests/node_compat/test/parallel/test-dgram-udp4.js deleted file mode 100644 index ebe5c2169e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-udp4.js +++ /dev/null @@ -1,59 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); -const message_to_send = 'A message to send'; - -const server = dgram.createSocket('udp4'); -server.on('message', common.mustCall((msg, rinfo) => { - assert.strictEqual(rinfo.address, common.localhostIPv4); - assert.strictEqual(msg.toString(), message_to_send.toString()); - server.send(msg, 0, msg.length, rinfo.port, rinfo.address); -})); -server.on('listening', common.mustCall(() => { - const client = dgram.createSocket('udp4'); - const port = server.address().port; - client.on('message', common.mustCall((msg, rinfo) => { - assert.strictEqual(rinfo.address, common.localhostIPv4); - assert.strictEqual(rinfo.port, port); - assert.strictEqual(msg.toString(), message_to_send.toString()); - client.close(); - server.close(); - })); - client.send(message_to_send, - 0, - message_to_send.length, - port, - 'localhost'); - client.on('close', common.mustCall()); -})); -server.on('close', common.mustCall()); -server.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-dgram-udp6-send-default-host.js b/cli/tests/node_compat/test/parallel/test-dgram-udp6-send-default-host.js deleted file mode 100644 index 94c9983ea8..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dgram-udp6-send-default-host.js +++ /dev/null @@ -1,83 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -if (!common.hasIPv6) - common.skip('no IPv6 support'); - -const assert = require('assert'); -const dgram = require('dgram'); - -const client = dgram.createSocket('udp6'); - -const toSend = [Buffer.alloc(256, 'x'), - Buffer.alloc(256, 'y'), - Buffer.alloc(256, 'z'), - 'hello']; - -const received = []; -let totalBytesSent = 0; -let totalBytesReceived = 0; -const arrayBufferViewLength = common.getArrayBufferViews( - Buffer.from('') -).length; - -client.on('listening', common.mustCall(() => { - const port = client.address().port; - - client.send(toSend[0], 0, toSend[0].length, port); - client.send(toSend[1], port); - client.send([toSend[2]], port); - client.send(toSend[3], 0, toSend[3].length, port); - - totalBytesSent += toSend.map((buf) => buf.length) - .reduce((a, b) => a + b, 0); - - for (const msgBuf of common.getArrayBufferViews(toSend[0])) { - client.send(msgBuf, 0, msgBuf.byteLength, port); - totalBytesSent += msgBuf.byteLength; - } - for (const msgBuf of common.getArrayBufferViews(toSend[1])) { - client.send(msgBuf, port); - totalBytesSent += msgBuf.byteLength; - } - for (const msgBuf of common.getArrayBufferViews(toSend[2])) { - client.send([msgBuf], port); - totalBytesSent += msgBuf.byteLength; - } -})); - -client.on('message', common.mustCall((buf, info) => { - received.push(buf.toString()); - totalBytesReceived += info.size; - - if (totalBytesReceived === totalBytesSent) { - client.close(); - } - // For every buffer in `toSend`, we send the raw Buffer, - // as well as every TypedArray in getArrayBufferViews() -}, toSend.length + (toSend.length - 1) * arrayBufferViewLength)); - -client.on('close', common.mustCall((buf, info) => { - // The replies may arrive out of order -> sort them before checking. - received.sort(); - - const repeated = [...toSend]; - for (let i = 0; i < arrayBufferViewLength; i++) { - // We get arrayBufferViews only for toSend[0..2]. - repeated.push(...toSend.slice(0, 3)); - } - - assert.strictEqual(totalBytesSent, totalBytesReceived); - - const expected = repeated.map(String).sort(); - assert.deepStrictEqual(received, expected); -})); - -client.bind(0); diff --git a/cli/tests/node_compat/test/parallel/test-diagnostics-channel-net.js b/cli/tests/node_compat/test/parallel/test-diagnostics-channel-net.js deleted file mode 100644 index 05405efdea..0000000000 --- a/cli/tests/node_compat/test/parallel/test-diagnostics-channel-net.js +++ /dev/null @@ -1,32 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); -const dc = require('diagnostics_channel'); - -const isNetSocket = (socket) => socket instanceof net.Socket; - -dc.subscribe('net.client.socket', common.mustCall(({ socket }) => { - assert.strictEqual(isNetSocket(socket), true); -})); - -dc.subscribe('net.server.socket', common.mustCall(({ socket }) => { - assert.strictEqual(isNetSocket(socket), true); -})); - -const server = net.createServer(common.mustCall((socket) => { - socket.destroy(); - server.close(); -})); - -server.listen(() => { - const { port } = server.address(); - net.connect(port); -}); diff --git a/cli/tests/node_compat/test/parallel/test-dns-multi-channel.js b/cli/tests/node_compat/test/parallel/test-dns-multi-channel.js deleted file mode 100644 index 65d0a2f3a7..0000000000 --- a/cli/tests/node_compat/test/parallel/test-dns-multi-channel.js +++ /dev/null @@ -1,59 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const dnstools = require('../common/dns'); -const { Resolver } = require('dns'); -const assert = require('assert'); -const dgram = require('dgram'); - -const servers = [ - { - socket: dgram.createSocket('udp4'), - reply: { type: 'A', address: '1.2.3.4', ttl: 123, domain: 'example.org' } - }, - { - socket: dgram.createSocket('udp4'), - reply: { type: 'A', address: '5.6.7.8', ttl: 123, domain: 'example.org' } - }, -]; - -let waiting = servers.length; -for (const { socket, reply } of servers) { - socket.on('message', common.mustCall((msg, { address, port }) => { - const parsed = dnstools.parseDNSPacket(msg); - const domain = parsed.questions[0].domain; - assert.strictEqual(domain, 'example.org'); - - socket.send(dnstools.writeDNSPacket({ - id: parsed.id, - questions: parsed.questions, - answers: [reply], - }), port, address); - })); - - socket.bind(0, common.mustCall(() => { - if (--waiting === 0) ready(); - })); -} - - -function ready() { - const resolvers = servers.map((server) => ({ - server, - resolver: new Resolver() - })); - - for (const { server: { socket, reply }, resolver } of resolvers) { - resolver.setServers([`127.0.0.1:${socket.address().port}`]); - resolver.resolve4('example.org', common.mustSucceed((res) => { - assert.deepStrictEqual(res, [reply.address]); - socket.close(); - })); - } -} diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-check-listener-leaks.js b/cli/tests/node_compat/test/parallel/test-event-emitter-check-listener-leaks.js deleted file mode 100644 index 977667abda..0000000000 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-check-listener-leaks.js +++ /dev/null @@ -1,110 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const events = require('events'); - -// default -{ - const e = new events.EventEmitter(); - - for (let i = 0; i < 10; i++) { - e.on('default', common.mustNotCall()); - } - assert.ok(!Object.hasOwn(e._events.default, 'warned')); - e.on('default', common.mustNotCall()); - assert.ok(e._events.default.warned); - - // symbol - const symbol = Symbol('symbol'); - e.setMaxListeners(1); - e.on(symbol, common.mustNotCall()); - assert.ok(!Object.hasOwn(e._events[symbol], 'warned')); - e.on(symbol, common.mustNotCall()); - assert.ok(Object.hasOwn(e._events[symbol], 'warned')); - - // specific - e.setMaxListeners(5); - for (let i = 0; i < 5; i++) { - e.on('specific', common.mustNotCall()); - } - assert.ok(!Object.hasOwn(e._events.specific, 'warned')); - e.on('specific', common.mustNotCall()); - assert.ok(e._events.specific.warned); - - // only one - e.setMaxListeners(1); - e.on('only one', common.mustNotCall()); - assert.ok(!Object.hasOwn(e._events['only one'], 'warned')); - e.on('only one', common.mustNotCall()); - assert.ok(Object.hasOwn(e._events['only one'], 'warned')); - - // unlimited - e.setMaxListeners(0); - for (let i = 0; i < 1000; i++) { - e.on('unlimited', common.mustNotCall()); - } - assert.ok(!Object.hasOwn(e._events.unlimited, 'warned')); -} - -// process-wide -{ - events.EventEmitter.defaultMaxListeners = 42; - const e = new events.EventEmitter(); - - for (let i = 0; i < 42; ++i) { - e.on('fortytwo', common.mustNotCall()); - } - assert.ok(!Object.hasOwn(e._events.fortytwo, 'warned')); - e.on('fortytwo', common.mustNotCall()); - assert.ok(Object.hasOwn(e._events.fortytwo, 'warned')); - delete e._events.fortytwo.warned; - - events.EventEmitter.defaultMaxListeners = 44; - e.on('fortytwo', common.mustNotCall()); - assert.ok(!Object.hasOwn(e._events.fortytwo, 'warned')); - e.on('fortytwo', common.mustNotCall()); - assert.ok(Object.hasOwn(e._events.fortytwo, 'warned')); -} - -// But _maxListeners still has precedence over defaultMaxListeners -{ - events.EventEmitter.defaultMaxListeners = 42; - const e = new events.EventEmitter(); - e.setMaxListeners(1); - e.on('uno', common.mustNotCall()); - assert.ok(!Object.hasOwn(e._events.uno, 'warned')); - e.on('uno', common.mustNotCall()); - assert.ok(Object.hasOwn(e._events.uno, 'warned')); - - // chainable - assert.strictEqual(e, e.setMaxListeners(1)); -} diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-null.js b/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-null.js deleted file mode 100644 index 0a17f5e719..0000000000 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-null.js +++ /dev/null @@ -1,30 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --no-warnings -// The flag suppresses stderr output but the warning event will still emit -'use strict'; - -const common = require('../common'); -const events = require('events'); -const assert = require('assert'); - -const e = new events.EventEmitter(); -e.setMaxListeners(1); - -process.on('warning', common.mustCall((warning) => { - assert.ok(warning instanceof Error); - assert.strictEqual(warning.name, 'MaxListenersExceededWarning'); - assert.strictEqual(warning.emitter, e); - assert.strictEqual(warning.count, 2); - assert.strictEqual(warning.type, null); - assert.ok(warning.message.includes( - '2 null listeners added to [EventEmitter].')); -})); - -e.on(null, () => {}); -e.on(null, () => {}); diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js b/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js deleted file mode 100644 index 2bc5832e5e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js +++ /dev/null @@ -1,32 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --no-warnings -// The flag suppresses stderr output but the warning event will still emit -'use strict'; - -const common = require('../common'); -const events = require('events'); -const assert = require('assert'); - -const symbol = Symbol('symbol'); - -const e = new events.EventEmitter(); -e.setMaxListeners(1); - -process.on('warning', common.mustCall((warning) => { - assert.ok(warning instanceof Error); - assert.strictEqual(warning.name, 'MaxListenersExceededWarning'); - assert.strictEqual(warning.emitter, e); - assert.strictEqual(warning.count, 2); - assert.strictEqual(warning.type, symbol); - assert.ok(warning.message.includes( - '2 Symbol(symbol) listeners added to [EventEmitter].')); -})); - -e.on(symbol, () => {}); -e.on(symbol, () => {}); diff --git a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning.js b/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning.js deleted file mode 100644 index f1a391402f..0000000000 --- a/cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning.js +++ /dev/null @@ -1,38 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --no-warnings -// The flag suppresses stderr output but the warning event will still emit -'use strict'; - -const common = require('../common'); -const events = require('events'); -const assert = require('assert'); - -class FakeInput extends events.EventEmitter { - resume() {} - pause() {} - write() {} - end() {} -} - -const e = new FakeInput(); -e.setMaxListeners(1); - -process.on('warning', common.mustCall((warning) => { - assert.ok(warning instanceof Error); - assert.strictEqual(warning.name, 'MaxListenersExceededWarning'); - assert.strictEqual(warning.emitter, e); - assert.strictEqual(warning.count, 2); - assert.strictEqual(warning.type, 'event-type'); - assert.ok(warning.message.includes( - '2 event-type listeners added to [FakeInput].')); -})); - -e.on('event-type', () => {}); -e.on('event-type', () => {}); // Trigger warning. -e.on('event-type', () => {}); // Verify that warning is emitted only once. diff --git a/cli/tests/node_compat/test/parallel/test-fs-rm.js b/cli/tests/node_compat/test/parallel/test-fs-rm.js deleted file mode 100644 index d1b29b623a..0000000000 --- a/cli/tests/node_compat/test/parallel/test-fs-rm.js +++ /dev/null @@ -1,433 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; -const common = require('../common'); -const tmpdir = require('../common/tmpdir'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); -const { pathToFileURL } = require('url'); -const { execSync } = require('child_process'); - -const { validateRmOptionsSync } = require('internal/fs/utils'); - -tmpdir.refresh(); - -let count = 0; -const nextDirPath = (name = 'rm') => - path.join(tmpdir.path, `${name}-${count++}`); - -const isGitPresent = (() => { - try { execSync('git --version'); return true; } catch { return false; } -})(); - -function gitInit(gitDirectory) { - fs.mkdirSync(gitDirectory); - execSync('git init', common.mustNotMutateObjectDeep({ cwd: gitDirectory })); -} - -function makeNonEmptyDirectory(depth, files, folders, dirname, createSymLinks) { - fs.mkdirSync(dirname, common.mustNotMutateObjectDeep({ recursive: true })); - fs.writeFileSync(path.join(dirname, 'text.txt'), 'hello', 'utf8'); - - const options = common.mustNotMutateObjectDeep({ flag: 'wx' }); - - for (let f = files; f > 0; f--) { - fs.writeFileSync(path.join(dirname, `f-${depth}-${f}`), '', options); - } - - if (createSymLinks) { - // Valid symlink - fs.symlinkSync( - `f-${depth}-1`, - path.join(dirname, `link-${depth}-good`), - 'file' - ); - - // Invalid symlink - fs.symlinkSync( - 'does-not-exist', - path.join(dirname, `link-${depth}-bad`), - 'file' - ); - } - - // File with a name that looks like a glob - fs.writeFileSync(path.join(dirname, '[a-z0-9].txt'), '', options); - - depth--; - if (depth <= 0) { - return; - } - - for (let f = folders; f > 0; f--) { - fs.mkdirSync( - path.join(dirname, `folder-${depth}-${f}`), - { recursive: true } - ); - makeNonEmptyDirectory( - depth, - files, - folders, - path.join(dirname, `d-${depth}-${f}`), - createSymLinks - ); - } -} - -function removeAsync(dir) { - // Removal should fail without the recursive option. - fs.rm(dir, common.mustCall((err) => { - assert.strictEqual(err.syscall, 'rm'); - - // Removal should fail without the recursive option set to true. - fs.rm(dir, common.mustNotMutateObjectDeep({ recursive: false }), common.mustCall((err) => { - assert.strictEqual(err.syscall, 'rm'); - - // Recursive removal should succeed. - fs.rm(dir, common.mustNotMutateObjectDeep({ recursive: true }), common.mustSucceed(() => { - - // Attempted removal should fail now because the directory is gone. - fs.rm(dir, common.mustCall((err) => { - assert.strictEqual(err.syscall, 'stat'); - })); - })); - })); - })); -} - -// Test the asynchronous version -{ - // Create a 4-level folder hierarchy including symlinks - let dir = nextDirPath(); - makeNonEmptyDirectory(4, 10, 2, dir, true); - removeAsync(dir); - - // Create a 2-level folder hierarchy without symlinks - dir = nextDirPath(); - makeNonEmptyDirectory(2, 10, 2, dir, false); - removeAsync(dir); - - // Same test using URL instead of a path - dir = nextDirPath(); - makeNonEmptyDirectory(2, 10, 2, dir, false); - removeAsync(pathToFileURL(dir)); - - // Create a flat folder including symlinks - dir = nextDirPath(); - makeNonEmptyDirectory(1, 10, 2, dir, true); - removeAsync(dir); - - // Should fail if target does not exist - fs.rm( - path.join(tmpdir.path, 'noexist.txt'), - common.mustNotMutateObjectDeep({ recursive: true }), - common.mustCall((err) => { - assert.strictEqual(err.code, 'ENOENT'); - }) - ); - - // Should delete a file - const filePath = path.join(tmpdir.path, 'rm-async-file.txt'); - fs.writeFileSync(filePath, ''); - fs.rm(filePath, common.mustNotMutateObjectDeep({ recursive: true }), common.mustCall((err) => { - try { - assert.strictEqual(err, null); - assert.strictEqual(fs.existsSync(filePath), false); - } finally { - fs.rmSync(filePath, common.mustNotMutateObjectDeep({ force: true })); - } - })); -} - -// Removing a .git directory should not throw an EPERM. -// Refs: https://github.com/isaacs/rimraf/issues/21. -if (isGitPresent) { - const gitDirectory = nextDirPath(); - gitInit(gitDirectory); - fs.rm(gitDirectory, common.mustNotMutateObjectDeep({ recursive: true }), common.mustSucceed(() => { - assert.strictEqual(fs.existsSync(gitDirectory), false); - })); -} - -// Test the synchronous version. -{ - const dir = nextDirPath(); - makeNonEmptyDirectory(4, 10, 2, dir, true); - - // Removal should fail without the recursive option set to true. - assert.throws(() => { - fs.rmSync(dir); - }, { syscall: 'rm' }); - assert.throws(() => { - fs.rmSync(dir, common.mustNotMutateObjectDeep({ recursive: false })); - }, { syscall: 'rm' }); - - // Should fail if target does not exist - assert.throws(() => { - fs.rmSync(path.join(tmpdir.path, 'noexist.txt'), common.mustNotMutateObjectDeep({ recursive: true })); - }, { - code: 'ENOENT', - name: 'Error', - message: /^ENOENT: no such file or directory, stat/ - }); - - // Should delete a file - const filePath = path.join(tmpdir.path, 'rm-file.txt'); - fs.writeFileSync(filePath, ''); - - try { - fs.rmSync(filePath, common.mustNotMutateObjectDeep({ recursive: true })); - } finally { - fs.rmSync(filePath, common.mustNotMutateObjectDeep({ force: true })); - } - - // Should accept URL - const fileURL = pathToFileURL(path.join(tmpdir.path, 'rm-file.txt')); - fs.writeFileSync(fileURL, ''); - - try { - fs.rmSync(fileURL, common.mustNotMutateObjectDeep({ recursive: true })); - } finally { - fs.rmSync(fileURL, common.mustNotMutateObjectDeep({ force: true })); - } - - // Recursive removal should succeed. - fs.rmSync(dir, { recursive: true }); - - // Attempted removal should fail now because the directory is gone. - assert.throws(() => fs.rmSync(dir), { syscall: 'stat' }); -} - -// Removing a .git directory should not throw an EPERM. -// Refs: https://github.com/isaacs/rimraf/issues/21. -if (isGitPresent) { - const gitDirectory = nextDirPath(); - gitInit(gitDirectory); - fs.rmSync(gitDirectory, common.mustNotMutateObjectDeep({ recursive: true })); - assert.strictEqual(fs.existsSync(gitDirectory), false); -} - -// Test the Promises based version. -(async () => { - const dir = nextDirPath(); - makeNonEmptyDirectory(4, 10, 2, dir, true); - - // Removal should fail without the recursive option set to true. - await assert.rejects(fs.promises.rm(dir), { syscall: 'rm' }); - await assert.rejects(fs.promises.rm(dir, common.mustNotMutateObjectDeep({ recursive: false })), { - syscall: 'rm' - }); - - // Recursive removal should succeed. - await fs.promises.rm(dir, common.mustNotMutateObjectDeep({ recursive: true })); - - // Attempted removal should fail now because the directory is gone. - await assert.rejects(fs.promises.rm(dir), { syscall: 'stat' }); - - // Should fail if target does not exist - await assert.rejects(fs.promises.rm( - path.join(tmpdir.path, 'noexist.txt'), - { recursive: true } - ), { - code: 'ENOENT', - name: 'Error', - message: /^ENOENT: no such file or directory, stat/ - }); - - // Should not fail if target does not exist and force option is true - await fs.promises.rm(path.join(tmpdir.path, 'noexist.txt'), common.mustNotMutateObjectDeep({ force: true })); - - // Should delete file - const filePath = path.join(tmpdir.path, 'rm-promises-file.txt'); - fs.writeFileSync(filePath, ''); - - try { - await fs.promises.rm(filePath, common.mustNotMutateObjectDeep({ recursive: true })); - } finally { - fs.rmSync(filePath, common.mustNotMutateObjectDeep({ force: true })); - } - - // Should accept URL - const fileURL = pathToFileURL(path.join(tmpdir.path, 'rm-promises-file.txt')); - fs.writeFileSync(fileURL, ''); - - try { - await fs.promises.rm(fileURL, common.mustNotMutateObjectDeep({ recursive: true })); - } finally { - fs.rmSync(fileURL, common.mustNotMutateObjectDeep({ force: true })); - } -})().then(common.mustCall()); - -// Removing a .git directory should not throw an EPERM. -// Refs: https://github.com/isaacs/rimraf/issues/21. -if (isGitPresent) { - (async () => { - const gitDirectory = nextDirPath(); - gitInit(gitDirectory); - await fs.promises.rm(gitDirectory, common.mustNotMutateObjectDeep({ recursive: true })); - assert.strictEqual(fs.existsSync(gitDirectory), false); - })().then(common.mustCall()); -} - -// Test input validation. -{ - const dir = nextDirPath(); - makeNonEmptyDirectory(4, 10, 2, dir, true); - const filePath = (path.join(tmpdir.path, 'rm-args-file.txt')); - fs.writeFileSync(filePath, ''); - - const defaults = { - retryDelay: 100, - maxRetries: 0, - recursive: false, - force: false - }; - const modified = { - retryDelay: 953, - maxRetries: 5, - recursive: true, - force: false - }; - - assert.deepStrictEqual(validateRmOptionsSync(filePath), defaults); - assert.deepStrictEqual(validateRmOptionsSync(filePath, {}), defaults); - assert.deepStrictEqual(validateRmOptionsSync(filePath, modified), modified); - assert.deepStrictEqual(validateRmOptionsSync(filePath, { - maxRetries: 99 - }), { - retryDelay: 100, - maxRetries: 99, - recursive: false, - force: false - }); - - [null, 'foo', 5, NaN].forEach((bad) => { - assert.throws(() => { - validateRmOptionsSync(filePath, bad); - }, { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: /^The "options" argument must be of type object\./ - }); - }); - - [undefined, null, 'foo', Infinity, function() {}].forEach((bad) => { - assert.throws(() => { - validateRmOptionsSync(filePath, { recursive: bad }); - }, { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: /^The "options\.recursive" property must be of type boolean\./ - }); - }); - - [undefined, null, 'foo', Infinity, function() {}].forEach((bad) => { - assert.throws(() => { - validateRmOptionsSync(filePath, { force: bad }); - }, { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: /^The "options\.force" property must be of type boolean\./ - }); - }); - - assert.throws(() => { - validateRmOptionsSync(filePath, { retryDelay: -1 }); - }, { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - message: /^The value of "options\.retryDelay" is out of range\./ - }); - - assert.throws(() => { - validateRmOptionsSync(filePath, { maxRetries: -1 }); - }, { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - message: /^The value of "options\.maxRetries" is out of range\./ - }); -} - -{ - // IBMi has a different access permission mechanism - // This test should not be run as `root` - if (!common.isIBMi && (common.isWindows || process.getuid() !== 0)) { - function makeDirectoryReadOnly(dir, mode) { - let accessErrorCode = 'EACCES'; - if (common.isWindows) { - accessErrorCode = 'EPERM'; - execSync(`icacls ${dir} /deny "everyone:(OI)(CI)(DE,DC)"`); - } else { - fs.chmodSync(dir, mode); - } - return accessErrorCode; - } - - function makeDirectoryWritable(dir) { - if (fs.existsSync(dir)) { - if (common.isWindows) { - execSync(`icacls ${dir} /remove:d "everyone"`); - } else { - fs.chmodSync(dir, 0o777); - } - } - } - - { - // Check that deleting a file that cannot be accessed using rmsync throws - // https://github.com/nodejs/node/issues/38683 - const dirname = nextDirPath(); - const filePath = path.join(dirname, 'text.txt'); - try { - fs.mkdirSync(dirname, common.mustNotMutateObjectDeep({ recursive: true })); - fs.writeFileSync(filePath, 'hello'); - const code = makeDirectoryReadOnly(dirname, 0o444); - assert.throws(() => { - fs.rmSync(filePath, common.mustNotMutateObjectDeep({ force: true })); - }, { - code, - name: 'Error', - }); - } finally { - makeDirectoryWritable(dirname); - } - } - - { - // Check endless recursion. - // https://github.com/nodejs/node/issues/34580 - const dirname = nextDirPath(); - fs.mkdirSync(dirname, common.mustNotMutateObjectDeep({ recursive: true })); - const root = fs.mkdtempSync(path.join(dirname, 'fs-')); - const middle = path.join(root, 'middle'); - fs.mkdirSync(middle); - fs.mkdirSync(path.join(middle, 'leaf')); // Make `middle` non-empty - try { - const code = makeDirectoryReadOnly(middle, 0o555); - try { - assert.throws(() => { - fs.rmSync(root, common.mustNotMutateObjectDeep({ recursive: true })); - }, { - code, - name: 'Error', - }); - } catch (err) { - // Only fail the test if the folder was not deleted. - // as in some cases rmSync succesfully deletes read-only folders. - if (fs.existsSync(root)) { - throw err; - } - } - } finally { - makeDirectoryWritable(middle); - } - } - } -} diff --git a/cli/tests/node_compat/test/parallel/test-fs-watch.js b/cli/tests/node_compat/test/parallel/test-fs-watch.js deleted file mode 100644 index 785d429112..0000000000 --- a/cli/tests/node_compat/test/parallel/test-fs-watch.js +++ /dev/null @@ -1,105 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -if (common.isIBMi) - common.skip('IBMi does not support `fs.watch()`'); - -// Tests if `filename` is provided to watcher on supported platforms - -const fs = require('fs'); -const assert = require('assert'); -const { join } = require('path'); - -class WatchTestCase { - constructor(shouldInclude, dirName, fileName, field) { - this.dirName = dirName; - this.fileName = fileName; - this.field = field; - this.shouldSkip = !shouldInclude; - } - get dirPath() { return join(tmpdir.path, this.dirName); } - get filePath() { return join(this.dirPath, this.fileName); } -} - -const cases = [ - // Watch on a file should callback with a filename on supported systems - new WatchTestCase( - common.isLinux || common.isOSX || common.isWindows || common.isAIX, - 'watch1', - 'foo', - 'filePath' - ), - // Watch on a directory should callback with a filename on supported systems - new WatchTestCase( - common.isLinux || common.isOSX || common.isWindows, - 'watch2', - 'bar', - 'dirPath' - ), -]; - -const tmpdir = require('../common/tmpdir'); -tmpdir.refresh(); - -for (const testCase of cases) { - if (testCase.shouldSkip) continue; - fs.mkdirSync(testCase.dirPath); - // Long content so it's actually flushed. - const content1 = Date.now() + testCase.fileName.toLowerCase().repeat(1e4); - fs.writeFileSync(testCase.filePath, content1); - - let interval; - const pathToWatch = testCase[testCase.field]; - const watcher = fs.watch(pathToWatch); - watcher.on('error', (err) => { - if (interval) { - clearInterval(interval); - interval = null; - } - assert.fail(err); - }); - watcher.on('close', common.mustCall(() => { - watcher.close(); // Closing a closed watcher should be a noop - })); - watcher.on('change', common.mustCall(function(eventType, argFilename) { - if (interval) { - clearInterval(interval); - interval = null; - } - if (common.isOSX) - assert.strictEqual(['rename', 'change'].includes(eventType), true); - else - assert.strictEqual(eventType, 'change'); - assert.strictEqual(argFilename, testCase.fileName); - - watcher.close(); - - // We document that watchers cannot be used anymore when it's closed, - // here we turn the methods into noops instead of throwing - watcher.close(); // Closing a closed watcher should be a noop - })); - - // Long content so it's actually flushed. toUpperCase so there's real change. - const content2 = Date.now() + testCase.fileName.toUpperCase().repeat(1e4); - interval = setInterval(() => { - fs.writeFileSync(testCase.filePath, ''); - fs.writeFileSync(testCase.filePath, content2); - }, 100); -} - -[false, 1, {}, [], null, undefined].forEach((input) => { - assert.throws( - () => fs.watch(input, common.mustNotCall()), - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - } - ); -}); diff --git a/cli/tests/node_compat/test/parallel/test-fs-writev.js b/cli/tests/node_compat/test/parallel/test-fs-writev.js deleted file mode 100644 index a0f3622cc2..0000000000 --- a/cli/tests/node_compat/test/parallel/test-fs-writev.js +++ /dev/null @@ -1,114 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const path = require('path'); -const fs = require('fs'); -const tmpdir = require('../common/tmpdir'); - -tmpdir.refresh(); - -const expected = 'ümlaut. Лорем 運務ホソモ指及 आपको करने विकास 紙読決多密所 أضف'; - -const getFileName = (i) => path.join(tmpdir.path, `writev_${i}.txt`); - -/** - * Testing with a array of buffers input - */ - -// fs.writev with array of buffers with all parameters -{ - const filename = getFileName(1); - const fd = fs.openSync(filename, 'w'); - - const buffer = Buffer.from(expected); - const bufferArr = [buffer, buffer]; - - const done = common.mustSucceed((written, buffers) => { - assert.deepStrictEqual(bufferArr, buffers); - const expectedLength = bufferArr.length * buffer.byteLength; - assert.deepStrictEqual(written, expectedLength); - fs.closeSync(fd); - - assert(Buffer.concat(bufferArr).equals(fs.readFileSync(filename))); - }); - - fs.writev(fd, bufferArr, null, done); -} - -// fs.writev with array of buffers without position -{ - const filename = getFileName(2); - const fd = fs.openSync(filename, 'w'); - - const buffer = Buffer.from(expected); - const bufferArr = [buffer, buffer]; - - const done = common.mustSucceed((written, buffers) => { - assert.deepStrictEqual(bufferArr, buffers); - - const expectedLength = bufferArr.length * buffer.byteLength; - assert.deepStrictEqual(written, expectedLength); - fs.closeSync(fd); - - assert(Buffer.concat(bufferArr).equals(fs.readFileSync(filename))); - }); - - fs.writev(fd, bufferArr, done); -} - - -// fs.writev with empty array of buffers -{ - const filename = getFileName(3); - const fd = fs.openSync(filename, 'w'); - const bufferArr = []; - let afterSyncCall = false; - - const done = common.mustSucceed((written, buffers) => { - assert.strictEqual(buffers.length, 0); - assert.strictEqual(written, 0); - assert(afterSyncCall); - fs.closeSync(fd); - }); - - fs.writev(fd, bufferArr, done); - afterSyncCall = true; -} - -/** - * Testing with wrong input types - */ -{ - const filename = getFileName(4); - const fd = fs.openSync(filename, 'w'); - - [false, 'test', {}, [{}], ['sdf'], null, undefined].forEach((i) => { - assert.throws( - () => fs.writev(fd, i, null, common.mustNotCall()), { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - } - ); - }); - - fs.closeSync(fd); -} - -// fs.writev with wrong fd types -[false, 'test', {}, [{}], null, undefined].forEach((i) => { - assert.throws( - () => fs.writev(i, common.mustNotCall()), - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - } - ); -}); diff --git a/cli/tests/node_compat/test/parallel/test-http-outgoing-destroy.js b/cli/tests/node_compat/test/parallel/test-http-outgoing-destroy.js deleted file mode 100644 index 52b41d9c39..0000000000 --- a/cli/tests/node_compat/test/parallel/test-http-outgoing-destroy.js +++ /dev/null @@ -1,24 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); - -const http = require('http'); -const OutgoingMessage = http.OutgoingMessage; - -{ - const msg = new OutgoingMessage(); - assert.strictEqual(msg.destroyed, false); - msg.destroy(); - assert.strictEqual(msg.destroyed, true); - msg.write('asd', common.mustCall((err) => { - assert.strictEqual(err.code, 'ERR_STREAM_DESTROYED'); - })); - msg.on('error', common.mustNotCall()); -} diff --git a/cli/tests/node_compat/test/parallel/test-http-outgoing-finish-writable.js b/cli/tests/node_compat/test/parallel/test-http-outgoing-finish-writable.js deleted file mode 100644 index f87a1130c7..0000000000 --- a/cli/tests/node_compat/test/parallel/test-http-outgoing-finish-writable.js +++ /dev/null @@ -1,47 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const http = require('http'); - -// Verify that after calling end() on an `OutgoingMessage` (or a type that -// inherits from `OutgoingMessage`), its `writable` property is not set to false - -const server = http.createServer(common.mustCall(function(req, res) { - assert.strictEqual(res.writable, true); - assert.strictEqual(res.finished, false); - assert.strictEqual(res.writableEnded, false); - res.end(); - - // res.writable is set to false after it has finished sending - // Ref: https://github.com/nodejs/node/issues/15029 - assert.strictEqual(res.writable, true); - assert.strictEqual(res.finished, true); - assert.strictEqual(res.writableEnded, true); - - server.close(); -})); - -server.listen(0); - -server.on('listening', common.mustCall(function() { - const clientRequest = http.request({ - port: server.address().port, - method: 'GET', - path: '/' - }); - - assert.strictEqual(clientRequest.writable, true); - clientRequest.end(); - - // Writable is still true when close - // THIS IS LEGACY, we cannot change it - // unless we break error detection - assert.strictEqual(clientRequest.writable, true); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-after-close.js b/cli/tests/node_compat/test/parallel/test-net-after-close.js deleted file mode 100644 index 9ffa68407e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-after-close.js +++ /dev/null @@ -1,58 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(common.mustCall((s) => { - console.error('SERVER: got connection'); - s.end(); -})); - -server.listen(0, common.mustCall(() => { - const c = net.createConnection(server.address().port); - c.on('close', common.mustCall(() => { - /* eslint-disable no-unused-expressions */ - console.error('connection closed'); - assert.strictEqual(c._handle, null); - // Calling functions / accessing properties of a closed socket should not - // throw. - c.setNoDelay(); - c.setKeepAlive(); - c.bufferSize; - c.pause(); - c.resume(); - c.address(); - c.remoteAddress; - c.remotePort; - server.close(); - /* eslint-enable no-unused-expressions */ - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-allow-half-open.js b/cli/tests/node_compat/test/parallel/test-net-allow-half-open.js deleted file mode 100644 index cfc2ec5520..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-allow-half-open.js +++ /dev/null @@ -1,54 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -{ - const server = net.createServer(common.mustCall((socket) => { - socket.end(Buffer.alloc(1024)); - })).listen(0, common.mustCall(() => { - const socket = net.connect(server.address().port); - assert.strictEqual(socket.allowHalfOpen, false); - socket.resume(); - socket.on('end', common.mustCall(() => { - process.nextTick(() => { - // Ensure socket is not destroyed straight away - // without proper shutdown. - assert(!socket.destroyed); - server.close(); - }); - })); - socket.on('finish', common.mustCall(() => { - assert(!socket.destroyed); - })); - socket.on('close', common.mustCall()); - })); -} - -{ - const server = net.createServer(common.mustCall((socket) => { - socket.end(Buffer.alloc(1024)); - })).listen(0, common.mustCall(() => { - const socket = net.connect(server.address().port); - assert.strictEqual(socket.allowHalfOpen, false); - socket.resume(); - socket.on('end', common.mustCall(() => { - assert(!socket.destroyed); - })); - socket.end('asd'); - socket.on('finish', common.mustCall(() => { - assert(!socket.destroyed); - })); - socket.on('close', common.mustCall(() => { - server.close(); - })); - })); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-better-error-messages-listen.js b/cli/tests/node_compat/test/parallel/test-net-better-error-messages-listen.js deleted file mode 100644 index 14febbcdf4..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-better-error-messages-listen.js +++ /dev/null @@ -1,19 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(common.mustNotCall()); -server.listen(1, '1.1.1.1', common.mustNotCall()); -server.on('error', common.mustCall(function(e) { - assert.strictEqual(e.address, '1.1.1.1'); - assert.strictEqual(e.port, 1); - assert.strictEqual(e.syscall, 'listen'); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-bind-twice.js b/cli/tests/node_compat/test/parallel/test-net-bind-twice.js deleted file mode 100644 index 6500f2aef7..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-bind-twice.js +++ /dev/null @@ -1,43 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server1 = net.createServer(common.mustNotCall()); -server1.listen(0, '127.0.0.1', common.mustCall(function() { - const server2 = net.createServer(common.mustNotCall()); - server2.listen(this.address().port, '127.0.0.1', common.mustNotCall()); - - server2.on('error', common.mustCall(function(e) { - assert.strictEqual(e.code, 'EADDRINUSE'); - server1.close(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-buffersize.js b/cli/tests/node_compat/test/parallel/test-net-buffersize.js deleted file mode 100644 index 0831fa5260..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-buffersize.js +++ /dev/null @@ -1,59 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const iter = 10; - -const server = net.createServer(function(socket) { - socket.on('readable', function() { - socket.read(); - }); - - socket.on('end', function() { - server.close(); - }); -}); - -server.listen(0, common.mustCall(function() { - const client = net.connect(this.address().port); - - client.on('finish', common.mustCall(() => { - assert.strictEqual(client.bufferSize, 0); - })); - - for (let i = 1; i < iter; i++) { - client.write('a'); - assert.strictEqual(client.bufferSize, i); - } - - client.end(); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-bytes-written-large.js b/cli/tests/node_compat/test/parallel/test-net-bytes-written-large.js deleted file mode 100644 index 98df17dca5..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-bytes-written-large.js +++ /dev/null @@ -1,74 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -// Regression test for https://github.com/nodejs/node/issues/19562: -// Writing to a socket first tries to push through as much data as possible -// without blocking synchronously, and, if that is not enough, queues more -// data up for asynchronous writing. -// Check that `bytesWritten` accounts for both parts of a write. - -const N = 10000000; -{ - // Variant 1: Write a Buffer. - const server = net.createServer(common.mustCall((socket) => { - socket.end(Buffer.alloc(N), common.mustCall(() => { - assert.strictEqual(socket.bytesWritten, N); - })); - assert.strictEqual(socket.bytesWritten, N); - })).listen(0, common.mustCall(() => { - const client = net.connect(server.address().port); - client.resume(); - client.on('close', common.mustCall(() => { - assert.strictEqual(client.bytesRead, N); - server.close(); - })); - })); -} - -{ - // Variant 2: Write a string. - const server = net.createServer(common.mustCall((socket) => { - socket.end('a'.repeat(N), common.mustCall(() => { - assert.strictEqual(socket.bytesWritten, N); - })); - assert.strictEqual(socket.bytesWritten, N); - })).listen(0, common.mustCall(() => { - const client = net.connect(server.address().port); - client.resume(); - client.on('close', common.mustCall(() => { - assert.strictEqual(client.bytesRead, N); - server.close(); - })); - })); -} - -{ - // Variant 2: writev() with mixed data. - const server = net.createServer(common.mustCall((socket) => { - socket.cork(); - socket.write('a'.repeat(N)); - assert.strictEqual(socket.bytesWritten, N); - socket.write(Buffer.alloc(N)); - assert.strictEqual(socket.bytesWritten, 2 * N); - socket.end('', common.mustCall(() => { - assert.strictEqual(socket.bytesWritten, 2 * N); - })); - socket.uncork(); - })).listen(0, common.mustCall(() => { - const client = net.connect(server.address().port); - client.resume(); - client.on('close', common.mustCall(() => { - assert.strictEqual(client.bytesRead, 2 * N); - server.close(); - })); - })); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-can-reset-timeout.js b/cli/tests/node_compat/test/parallel/test-net-can-reset-timeout.js deleted file mode 100644 index 535a86a10d..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-can-reset-timeout.js +++ /dev/null @@ -1,64 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); - -// Ref: https://github.com/nodejs/node-v0.x-archive/issues/481 - -const net = require('net'); - -const server = net.createServer(common.mustCall(function(stream) { - stream.setTimeout(100); - - stream.resume(); - - stream.once('timeout', common.mustCall(function() { - console.log('timeout'); - // Try to reset the timeout. - stream.write('WHAT.'); - })); - - stream.on('end', common.mustCall(function() { - console.log('server side end'); - stream.end(); - })); -})); - -server.listen(0, common.mustCall(function() { - const c = net.createConnection(this.address().port); - - c.on('data', function() { - c.end(); - }); - - c.on('end', function() { - console.log('client side end'); - server.close(); - }); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-connect-call-socket-connect.js b/cli/tests/node_compat/test/parallel/test-net-connect-call-socket-connect.js deleted file mode 100644 index 87412d4add..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-connect-call-socket-connect.js +++ /dev/null @@ -1,46 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -// This test checks that calling `net.connect` internally calls -// `Socket.prototype.connect`. -// -// This is important for people who monkey-patch `Socket.prototype.connect` -// since it's not possible to monkey-patch `net.connect` directly (as the core -// `connect` function is called internally in Node instead of calling the -// `exports.connect` function). -// -// Monkey-patching of `Socket.prototype.connect` is done by - among others - -// most APM vendors, the async-listener module and the -// continuation-local-storage module. -// -// Related: -// - https://github.com/nodejs/node/pull/12342 -// - https://github.com/nodejs/node/pull/12852 - -const net = require('net'); -const Socket = net.Socket; - -// Monkey patch Socket.prototype.connect to check that it's called. -const orig = Socket.prototype.connect; -Socket.prototype.connect = common.mustCall(function() { - return orig.apply(this, arguments); -}); - -const server = net.createServer(); - -server.listen(common.mustCall(function() { - const port = server.address().port; - const client = net.connect({ port }, common.mustCall(function() { - client.end(); - })); - client.on('end', common.mustCall(function() { - server.close(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-connect-options-ipv6.js b/cli/tests/node_compat/test/parallel/test-net-connect-options-ipv6.js deleted file mode 100644 index af87d57133..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-connect-options-ipv6.js +++ /dev/null @@ -1,74 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Test that the family option of net.connect is honored. - -'use strict'; -const common = require('../common'); -if (!common.hasIPv6) - common.skip('no IPv6 support'); - -const assert = require('assert'); -const net = require('net'); - -const hostAddrIPv6 = '::1'; -const HOSTNAME = 'dummy'; - -const server = net.createServer({ allowHalfOpen: true }, (socket) => { - socket.resume(); - socket.on('end', common.mustCall()); - socket.end(); -}); - -function tryConnect() { - const connectOpt = { - host: HOSTNAME, - port: server.address().port, - family: 6, - allowHalfOpen: true, - lookup: common.mustCall((addr, opt, cb) => { - assert.strictEqual(addr, HOSTNAME); - assert.strictEqual(opt.family, 6); - cb(null, hostAddrIPv6, opt.family); - }) - }; - // No `mustCall`, since test could skip, and it's the only path to `close`. - const client = net.connect(connectOpt, () => { - client.resume(); - client.on('end', () => { - // Wait for next uv tick and make sure the socket stream is writable. - setTimeout(function() { - assert(client.writable); - client.end(); - }, 10); - }); - client.on('close', () => server.close()); - }); -} - -server.listen(0, hostAddrIPv6, tryConnect); diff --git a/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js b/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js deleted file mode 100644 index 6dd10461a6..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-connect-options-port.js +++ /dev/null @@ -1,237 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const dns = require('dns'); -const net = require('net'); - -// Test wrong type of ports -{ - const portTypeError = { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - }; - - syncFailToConnect(true, portTypeError); - syncFailToConnect(false, portTypeError); - syncFailToConnect([], portTypeError, true); - syncFailToConnect({}, portTypeError, true); - syncFailToConnect(null, portTypeError); -} - -// Test out of range ports -{ - const portRangeError = { - code: 'ERR_SOCKET_BAD_PORT', - name: 'RangeError' - }; - - syncFailToConnect('', portRangeError); - syncFailToConnect(' ', portRangeError); - syncFailToConnect('0x', portRangeError, true); - syncFailToConnect('-0x1', portRangeError, true); - syncFailToConnect(NaN, portRangeError); - syncFailToConnect(Infinity, portRangeError); - syncFailToConnect(-1, portRangeError); - syncFailToConnect(65536, portRangeError); -} - -// Test invalid hints -{ - // connect({hint}, cb) and connect({hint}) - const hints = (dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL) + 42; - const hintOptBlocks = doConnect([{ port: 42, hints }], - () => common.mustNotCall()); - for (const fn of hintOptBlocks) { - assert.throws(fn, { - code: 'ERR_INVALID_ARG_VALUE', - name: 'TypeError', - message: /The argument 'hints' is invalid\. Received \d+/ - }); - } -} - -// Test valid combinations of connect(port) and connect(port, host) -{ - const expectedConnections = 72; - let serverConnected = 0; - - const server = net.createServer(common.mustCall((socket) => { - socket.end('ok'); - if (++serverConnected === expectedConnections) { - server.close(); - } - }, expectedConnections)); - - server.listen(0, common.localhostIPv4, common.mustCall(() => { - const port = server.address().port; - - // Total connections = 3 * 4(canConnect) * 6(doConnect) = 72 - canConnect(port); - canConnect(String(port)); - canConnect(`0x${port.toString(16)}`); - })); - - // Try connecting to random ports, but do so once the server is closed - server.on('close', () => { - asyncFailToConnect(0); - }); -} - -function doConnect(args, getCb) { - return [ - function createConnectionWithCb() { - return net.createConnection.apply(net, args.concat(getCb())) - .resume(); - }, - function createConnectionWithoutCb() { - return net.createConnection.apply(net, args) - .on('connect', getCb()) - .resume(); - }, - function connectWithCb() { - return net.connect.apply(net, args.concat(getCb())) - .resume(); - }, - function connectWithoutCb() { - return net.connect.apply(net, args) - .on('connect', getCb()) - .resume(); - }, - function socketConnectWithCb() { - const socket = new net.Socket(); - return socket.connect.apply(socket, args.concat(getCb())) - .resume(); - }, - function socketConnectWithoutCb() { - const socket = new net.Socket(); - return socket.connect.apply(socket, args) - .on('connect', getCb()) - .resume(); - }, - ]; -} - -function syncFailToConnect(port, assertErr, optOnly) { - const family = 4; - if (!optOnly) { - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], - () => common.mustNotCall()); - for (const fn of portArgFunctions) { - assert.throws(fn, assertErr, `${fn.name}(${port})`); - } - - // connect(port, host, cb) and connect(port, host) - const portHostArgFunctions = doConnect([{ port, - host: 'localhost', - family }], - () => common.mustNotCall()); - for (const fn of portHostArgFunctions) { - assert.throws(fn, assertErr, `${fn.name}(${port}, 'localhost')`); - } - } - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], - () => common.mustNotCall()); - for (const fn of portOptFunctions) { - assert.throws(fn, assertErr, `${fn.name}({port: ${port}})`); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFunctions = doConnect([{ port: port, - host: 'localhost', - family: family }], - () => common.mustNotCall()); - for (const fn of portHostOptFunctions) { - assert.throws(fn, - assertErr, - `${fn.name}({port: ${port}, host: 'localhost'})`); - } -} - -function canConnect(port) { - const noop = () => common.mustCall(); - const family = 4; - - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], noop); - for (const fn of portArgFunctions) { - fn(); - } - - // connect(port, host, cb) and connect(port, host) - const portHostArgFunctions = doConnect([{ port, host: 'localhost', family }], - noop); - for (const fn of portHostArgFunctions) { - fn(); - } - - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], noop); - for (const fn of portOptFunctions) { - fn(); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFns = doConnect([{ port, host: 'localhost', family }], - noop); - for (const fn of portHostOptFns) { - fn(); - } -} - -function asyncFailToConnect(port) { - const onError = () => common.mustCall((err) => { - const regexp = /^Error: connect E\w+.+$/; - assert.match(String(err), regexp); - }); - - const dont = () => common.mustNotCall(); - const family = 4; - // connect(port, cb) and connect(port) - const portArgFunctions = doConnect([{ port, family }], dont); - for (const fn of portArgFunctions) { - fn().on('error', onError()); - } - - // connect({port}, cb) and connect({port}) - const portOptFunctions = doConnect([{ port, family }], dont); - for (const fn of portOptFunctions) { - fn().on('error', onError()); - } - - // connect({port, host}, cb) and connect({port, host}) - const portHostOptFns = doConnect([{ port, host: 'localhost', family }], - dont); - for (const fn of portHostOptFns) { - fn().on('error', onError()); - } -} diff --git a/cli/tests/node_compat/test/parallel/test-net-dns-custom-lookup.js b/cli/tests/node_compat/test/parallel/test-net-dns-custom-lookup.js deleted file mode 100644 index 6847dc57e4..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-dns-custom-lookup.js +++ /dev/null @@ -1,61 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -function check(addressType, cb) { - const server = net.createServer(function(client) { - client.end(); - server.close(); - cb && cb(); - }); - - const address = addressType === 4 ? common.localhostIPv4 : '::1'; - server.listen(0, address, common.mustCall(function() { - net.connect({ - port: this.address().port, - host: 'localhost', - family: addressType, - lookup: lookup - }).on('lookup', common.mustCall(function(err, ip, type) { - assert.strictEqual(err, null); - assert.strictEqual(address, ip); - assert.strictEqual(type, addressType); - })); - })); - - function lookup(host, dnsopts, cb) { - dnsopts.family = addressType; - if (addressType === 4) { - process.nextTick(function() { - cb(null, common.localhostIPv4, 4); - }); - } else { - process.nextTick(function() { - cb(null, '::1', 6); - }); - } - } -} - -check(4, function() { - common.hasIPv6 && check(6); -}); - -// Verify that bad lookup() IPs are handled. -{ - net.connect({ - host: 'localhost', - port: 80, - lookup(host, dnsopts, cb) { - cb(null, undefined, 4); - } - }).on('error', common.expectsError({ code: 'ERR_INVALID_IP_ADDRESS' })); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-dns-lookup-skip.js b/cli/tests/node_compat/test/parallel/test-net-dns-lookup-skip.js deleted file mode 100644 index f0fb49781b..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-dns-lookup-skip.js +++ /dev/null @@ -1,26 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const net = require('net'); - -function check(addressType) { - const server = net.createServer(function(client) { - client.end(); - server.close(); - }); - - const address = addressType === 4 ? '127.0.0.1' : '::1'; - server.listen(0, address, function() { - net.connect(this.address().port, address) - .on('lookup', common.mustNotCall()); - }); -} - -check(4); -common.hasIPv6 && check(6); diff --git a/cli/tests/node_compat/test/parallel/test-net-dns-lookup.js b/cli/tests/node_compat/test/parallel/test-net-dns-lookup.js deleted file mode 100644 index 57cb90d39b..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-dns-lookup.js +++ /dev/null @@ -1,47 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(function(client) { - client.end(); - server.close(); -}); - -server.listen(0, common.mustCall(function() { - net.connect(this.address().port, 'localhost') - .on('lookup', common.mustCall(function(err, ip, type, host) { - assert.strictEqual(err, null); - assert.match(ip, /^(127\.0\.0\.1|::1)$/); - assert.match(type.toString(), /^(4|6)$/); - assert.strictEqual(host, 'localhost'); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-eaddrinuse.js b/cli/tests/node_compat/test/parallel/test-net-eaddrinuse.js deleted file mode 100644 index d4b9b234fb..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-eaddrinuse.js +++ /dev/null @@ -1,44 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server1 = net.createServer(function(socket) { -}); -const server2 = net.createServer(function(socket) { -}); -server1.listen(0, common.mustCall(function() { - server2.on('error', function(error) { - assert.strictEqual(error.message.includes('EADDRINUSE'), true); - server1.close(); - }); - server2.listen(this.address().port); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-end-destroyed.js b/cli/tests/node_compat/test/parallel/test-net-end-destroyed.js deleted file mode 100644 index fc440844ed..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-end-destroyed.js +++ /dev/null @@ -1,33 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const net = require('net'); -const assert = require('assert'); - -const server = net.createServer(); - -server.on('connection', common.mustCall()); - -// Ensure that the socket is not destroyed when the 'end' event is emitted. - -server.listen(common.mustCall(function() { - const socket = net.createConnection({ - port: server.address().port - }); - - socket.on('connect', common.mustCall(function() { - socket.on('end', common.mustCall(function() { - assert.strictEqual(socket.destroyed, false); - server.close(); - })); - - socket.end(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-listen-after-destroying-stdin.js b/cli/tests/node_compat/test/parallel/test-net-listen-after-destroying-stdin.js deleted file mode 100644 index aa1c2ec28a..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-listen-after-destroying-stdin.js +++ /dev/null @@ -1,29 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -// Just test that destroying stdin doesn't mess up listening on a server. -// This is a regression test for -// https://github.com/nodejs/node-v0.x-archive/issues/746. - -const common = require('../common'); -const net = require('net'); - -process.stdin.destroy(); - -const server = net.createServer(common.mustCall((socket) => { - console.log('accepted...'); - socket.end(common.mustCall(() => { console.log('finished...'); })); - server.close(common.mustCall(() => { console.log('closed'); })); -})); - - -server.listen(0, common.mustCall(() => { - console.log('listening...'); - - net.createConnection(server.address().port); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-listen-error.js b/cli/tests/node_compat/test/parallel/test-net-listen-error.js deleted file mode 100644 index 25d2cd9080..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-listen-error.js +++ /dev/null @@ -1,36 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const net = require('net'); - -const server = net.createServer(function(socket) { -}); -server.listen(1, '1.1.1.1', common.mustNotCall()); // EACCES or EADDRNOTAVAIL -server.on('error', common.mustCall()); diff --git a/cli/tests/node_compat/test/parallel/test-net-local-address-port.js b/cli/tests/node_compat/test/parallel/test-net-local-address-port.js deleted file mode 100644 index 98a63a9521..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-local-address-port.js +++ /dev/null @@ -1,50 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(common.mustCall(function(socket) { - assert.strictEqual(socket.localAddress, common.localhostIPv4); - assert.strictEqual(socket.localPort, this.address().port); - assert.strictEqual(socket.localFamily, this.address().family); - socket.on('end', function() { - server.close(); - }); - socket.resume(); -})); - -server.listen(0, common.localhostIPv4, function() { - const client = net.createConnection(this.address() - .port, common.localhostIPv4); - client.on('connect', function() { - client.end(); - }); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-pause-resume-connecting.js b/cli/tests/node_compat/test/parallel/test-net-pause-resume-connecting.js deleted file mode 100644 index 07f3254625..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-pause-resume-connecting.js +++ /dev/null @@ -1,102 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -let connections = 0; -let dataEvents = 0; -let conn; - - -// Server -const server = net.createServer(function(conn) { - connections++; - conn.end('This was the year he fell to pieces.'); - - if (connections === 5) - server.close(); -}); - -server.listen(0, function() { - // Client 1 - conn = net.createConnection(this.address().port, 'localhost'); - conn.resume(); - conn.on('data', onDataOk); - - - // Client 2 - conn = net.createConnection(this.address().port, 'localhost'); - conn.pause(); - conn.resume(); - conn.on('data', onDataOk); - - - // Client 3 - conn = net.createConnection(this.address().port, 'localhost'); - conn.pause(); - conn.on('data', common.mustNotCall()); - scheduleTearDown(conn); - - - // Client 4 - conn = net.createConnection(this.address().port, 'localhost'); - conn.resume(); - conn.pause(); - conn.resume(); - conn.on('data', onDataOk); - - - // Client 5 - conn = net.createConnection(this.address().port, 'localhost'); - conn.resume(); - conn.resume(); - conn.pause(); - conn.on('data', common.mustNotCall()); - scheduleTearDown(conn); - - function onDataOk() { - dataEvents++; - } - - function scheduleTearDown(conn) { - setTimeout(function() { - conn.removeAllListeners('data'); - conn.resume(); - }, 100); - } -}); - - -// Exit sanity checks -process.on('exit', function() { - assert.strictEqual(connections, 5); - assert.strictEqual(dataEvents, 3); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-persistent-ref-unref.js b/cli/tests/node_compat/test/parallel/test-net-persistent-ref-unref.js deleted file mode 100644 index 06e2c6d0f1..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-persistent-ref-unref.js +++ /dev/null @@ -1,48 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; -require('../common'); -const assert = require('assert'); -const net = require('net'); -const { internalBinding } = require('internal/test/binding'); -const TCPWrap = internalBinding('tcp_wrap').TCP; - -const echoServer = net.createServer((conn) => { - conn.end(); -}); - -const ref = TCPWrap.prototype.ref; -const unref = TCPWrap.prototype.unref; - -let refCount = 0; - -TCPWrap.prototype.ref = function() { - ref.call(this); - refCount++; - assert.strictEqual(refCount, 0); -}; - -TCPWrap.prototype.unref = function() { - unref.call(this); - refCount--; - assert.strictEqual(refCount, -1); -}; - -echoServer.listen(0); - -echoServer.on('listening', function() { - const sock = new net.Socket(); - sock.unref(); - sock.ref(); - sock.connect(this.address().port); - sock.on('end', () => { - assert.strictEqual(refCount, 0); - echoServer.close(); - }); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-remote-address-port.js b/cli/tests/node_compat/test/parallel/test-net-remote-address-port.js deleted file mode 100644 index c1dc0282c6..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-remote-address-port.js +++ /dev/null @@ -1,91 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); - -const net = require('net'); - -let conns_closed = 0; - -const remoteAddrCandidates = [ common.localhostIPv4, - '::1', - '::ffff:127.0.0.1' ]; - -const remoteFamilyCandidates = ['IPv4', 'IPv6']; - -const server = net.createServer(common.mustCall(function(socket) { - assert.ok(remoteAddrCandidates.includes(socket.remoteAddress), - `Invalid remoteAddress: ${socket.remoteAddress}`); - assert.ok(remoteFamilyCandidates.includes(socket.remoteFamily), - `Invalid remoteFamily: ${socket.remoteFamily}`); - assert.ok(socket.remotePort); - assert.notStrictEqual(socket.remotePort, this.address().port); - socket.on('end', function() { - if (++conns_closed === 2) server.close(); - }); - socket.on('close', function() { - assert.ok(remoteAddrCandidates.includes(socket.remoteAddress)); - assert.ok(remoteFamilyCandidates.includes(socket.remoteFamily)); - }); - socket.resume(); -}, 2)); - -server.listen(0, function() { - const client = net.createConnection(this.address().port, '127.0.0.1'); - const client2 = net.createConnection(this.address().port); - - assert.strictEqual(client.remoteAddress, undefined); - assert.strictEqual(client.remoteFamily, undefined); - assert.strictEqual(client.remotePort, undefined); - assert.strictEqual(client2.remoteAddress, undefined); - assert.strictEqual(client2.remoteFamily, undefined); - assert.strictEqual(client2.remotePort, undefined); - - client.on('connect', function() { - assert.ok(remoteAddrCandidates.includes(client.remoteAddress)); - assert.ok(remoteFamilyCandidates.includes(client.remoteFamily)); - assert.strictEqual(client.remotePort, server.address().port); - client.end(); - }); - client.on('close', function() { - assert.ok(remoteAddrCandidates.includes(client.remoteAddress)); - assert.ok(remoteFamilyCandidates.includes(client.remoteFamily)); - }); - client2.on('connect', function() { - assert.ok(remoteAddrCandidates.includes(client2.remoteAddress)); - assert.ok(remoteFamilyCandidates.includes(client2.remoteFamily)); - assert.strictEqual(client2.remotePort, server.address().port); - client2.end(); - }); - client2.on('close', function() { - assert.ok(remoteAddrCandidates.includes(client2.remoteAddress)); - assert.ok(remoteFamilyCandidates.includes(client2.remoteFamily)); - }); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-server-capture-rejection.js b/cli/tests/node_compat/test/parallel/test-net-server-capture-rejection.js deleted file mode 100644 index d8096251e2..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-server-capture-rejection.js +++ /dev/null @@ -1,34 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const events = require('events'); -const { createServer, connect } = require('net'); - -events.captureRejections = true; - -const server = createServer(common.mustCall(async (sock) => { - server.close(); - - const _err = new Error('kaboom'); - sock.on('error', common.mustCall((err) => { - assert.strictEqual(err, _err); - })); - throw _err; -})); - -server.listen(0, common.mustCall(() => { - const sock = connect( - server.address().port, - server.address().host - ); - - sock.on('close', common.mustCall()); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-server-close.js b/cli/tests/node_compat/test/parallel/test-net-server-close.js deleted file mode 100644 index 1be4a9c44c..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-server-close.js +++ /dev/null @@ -1,52 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const sockets = []; - -const server = net.createServer(function(c) { - c.on('close', common.mustCall()); - - sockets.push(c); - - if (sockets.length === 2) { - assert.strictEqual(server.close(), server); - sockets.forEach((c) => c.destroy()); - } -}); - -server.on('close', common.mustCall()); - -assert.strictEqual(server, server.listen(0, () => { - net.createConnection(server.address().port); - net.createConnection(server.address().port); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-server-max-connections.js b/cli/tests/node_compat/test/parallel/test-net-server-max-connections.js deleted file mode 100644 index 76a6098087..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-server-max-connections.js +++ /dev/null @@ -1,114 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); - -const net = require('net'); - -// This test creates 20 connections to a server and sets the server's -// maxConnections property to 10. The first 10 connections make it through -// and the last 10 connections are rejected. - -const N = 20; -let closes = 0; -const waits = []; - -const server = net.createServer(common.mustCall(function(connection) { - connection.write('hello'); - waits.push(function() { connection.end(); }); -}, N / 2)); - -server.listen(0, function() { - makeConnection(0); -}); - -server.maxConnections = N / 2; - - -function makeConnection(index) { - const c = net.createConnection(server.address().port); - let gotData = false; - - c.on('connect', function() { - if (index + 1 < N) { - makeConnection(index + 1); - } - - c.on('close', function() { - console.error(`closed ${index}`); - closes++; - - if (closes < N / 2) { - assert.ok( - server.maxConnections <= index, - `${index} should not have been one of the first closed connections` - ); - } - - if (closes === N / 2) { - let cb; - console.error('calling wait callback.'); - while ((cb = waits.shift()) !== undefined) { - cb(); - } - server.close(); - } - - if (index < server.maxConnections) { - assert.strictEqual(gotData, true, - `${index} didn't get data, but should have`); - } else { - assert.strictEqual(gotData, false, - `${index} got data, but shouldn't have`); - } - }); - }); - - c.on('end', function() { c.end(); }); - - c.on('data', function(b) { - gotData = true; - assert.ok(b.length > 0); - }); - - c.on('error', function(e) { - // Retry if SmartOS and ECONNREFUSED. See - // https://github.com/nodejs/node/issues/2663. - if (common.isSunOS && (e.code === 'ECONNREFUSED')) { - c.connect(server.address().port); - } - console.error(`error ${index}: ${e}`); - }); -} - - -process.on('exit', function() { - assert.strictEqual(closes, N); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-server-pause-on-connect.js b/cli/tests/node_compat/test/parallel/test-net-server-pause-on-connect.js deleted file mode 100644 index 9329a306a6..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-server-pause-on-connect.js +++ /dev/null @@ -1,79 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); -const msg = 'test'; -let stopped = true; -let server1Sock; - - -const server1ConnHandler = (socket) => { - socket.on('data', function(data) { - if (stopped) { - assert.fail('data event should not have happened yet'); - } - - assert.strictEqual(data.toString(), msg); - socket.end(); - server1.close(); - }); - - server1Sock = socket; -}; - -const server1 = net.createServer({ pauseOnConnect: true }, server1ConnHandler); - -const server2ConnHandler = (socket) => { - socket.on('data', function(data) { - assert.strictEqual(data.toString(), msg); - socket.end(); - server2.close(); - - assert.strictEqual(server1Sock.bytesRead, 0); - server1Sock.resume(); - stopped = false; - }); -}; - -const server2 = net.createServer({ pauseOnConnect: false }, server2ConnHandler); - -server1.listen(0, function() { - const clientHandler = common.mustCall(function() { - server2.listen(0, function() { - net.createConnection({ port: this.address().port }).write(msg); - }); - }); - net.createConnection({ port: this.address().port }).write(msg, clientHandler); -}); - -process.on('exit', function() { - assert.strictEqual(stopped, false); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-close-after-end.js b/cli/tests/node_compat/test/parallel/test-net-socket-close-after-end.js deleted file mode 100644 index 8e19e09ab8..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-close-after-end.js +++ /dev/null @@ -1,38 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(); - -server.on('connection', (socket) => { - let endEmitted = false; - - socket.once('readable', () => { - setTimeout(() => { - socket.read(); - }, common.platformTimeout(100)); - }); - socket.on('end', () => { - endEmitted = true; - }); - socket.on('close', () => { - assert(endEmitted); - server.close(); - }); - socket.end('foo'); -}); - -server.listen(common.mustCall(() => { - const socket = net.createConnection(server.address().port, () => { - socket.end('foo'); - }); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-connect-without-cb.js b/cli/tests/node_compat/test/parallel/test-net-socket-connect-without-cb.js deleted file mode 100644 index 8f81093805..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-connect-without-cb.js +++ /dev/null @@ -1,33 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -// This test ensures that socket.connect can be called without callback -// which is optional. - -const net = require('net'); - -const server = net.createServer(common.mustCall(function(conn) { - conn.end(); - server.close(); -})).listen(0, common.mustCall(function() { - const client = new net.Socket(); - - client.on('connect', common.mustCall(function() { - client.end(); - })); - - const address = server.address(); - if (!common.hasIPv6 && address.family === 'IPv6') { - // Necessary to pass CI running inside containers. - client.connect(address.port); - } else { - client.connect(address); - } -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-connecting.js b/cli/tests/node_compat/test/parallel/test-net-socket-connecting.js deleted file mode 100644 index 96883f5e12..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-connecting.js +++ /dev/null @@ -1,28 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer((conn) => { - conn.end(); - server.close(); -}).listen(0, () => { - const client = net.connect(server.address().port, () => { - assert.strictEqual(client.connecting, false); - - // Legacy getter - assert.strictEqual(client._connecting, false); - client.end(); - }); - assert.strictEqual(client.connecting, true); - - // Legacy getter - assert.strictEqual(client._connecting, true); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-destroy-send.js b/cli/tests/node_compat/test/parallel/test-net-socket-destroy-send.js deleted file mode 100644 index 47ac7c1add..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-destroy-send.js +++ /dev/null @@ -1,31 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const net = require('net'); -const assert = require('assert'); - -const server = net.createServer(); -server.listen(0, common.mustCall(function() { - const port = server.address().port; - const conn = net.createConnection(port); - - conn.on('connect', common.mustCall(function() { - // Test destroy returns this, even on multiple calls when it short-circuits. - assert.strictEqual(conn, conn.destroy().destroy()); - conn.on('error', common.mustNotCall()); - - conn.write(Buffer.from('kaboom'), common.expectsError({ - code: 'ERR_STREAM_DESTROYED', - message: 'Cannot call write after a stream was destroyed', - name: 'Error' - })); - server.close(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-end-before-connect.js b/cli/tests/node_compat/test/parallel/test-net-socket-end-before-connect.js deleted file mode 100644 index be83964be3..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-end-before-connect.js +++ /dev/null @@ -1,20 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); - -const net = require('net'); - -const server = net.createServer(); - -server.listen(common.mustCall(() => { - const socket = net.createConnection(server.address().port); - socket.on('close', common.mustCall(() => server.close())); - socket.end(); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-end-callback.js b/cli/tests/node_compat/test/parallel/test-net-socket-end-callback.js deleted file mode 100644 index 7b0e48df5b..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-end-callback.js +++ /dev/null @@ -1,29 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const net = require('net'); - -const server = net.createServer((socket) => { - socket.resume(); -}).unref(); - -server.listen(common.mustCall(() => { - const connect = (...args) => { - const socket = net.createConnection(server.address().port, () => { - socket.end(...args); - }); - }; - - const cb = common.mustCall(() => {}, 3); - - connect(cb); - connect('foo', cb); - connect('foo', 'utf8', cb); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-ready-without-cb.js b/cli/tests/node_compat/test/parallel/test-net-socket-ready-without-cb.js deleted file mode 100644 index 29cf729dfa..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-ready-without-cb.js +++ /dev/null @@ -1,27 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -// This test ensures that socket.connect can be called without callback -// which is optional. - -const net = require('net'); - -const server = net.createServer(common.mustCall(function(conn) { - conn.end(); - server.close(); -})).listen(0, 'localhost', common.mustCall(function() { - const client = new net.Socket(); - - client.on('ready', common.mustCall(function() { - client.end(); - })); - - client.connect(server.address()); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-write-after-close.js b/cli/tests/node_compat/test/parallel/test-net-socket-write-after-close.js deleted file mode 100644 index abd30aee11..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-write-after-close.js +++ /dev/null @@ -1,49 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -{ - const server = net.createServer(); - - server.listen(common.mustCall(() => { - const port = server.address().port; - const client = net.connect({ port }, common.mustCall(() => { - client.on('error', common.mustCall((err) => { - server.close(); - assert.strictEqual(err.constructor, Error); - assert.strictEqual(err.message, 'write EBADF'); - })); - client._handle.close(); - client.write('foo'); - })); - })); -} - -{ - const server = net.createServer(); - - server.listen(common.mustCall(() => { - const port = server.address().port; - const client = net.connect({ port }, common.mustCall(() => { - client.on('error', common.expectsError({ - code: 'ERR_SOCKET_CLOSED', - message: 'Socket is closed', - name: 'Error' - })); - - server.close(); - - client._handle.close(); - client._handle = null; - client.write('foo'); - })); - })); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-socket-write-error.js b/cli/tests/node_compat/test/parallel/test-net-socket-write-error.js deleted file mode 100644 index d38ab30b40..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-socket-write-error.js +++ /dev/null @@ -1,29 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const net = require('net'); -const assert = require('assert'); - -const server = net.createServer().listen(0, connectToServer); - -function connectToServer() { - const client = net.createConnection(this.address().port, () => { - client.on('error', common.mustNotCall()); - assert.throws(() => { - client.write(1337); - }, { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError' - }); - - client.destroy(); - }) - .on('close', () => server.close()); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-sync-cork.js b/cli/tests/node_compat/test/parallel/test-net-sync-cork.js deleted file mode 100644 index eb4274b740..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-sync-cork.js +++ /dev/null @@ -1,40 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(handle); - -const N = 100; -const buf = Buffer.alloc(2, 'a'); - -server.listen(0, function() { - const conn = net.connect(this.address().port); - - conn.on('connect', () => { - let res = true; - let i = 0; - for (; i < N && res; i++) { - conn.cork(); - conn.write(buf); - res = conn.write(buf); - conn.uncork(); - } - assert.strictEqual(i, N); - conn.end(); - }); -}); - -function handle(socket) { - socket.resume(); - socket.on('error', common.mustNotCall()) - .on('close', common.mustCall(() => server.close())); -} diff --git a/cli/tests/node_compat/test/parallel/test-net-writable.js b/cli/tests/node_compat/test/parallel/test-net-writable.js deleted file mode 100644 index a7cc5e5bee..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-writable.js +++ /dev/null @@ -1,22 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const server = net.createServer(common.mustCall(function(s) { - server.close(); - s.end(); -})).listen(0, '127.0.0.1', common.mustCall(function() { - const socket = net.connect(this.address().port, '127.0.0.1'); - socket.on('end', common.mustCall(() => { - assert.strictEqual(socket.writable, true); - socket.write('hello world'); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-write-after-end-nt.js b/cli/tests/node_compat/test/parallel/test-net-write-after-end-nt.js deleted file mode 100644 index 8f38d3bfda..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-write-after-end-nt.js +++ /dev/null @@ -1,39 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -const common = require('../common'); - -const assert = require('assert'); -const net = require('net'); - -const { expectsError, mustCall } = common; - -// This test ensures those errors caused by calling `net.Socket.write()` -// after sockets ending will be emitted in the next tick. -const server = net.createServer(mustCall((socket) => { - socket.end(); -})).listen(() => { - const client = net.connect(server.address().port, () => { - let hasError = false; - client.on('error', mustCall((err) => { - hasError = true; - server.close(); - })); - client.on('end', mustCall(() => { - const ret = client.write('hello', expectsError({ - code: 'EPIPE', - message: 'This socket has been ended by the other party', - name: 'Error' - })); - - assert.strictEqual(ret, false); - assert(!hasError, 'The error should be emitted in the next tick.'); - })); - client.end(); - }); -}); diff --git a/cli/tests/node_compat/test/parallel/test-net-write-fully-async-buffer.js b/cli/tests/node_compat/test/parallel/test-net-write-fully-async-buffer.js deleted file mode 100644 index 5e93ad4e22..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-write-fully-async-buffer.js +++ /dev/null @@ -1,41 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -// Flags: --expose-gc - -// Note: This is a variant of test-net-write-fully-async-hex-string.js. -// This always worked, but it seemed appropriate to add a test that checks the -// behavior for Buffers, too. -const common = require('../common'); -const net = require('net'); - -const data = Buffer.alloc(1000000); - -const server = net.createServer(common.mustCall(function(conn) { - conn.resume(); -})).listen(0, common.mustCall(function() { - const conn = net.createConnection(this.address().port, common.mustCall(() => { - let count = 0; - - function writeLoop() { - if (count++ === 200) { - conn.destroy(); - server.close(); - return; - } - - while (conn.write(Buffer.from(data))); - global.gc({ type: 'minor' }); - // The buffer allocated above should still be alive. - } - - conn.on('drain', writeLoop); - - writeLoop(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-write-fully-async-hex-string.js b/cli/tests/node_compat/test/parallel/test-net-write-fully-async-hex-string.js deleted file mode 100644 index ff355aa2a7..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-write-fully-async-hex-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; -// Flags: --expose-gc - -// Regression test for https://github.com/nodejs/node/issues/8251. -const common = require('../common'); -const net = require('net'); - -const data = Buffer.alloc(1000000).toString('hex'); - -const server = net.createServer(common.mustCall(function(conn) { - conn.resume(); -})).listen(0, common.mustCall(function() { - const conn = net.createConnection(this.address().port, common.mustCall(() => { - let count = 0; - - function writeLoop() { - if (count++ === 20) { - conn.destroy(); - server.close(); - return; - } - - while (conn.write(data, 'hex')); - global.gc({ type: 'minor' }); - // The buffer allocated inside the .write() call should still be alive. - } - - conn.on('drain', writeLoop); - - writeLoop(); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-net-write-slow.js b/cli/tests/node_compat/test/parallel/test-net-write-slow.js deleted file mode 100644 index 6c00efb1f4..0000000000 --- a/cli/tests/node_compat/test/parallel/test-net-write-slow.js +++ /dev/null @@ -1,70 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -const SIZE = 2E5; -const N = 10; -let flushed = 0; -let received = 0; -const buf = Buffer.alloc(SIZE, 'a'); - -const server = net.createServer(function(socket) { - socket.setNoDelay(); - socket.setTimeout(9999); - socket.on('timeout', function() { - assert.fail(`flushed: ${flushed}, received: ${received}/${SIZE * N}`); - }); - - for (let i = 0; i < N; ++i) { - socket.write(buf, function() { - ++flushed; - if (flushed === N) { - socket.setTimeout(0); - } - }); - } - socket.end(); - -}).listen(0, common.mustCall(function() { - const conn = net.connect(this.address().port); - conn.on('data', function(buf) { - received += buf.length; - conn.pause(); - setTimeout(function() { - conn.resume(); - }, 20); - }); - conn.on('end', common.mustCall(function() { - server.close(); - assert.strictEqual(received, SIZE * N); - })); -})); diff --git a/cli/tests/node_compat/test/parallel/test-punycode.js b/cli/tests/node_compat/test/parallel/test-punycode.js deleted file mode 100644 index cb65954a02..0000000000 --- a/cli/tests/node_compat/test/parallel/test-punycode.js +++ /dev/null @@ -1,280 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --pending-deprecation - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); - -const punycodeWarning = - 'The `punycode` module is deprecated. Please use a userland alternative ' + - 'instead.'; -common.expectWarning('DeprecationWarning', punycodeWarning, 'DEP0040'); - -const punycode = require('punycode'); -const assert = require('assert'); - -assert.strictEqual(punycode.encode('ü'), 'tda'); -assert.strictEqual(punycode.encode('Goethe'), 'Goethe-'); -assert.strictEqual(punycode.encode('Bücher'), 'Bcher-kva'); -assert.strictEqual( - punycode.encode( - 'Willst du die Blüthe des frühen, die Früchte des späteren Jahres' - ), - 'Willst du die Blthe des frhen, die Frchte des spteren Jahres-x9e96lkal' -); -assert.strictEqual(punycode.encode('日本語'), 'wgv71a119e'); -assert.strictEqual(punycode.encode('𩸽'), 'x73l'); - -assert.strictEqual(punycode.decode('tda'), 'ü'); -assert.strictEqual(punycode.decode('Goethe-'), 'Goethe'); -assert.strictEqual(punycode.decode('Bcher-kva'), 'Bücher'); -assert.strictEqual( - punycode.decode( - 'Willst du die Blthe des frhen, die Frchte des spteren Jahres-x9e96lkal' - ), - 'Willst du die Blüthe des frühen, die Früchte des späteren Jahres' -); -assert.strictEqual(punycode.decode('wgv71a119e'), '日本語'); -assert.strictEqual(punycode.decode('x73l'), '𩸽'); -assert.throws(() => { - punycode.decode(' '); -}, /^RangeError: Invalid input$/); -assert.throws(() => { - punycode.decode('α-'); -}, /^RangeError: Illegal input >= 0x80 \(not a basic code point\)$/); -assert.throws(() => { - punycode.decode('あ'); -}, /^RangeError: Overflow: input needs wider integers to process$/); - -// http://tools.ietf.org/html/rfc3492#section-7.1 -const tests = [ - // (A) Arabic (Egyptian) - { - encoded: 'egbpdaj6bu4bxfgehfvwxn', - decoded: '\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644\u0645' + - '\u0648\u0634\u0639\u0631\u0628\u064A\u061F' - }, - - // (B) Chinese (simplified) - { - encoded: 'ihqwcrb4cv8a8dqg056pqjye', - decoded: '\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587' - }, - - // (C) Chinese (traditional) - { - encoded: 'ihqwctvzc91f659drss3x8bo0yb', - decoded: '\u4ED6\u5011\u7232\u4EC0\u9EBD\u4E0D\u8AAA\u4E2D\u6587' - }, - - // (D) Czech: Proprostnemluvesky - { - encoded: 'Proprostnemluvesky-uyb24dma41a', - decoded: '\u0050\u0072\u006F\u010D\u0070\u0072\u006F\u0073\u0074\u011B' + - '\u006E\u0065\u006D\u006C\u0075\u0076\u00ED\u010D\u0065\u0073\u006B\u0079' - }, - - // (E) Hebrew - { - encoded: '4dbcagdahymbxekheh6e0a7fei0b', - decoded: '\u05DC\u05DE\u05D4\u05D4\u05DD\u05E4\u05E9\u05D5\u05D8\u05DC' + - '\u05D0\u05DE\u05D3\u05D1\u05E8\u05D9\u05DD\u05E2\u05D1\u05E8\u05D9\u05EA' - }, - - // (F) Hindi (Devanagari) - { - encoded: 'i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd', - decoded: '\u092F\u0939\u0932\u094B\u0917\u0939\u093F\u0928\u094D\u0926' + - '\u0940\u0915\u094D\u092F\u094B\u0902\u0928\u0939\u0940\u0902\u092C' + - '\u094B\u0932\u0938\u0915\u0924\u0947\u0939\u0948\u0902' - }, - - // (G) Japanese (kanji and hiragana) - { - encoded: 'n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa', - decoded: '\u306A\u305C\u307F\u3093\u306A\u65E5\u672C\u8A9E\u3092\u8A71' + - '\u3057\u3066\u304F\u308C\u306A\u3044\u306E\u304B' - }, - - // (H) Korean (Hangul syllables) - { - encoded: '989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879' + - 'ccm6fea98c', - decoded: '\uC138\uACC4\uC758\uBAA8\uB4E0\uC0AC\uB78C\uB4E4\uC774\uD55C' + - '\uAD6D\uC5B4\uB97C\uC774\uD574\uD55C\uB2E4\uBA74\uC5BC\uB9C8\uB098' + - '\uC88B\uC744\uAE4C' - }, - - // (I) Russian (Cyrillic) - { - encoded: 'b1abfaaepdrnnbgefbadotcwatmq2g4l', - decoded: '\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E\u043D' + - '\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440\u044F\u0442\u043F' + - '\u043E\u0440\u0443\u0441\u0441\u043A\u0438' - }, - - // (J) Spanish: PorqunopuedensimplementehablarenEspaol - { - encoded: 'PorqunopuedensimplementehablarenEspaol-fmd56a', - decoded: '\u0050\u006F\u0072\u0071\u0075\u00E9\u006E\u006F\u0070\u0075' + - '\u0065\u0064\u0065\u006E\u0073\u0069\u006D\u0070\u006C\u0065\u006D' + - '\u0065\u006E\u0074\u0065\u0068\u0061\u0062\u006C\u0061\u0072\u0065' + - '\u006E\u0045\u0073\u0070\u0061\u00F1\u006F\u006C' - }, - - // (K) Vietnamese: Tisaohkhngth - // chnitingVit - { - encoded: 'TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g', - decoded: '\u0054\u1EA1\u0069\u0073\u0061\u006F\u0068\u1ECD\u006B\u0068' + - '\u00F4\u006E\u0067\u0074\u0068\u1EC3\u0063\u0068\u1EC9\u006E\u00F3' + - '\u0069\u0074\u0069\u1EBF\u006E\u0067\u0056\u0069\u1EC7\u0074' - }, - - // (L) 3B - { - encoded: '3B-ww4c5e180e575a65lsy2b', - decoded: '\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F' - }, - - // (M) -with-SUPER-MONKEYS - { - encoded: '-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n', - decoded: '\u5B89\u5BA4\u5948\u7F8E\u6075\u002D\u0077\u0069\u0074\u0068' + - '\u002D\u0053\u0055\u0050\u0045\u0052\u002D\u004D\u004F\u004E\u004B' + - '\u0045\u0059\u0053' - }, - - // (N) Hello-Another-Way- - { - encoded: 'Hello-Another-Way--fc4qua05auwb3674vfr0b', - decoded: '\u0048\u0065\u006C\u006C\u006F\u002D\u0041\u006E\u006F\u0074' + - '\u0068\u0065\u0072\u002D\u0057\u0061\u0079\u002D\u305D\u308C\u305E' + - '\u308C\u306E\u5834\u6240' - }, - - // (O) 2 - { - encoded: '2-u9tlzr9756bt3uc0v', - decoded: '\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032' - }, - - // (P) MajiKoi5 - { - encoded: 'MajiKoi5-783gue6qz075azm5e', - decoded: '\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059\u308B' + - '\u0035\u79D2\u524D' - }, - - // (Q) de - { - encoded: 'de-jg4avhby1noc0d', - decoded: '\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0' - }, - - // (R) - { - encoded: 'd9juau41awczczp', - decoded: '\u305D\u306E\u30B9\u30D4\u30FC\u30C9\u3067' - }, - - // (S) -> $1.00 <- - { - encoded: '-> $1.00 <--', - decoded: '\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020\u003C' + - '\u002D' - }, -]; - -let errors = 0; -const handleError = (error, name) => { - console.error( - `FAIL: ${name} expected ${error.expected}, got ${error.actual}` - ); - errors++; -}; - -const regexNonASCII = /[^\x20-\x7E]/; -const testBattery = { - encode: (test) => assert.strictEqual( - punycode.encode(test.decoded), - test.encoded - ), - decode: (test) => assert.strictEqual( - punycode.decode(test.encoded), - test.decoded - ), - toASCII: (test) => assert.strictEqual( - punycode.toASCII(test.decoded), - regexNonASCII.test(test.decoded) ? - `xn--${test.encoded}` : - test.decoded - ), - toUnicode: (test) => assert.strictEqual( - punycode.toUnicode( - regexNonASCII.test(test.decoded) ? - `xn--${test.encoded}` : - test.decoded - ), - regexNonASCII.test(test.decoded) ? - test.decoded.toLowerCase() : - test.decoded - ) -}; - -tests.forEach((testCase) => { - Object.keys(testBattery).forEach((key) => { - try { - testBattery[key](testCase); - } catch (error) { - handleError(error, key); - } - }); -}); - -// BMP code point -assert.strictEqual(punycode.ucs2.encode([0x61]), 'a'); -// Supplementary code point (surrogate pair) -assert.strictEqual(punycode.ucs2.encode([0x1D306]), '\uD834\uDF06'); -// high surrogate -assert.strictEqual(punycode.ucs2.encode([0xD800]), '\uD800'); -// High surrogate followed by non-surrogates -assert.strictEqual(punycode.ucs2.encode([0xD800, 0x61, 0x62]), '\uD800ab'); -// low surrogate -assert.strictEqual(punycode.ucs2.encode([0xDC00]), '\uDC00'); -// Low surrogate followed by non-surrogates -assert.strictEqual(punycode.ucs2.encode([0xDC00, 0x61, 0x62]), '\uDC00ab'); - -assert.strictEqual(errors, 0); - -// test map domain -assert.strictEqual(punycode.toASCII('Bücher@日本語.com'), - 'Bücher@xn--wgv71a119e.com'); -assert.strictEqual(punycode.toUnicode('Bücher@xn--wgv71a119e.com'), - 'Bücher@日本語.com'); diff --git a/cli/tests/node_compat/test/parallel/test-readline-csi.js b/cli/tests/node_compat/test/parallel/test-readline-csi.js deleted file mode 100644 index e9a87b138f..0000000000 --- a/cli/tests/node_compat/test/parallel/test-readline-csi.js +++ /dev/null @@ -1,183 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const readline = require('readline'); -const { Writable } = require('stream'); -const { CSI } = require('internal/readline/utils'); - -{ - assert(CSI); - assert.strictEqual(CSI.kClearToLineBeginning, '\x1b[1K'); - assert.strictEqual(CSI.kClearToLineEnd, '\x1b[0K'); - assert.strictEqual(CSI.kClearLine, '\x1b[2K'); - assert.strictEqual(CSI.kClearScreenDown, '\x1b[0J'); - assert.strictEqual(CSI`1${2}3`, '\x1b[123'); -} - -class TestWritable extends Writable { - constructor() { - super(); - this.data = ''; - } - _write(chunk, encoding, callback) { - this.data += chunk.toString(); - callback(); - } -} - -const writable = new TestWritable(); - -assert.strictEqual(readline.clearScreenDown(writable), true); -assert.deepStrictEqual(writable.data, CSI.kClearScreenDown); -assert.strictEqual(readline.clearScreenDown(writable, common.mustCall()), true); - -// Verify that clearScreenDown() throws on invalid callback. -assert.throws(() => { - readline.clearScreenDown(writable, null); -}, /ERR_INVALID_ARG_TYPE/); - -// Verify that clearScreenDown() does not throw on null or undefined stream. -assert.strictEqual(readline.clearScreenDown(null, common.mustCall((err) => { - assert.strictEqual(err, null); -})), true); -assert.strictEqual(readline.clearScreenDown(undefined, common.mustCall()), - true); - -writable.data = ''; -assert.strictEqual(readline.clearLine(writable, -1), true); -assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - -writable.data = ''; -assert.strictEqual(readline.clearLine(writable, 1), true); -assert.deepStrictEqual(writable.data, CSI.kClearToLineEnd); - -writable.data = ''; -assert.strictEqual(readline.clearLine(writable, 0), true); -assert.deepStrictEqual(writable.data, CSI.kClearLine); - -writable.data = ''; -assert.strictEqual(readline.clearLine(writable, -1, common.mustCall()), true); -assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - -// Verify that clearLine() throws on invalid callback. -assert.throws(() => { - readline.clearLine(writable, 0, null); -}, /ERR_INVALID_ARG_TYPE/); - -// Verify that clearLine() does not throw on null or undefined stream. -assert.strictEqual(readline.clearLine(null, 0), true); -assert.strictEqual(readline.clearLine(undefined, 0), true); -assert.strictEqual(readline.clearLine(null, 0, common.mustCall((err) => { - assert.strictEqual(err, null); -})), true); -assert.strictEqual(readline.clearLine(undefined, 0, common.mustCall()), true); - -// Nothing is written when moveCursor 0, 0 -[ - [0, 0, ''], - [1, 0, '\x1b[1C'], - [-1, 0, '\x1b[1D'], - [0, 1, '\x1b[1B'], - [0, -1, '\x1b[1A'], - [1, 1, '\x1b[1C\x1b[1B'], - [-1, 1, '\x1b[1D\x1b[1B'], - [-1, -1, '\x1b[1D\x1b[1A'], - [1, -1, '\x1b[1C\x1b[1A'], -].forEach((set) => { - writable.data = ''; - assert.strictEqual(readline.moveCursor(writable, set[0], set[1]), true); - assert.deepStrictEqual(writable.data, set[2]); - writable.data = ''; - assert.strictEqual( - readline.moveCursor(writable, set[0], set[1], common.mustCall()), - true - ); - assert.deepStrictEqual(writable.data, set[2]); -}); - -// Verify that moveCursor() throws on invalid callback. -assert.throws(() => { - readline.moveCursor(writable, 1, 1, null); -}, /ERR_INVALID_ARG_TYPE/); - -// Verify that moveCursor() does not throw on null or undefined stream. -assert.strictEqual(readline.moveCursor(null, 1, 1), true); -assert.strictEqual(readline.moveCursor(undefined, 1, 1), true); -assert.strictEqual(readline.moveCursor(null, 1, 1, common.mustCall((err) => { - assert.strictEqual(err, null); -})), true); -assert.strictEqual(readline.moveCursor(undefined, 1, 1, common.mustCall()), - true); - -// Undefined or null as stream should not throw. -assert.strictEqual(readline.cursorTo(null), true); -assert.strictEqual(readline.cursorTo(), true); -assert.strictEqual(readline.cursorTo(null, 1, 1, common.mustCall()), true); -assert.strictEqual(readline.cursorTo(undefined, 1, 1, common.mustCall((err) => { - assert.strictEqual(err, null); -})), true); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 'a'), true); -assert.strictEqual(writable.data, ''); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 'a', 'b'), true); -assert.strictEqual(writable.data, ''); - -writable.data = ''; -assert.throws( - () => readline.cursorTo(writable, 'a', 1), - { - name: 'TypeError', - code: 'ERR_INVALID_CURSOR_POS', - message: 'Cannot set cursor row without setting its column' - }); -assert.strictEqual(writable.data, ''); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 1, 'a'), true); -assert.strictEqual(writable.data, '\x1b[2G'); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 1), true); -assert.strictEqual(writable.data, '\x1b[2G'); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 1, 2), true); -assert.strictEqual(writable.data, '\x1b[3;2H'); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 1, 2, common.mustCall()), true); -assert.strictEqual(writable.data, '\x1b[3;2H'); - -writable.data = ''; -assert.strictEqual(readline.cursorTo(writable, 1, common.mustCall()), true); -assert.strictEqual(writable.data, '\x1b[2G'); - -// Verify that cursorTo() throws on invalid callback. -assert.throws(() => { - readline.cursorTo(writable, 1, 1, null); -}, /ERR_INVALID_ARG_TYPE/); - -// Verify that cursorTo() throws if x or y is NaN. -assert.throws(() => { - readline.cursorTo(writable, NaN); -}, /ERR_INVALID_ARG_VALUE/); - -assert.throws(() => { - readline.cursorTo(writable, 1, NaN); -}, /ERR_INVALID_ARG_VALUE/); - -assert.throws(() => { - readline.cursorTo(writable, NaN, NaN); -}, /ERR_INVALID_ARG_VALUE/); diff --git a/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs b/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs deleted file mode 100644 index fb61b52d95..0000000000 --- a/cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs +++ /dev/null @@ -1,233 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals - - -import '../common/index.mjs'; -import assert from 'assert'; -import { Readline } from 'readline/promises'; -import { setImmediate } from 'timers/promises'; -import { Writable } from 'stream'; - -import utils from 'internal/readline/utils'; -const { CSI } = utils; - -const INVALID_ARG = { - name: 'TypeError', - code: 'ERR_INVALID_ARG_TYPE', -}; - -class TestWritable extends Writable { - data = ''; - _write(chunk, encoding, callback) { - this.data += chunk.toString(); - callback(); - } -} - -[ - undefined, null, - 0, 1, 1n, 1.1, NaN, Infinity, - true, false, - Symbol(), - '', '1', - [], {}, () => {}, -].forEach((arg) => - assert.throws(() => new Readline(arg), INVALID_ARG) -); - -{ - const writable = new TestWritable(); - const readline = new Readline(writable); - - await readline.clearScreenDown().commit(); - assert.deepStrictEqual(writable.data, CSI.kClearScreenDown); - await readline.clearScreenDown().commit(); - - writable.data = ''; - await readline.clearScreenDown().rollback(); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - await readline.clearLine(-1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - - writable.data = ''; - await readline.clearLine(1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineEnd); - - writable.data = ''; - await readline.clearLine(0).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearLine); - - writable.data = ''; - await readline.clearLine(-1).commit(); - assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); - - await readline.clearLine(0, null).commit(); - - // Nothing is written when moveCursor 0, 0 - for (const set of - [ - [0, 0, ''], - [1, 0, '\x1b[1C'], - [-1, 0, '\x1b[1D'], - [0, 1, '\x1b[1B'], - [0, -1, '\x1b[1A'], - [1, 1, '\x1b[1C\x1b[1B'], - [-1, 1, '\x1b[1D\x1b[1B'], - [-1, -1, '\x1b[1D\x1b[1A'], - [1, -1, '\x1b[1C\x1b[1A'], - ]) { - writable.data = ''; - await readline.moveCursor(set[0], set[1]).commit(); - assert.deepStrictEqual(writable.data, set[2]); - writable.data = ''; - await readline.moveCursor(set[0], set[1]).commit(); - assert.deepStrictEqual(writable.data, set[2]); - } - - - await readline.moveCursor(1, 1, null).commit(); - - writable.data = ''; - [ - undefined, null, - true, false, - Symbol(), - '', '1', - [], {}, () => {}, - ].forEach((arg) => - assert.throws(() => readline.cursorTo(arg), INVALID_ARG) - ); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo('a', 'b'), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo('a', 1), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - assert.throws(() => readline.cursorTo(1, 'a'), INVALID_ARG); - assert.strictEqual(writable.data, ''); - - writable.data = ''; - await readline.cursorTo(1).commit(); - assert.strictEqual(writable.data, '\x1b[2G'); - - writable.data = ''; - await readline.cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1).cursorTo(1, 2).commit(); - assert.strictEqual(writable.data, '\x1b[2G\x1b[3;2H'); - - writable.data = ''; - await readline.cursorTo(1).commit(); - assert.strictEqual(writable.data, '\x1b[2G'); - - // Verify that cursorTo() rejects if x or y is NaN. - [1.1, NaN, Infinity].forEach((arg) => { - assert.throws(() => readline.cursorTo(arg), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); - }); - - [1.1, NaN, Infinity].forEach((arg) => { - assert.throws(() => readline.cursorTo(1, arg), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); - }); - - assert.throws(() => readline.cursorTo(NaN, NaN), { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', - }); -} - -{ - const error = new Error(); - const writable = new class extends Writable { - _write() { throw error; } - }(); - const readline = new Readline(writable); - - await assert.rejects(readline.cursorTo(1).commit(), error); -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - - await readline.clearScreenDown(); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, CSI.kClearScreenDown); -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [dir, data] of - [ - [-1, CSI.kClearToLineBeginning], - [1, CSI.kClearToLineEnd], - [0, CSI.kClearLine], - ]) { - writable.data = ''; - readline.clearLine(dir); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [x, y, data] of - [ - [0, 0, ''], - [1, 0, '\x1b[1C'], - [-1, 0, '\x1b[1D'], - [0, 1, '\x1b[1B'], - [0, -1, '\x1b[1A'], - [1, 1, '\x1b[1C\x1b[1B'], - [-1, 1, '\x1b[1D\x1b[1B'], - [-1, -1, '\x1b[1D\x1b[1A'], - [1, -1, '\x1b[1C\x1b[1A'], - ]) { - writable.data = ''; - readline.moveCursor(x, y); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} - -{ - const writable = new TestWritable(); - const readline = new Readline(writable, { autoCommit: true }); - for (const [x, y, data] of - [ - [1, undefined, '\x1b[2G'], - [1, 2, '\x1b[3;2H'], - ]) { - writable.data = ''; - readline.cursorTo(x, y); - await setImmediate(); // Wait for next tick as auto commit is asynchronous. - assert.deepStrictEqual(writable.data, data); - } -} diff --git a/cli/tests/node_compat/test/parallel/test-readline-promises-interface.js b/cli/tests/node_compat/test/parallel/test-readline-promises-interface.js deleted file mode 100644 index fbbfb46ad3..0000000000 --- a/cli/tests/node_compat/test/parallel/test-readline-promises-interface.js +++ /dev/null @@ -1,1149 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-internals -'use strict'; -const common = require('../common'); -common.skipIfDumbTerminal(); - -const assert = require('assert'); -const readline = require('readline/promises'); -const { - getStringWidth, - stripVTControlCharacters -} = require('internal/util/inspect'); -const EventEmitter = require('events').EventEmitter; -const { Writable, Readable } = require('stream'); - -class FakeInput extends EventEmitter { - resume() {} - pause() {} - write() {} - end() {} -} - -function isWarned(emitter) { - for (const name in emitter) { - const listeners = emitter[name]; - if (listeners.warned) return true; - } - return false; -} - -function getInterface(options) { - const fi = new FakeInput(); - const rli = new readline.Interface({ - input: fi, - output: fi, - ...options, - }); - return [rli, fi]; -} - -function assertCursorRowsAndCols(rli, rows, cols) { - const cursorPos = rli.getCursorPos(); - assert.strictEqual(cursorPos.rows, rows); - assert.strictEqual(cursorPos.cols, cols); -} - -[ - undefined, - 50, - 0, - 100.5, - 5000, -].forEach((crlfDelay) => { - const [rli] = getInterface({ crlfDelay }); - assert.strictEqual(rli.crlfDelay, Math.max(crlfDelay || 100, 100)); - rli.close(); -}); - -{ - const input = new FakeInput(); - - // Constructor throws if completer is not a function or undefined - assert.throws(() => { - readline.createInterface({ - input, - completer: 'string is not valid' - }); - }, { - name: 'TypeError', - code: 'ERR_INVALID_ARG_VALUE' - }); - - assert.throws(() => { - readline.createInterface({ - input, - completer: '' - }); - }, { - name: 'TypeError', - code: 'ERR_INVALID_ARG_VALUE' - }); - - assert.throws(() => { - readline.createInterface({ - input, - completer: false - }); - }, { - name: 'TypeError', - code: 'ERR_INVALID_ARG_VALUE' - }); - - // Constructor throws if history is not an array - ['not an array', 123, 123n, {}, true, Symbol(), null].forEach((history) => { - assert.throws(() => { - readline.createInterface({ - input, - history, - }); - }, { - name: 'TypeError', - code: 'ERR_INVALID_ARG_TYPE' - }); - }); - - // Constructor throws if historySize is not a positive number - ['not a number', -1, NaN, {}, true, Symbol(), null].forEach((historySize) => { - assert.throws(() => { - readline.createInterface({ - input, - historySize, - }); - }, { - name: 'RangeError', - code: 'ERR_INVALID_ARG_VALUE' - }); - }); - - // Check for invalid tab sizes. - assert.throws( - () => new readline.Interface({ - input, - tabSize: 0 - }), - { code: 'ERR_OUT_OF_RANGE' } - ); - - assert.throws( - () => new readline.Interface({ - input, - tabSize: '4' - }), - { code: 'ERR_INVALID_ARG_TYPE' } - ); - - assert.throws( - () => new readline.Interface({ - input, - tabSize: 4.5 - }), - { - code: 'ERR_OUT_OF_RANGE', - message: 'The value of "tabSize" is out of range. ' + - 'It must be an integer. Received 4.5' - } - ); -} - -// Sending a single character with no newline -{ - const fi = new FakeInput(); - const rli = new readline.Interface(fi, {}); - rli.on('line', common.mustNotCall()); - fi.emit('data', 'a'); - rli.close(); -} - -// Sending multiple newlines at once that does not end with a new line and a -// `end` event(last line is). \r should behave like \n when alone. -{ - const [rli, fi] = getInterface({ terminal: true }); - const expectedLines = ['foo', 'bar', 'baz', 'bat']; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length - 1)); - fi.emit('data', expectedLines.join('\r')); - rli.close(); -} - -// \r at start of input should output blank line -{ - const [rli, fi] = getInterface({ terminal: true }); - const expectedLines = ['', 'foo' ]; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length)); - fi.emit('data', '\rfoo\r'); - rli.close(); -} - -// \t does not become part of the input when there is a completer function -{ - const completer = (line) => [[], line]; - const [rli, fi] = getInterface({ terminal: true, completer }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'foo'); - })); - for (const character of '\tfo\to\t') { - fi.emit('data', character); - } - fi.emit('data', '\n'); - rli.close(); -} - -// \t when there is no completer function should behave like an ordinary -// character -{ - const [rli, fi] = getInterface({ terminal: true }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, '\t'); - })); - fi.emit('data', '\t'); - fi.emit('data', '\n'); - rli.close(); -} - -// Adding history lines should emit the history event with -// the history array -{ - const [rli, fi] = getInterface({ terminal: true }); - const expectedLines = ['foo', 'bar', 'baz', 'bat']; - rli.on('history', common.mustCall((history) => { - const expectedHistory = expectedLines.slice(0, history.length).reverse(); - assert.deepStrictEqual(history, expectedHistory); - }, expectedLines.length)); - for (const line of expectedLines) { - fi.emit('data', `${line}\n`); - } - rli.close(); -} - -// Altering the history array in the listener should not alter -// the line being processed -{ - const [rli, fi] = getInterface({ terminal: true }); - const expectedLine = 'foo'; - rli.on('history', common.mustCall((history) => { - assert.strictEqual(history[0], expectedLine); - history.shift(); - })); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLine); - assert.strictEqual(rli.history.length, 0); - })); - fi.emit('data', `${expectedLine}\n`); - rli.close(); -} - -// Duplicate lines are removed from history when -// `options.removeHistoryDuplicates` is `true` -{ - const [rli, fi] = getInterface({ - terminal: true, - removeHistoryDuplicates: true - }); - const expectedLines = ['foo', 'bar', 'baz', 'bar', 'bat', 'bat']; - // ['foo', 'baz', 'bar', bat']; - let callCount = 0; - rli.on('line', function(line) { - assert.strictEqual(line, expectedLines[callCount]); - callCount++; - }); - fi.emit('data', `${expectedLines.join('\n')}\n`); - assert.strictEqual(callCount, expectedLines.length); - fi.emit('keypress', '.', { name: 'up' }); // 'bat' - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'bar' - assert.notStrictEqual(rli.line, expectedLines[--callCount]); - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'baz' - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'foo' - assert.notStrictEqual(rli.line, expectedLines[--callCount]); - assert.strictEqual(rli.line, expectedLines[--callCount]); - assert.strictEqual(callCount, 0); - fi.emit('keypress', '.', { name: 'down' }); // 'baz' - assert.strictEqual(rli.line, 'baz'); - assert.strictEqual(rli.historyIndex, 2); - fi.emit('keypress', '.', { name: 'n', ctrl: true }); // 'bar' - assert.strictEqual(rli.line, 'bar'); - assert.strictEqual(rli.historyIndex, 1); - fi.emit('keypress', '.', { name: 'n', ctrl: true }); - assert.strictEqual(rli.line, 'bat'); - assert.strictEqual(rli.historyIndex, 0); - // Activate the substring history search. - fi.emit('keypress', '.', { name: 'down' }); // 'bat' - assert.strictEqual(rli.line, 'bat'); - assert.strictEqual(rli.historyIndex, -1); - // Deactivate substring history search. - fi.emit('keypress', '.', { name: 'backspace' }); // 'ba' - assert.strictEqual(rli.historyIndex, -1); - assert.strictEqual(rli.line, 'ba'); - // Activate the substring history search. - fi.emit('keypress', '.', { name: 'down' }); // 'ba' - assert.strictEqual(rli.historyIndex, -1); - assert.strictEqual(rli.line, 'ba'); - fi.emit('keypress', '.', { name: 'down' }); // 'ba' - assert.strictEqual(rli.historyIndex, -1); - assert.strictEqual(rli.line, 'ba'); - fi.emit('keypress', '.', { name: 'up' }); // 'bat' - assert.strictEqual(rli.historyIndex, 0); - assert.strictEqual(rli.line, 'bat'); - fi.emit('keypress', '.', { name: 'up' }); // 'bar' - assert.strictEqual(rli.historyIndex, 1); - assert.strictEqual(rli.line, 'bar'); - fi.emit('keypress', '.', { name: 'up' }); // 'baz' - assert.strictEqual(rli.historyIndex, 2); - assert.strictEqual(rli.line, 'baz'); - fi.emit('keypress', '.', { name: 'up' }); // 'ba' - assert.strictEqual(rli.historyIndex, 4); - assert.strictEqual(rli.line, 'ba'); - fi.emit('keypress', '.', { name: 'up' }); // 'ba' - assert.strictEqual(rli.historyIndex, 4); - assert.strictEqual(rli.line, 'ba'); - // Deactivate substring history search and reset history index. - fi.emit('keypress', '.', { name: 'right' }); // 'ba' - assert.strictEqual(rli.historyIndex, -1); - assert.strictEqual(rli.line, 'ba'); - // Substring history search activated. - fi.emit('keypress', '.', { name: 'up' }); // 'ba' - assert.strictEqual(rli.historyIndex, 0); - assert.strictEqual(rli.line, 'bat'); - rli.close(); -} - -// Duplicate lines are not removed from history when -// `options.removeHistoryDuplicates` is `false` -{ - const [rli, fi] = getInterface({ - terminal: true, - removeHistoryDuplicates: false - }); - const expectedLines = ['foo', 'bar', 'baz', 'bar', 'bat', 'bat']; - let callCount = 0; - rli.on('line', function(line) { - assert.strictEqual(line, expectedLines[callCount]); - callCount++; - }); - fi.emit('data', `${expectedLines.join('\n')}\n`); - assert.strictEqual(callCount, expectedLines.length); - fi.emit('keypress', '.', { name: 'up' }); // 'bat' - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'bar' - assert.notStrictEqual(rli.line, expectedLines[--callCount]); - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'baz' - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'bar' - assert.strictEqual(rli.line, expectedLines[--callCount]); - fi.emit('keypress', '.', { name: 'up' }); // 'foo' - assert.strictEqual(rli.line, expectedLines[--callCount]); - assert.strictEqual(callCount, 0); - rli.close(); -} - -// Regression test for repl freeze, #1968: -// check that nothing fails if 'keypress' event throws. -{ - const [rli, fi] = getInterface({ terminal: true }); - const keys = []; - const err = new Error('bad thing happened'); - fi.on('keypress', function(key) { - keys.push(key); - if (key === 'X') { - throw err; - } - }); - assert.throws( - () => fi.emit('data', 'fooX'), - (e) => { - assert.strictEqual(e, err); - return true; - } - ); - fi.emit('data', 'bar'); - assert.strictEqual(keys.join(''), 'fooXbar'); - rli.close(); -} - -// History is bound -{ - const [rli, fi] = getInterface({ terminal: true, historySize: 2 }); - const lines = ['line 1', 'line 2', 'line 3']; - fi.emit('data', lines.join('\n') + '\n'); - assert.strictEqual(rli.history.length, 2); - assert.strictEqual(rli.history[0], 'line 3'); - assert.strictEqual(rli.history[1], 'line 2'); -} - -// Question -{ - const [rli] = getInterface({ terminal: true }); - const expectedLines = ['foo']; - rli.question(expectedLines[0]).then(() => rli.close()); - assertCursorRowsAndCols(rli, 0, expectedLines[0].length); - rli.close(); -} - -// Sending a multi-line question -{ - const [rli] = getInterface({ terminal: true }); - const expectedLines = ['foo', 'bar']; - rli.question(expectedLines.join('\n')).then(() => rli.close()); - assertCursorRowsAndCols( - rli, expectedLines.length - 1, expectedLines.slice(-1)[0].length); - rli.close(); -} - -{ - // Beginning and end of line - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - fi.emit('keypress', '.', { ctrl: true, name: 'a' }); - assertCursorRowsAndCols(rli, 0, 0); - fi.emit('keypress', '.', { ctrl: true, name: 'e' }); - assertCursorRowsAndCols(rli, 0, 19); - rli.close(); -} - -{ - // Back and Forward one character - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - assertCursorRowsAndCols(rli, 0, 19); - - // Back one character - fi.emit('keypress', '.', { ctrl: true, name: 'b' }); - assertCursorRowsAndCols(rli, 0, 18); - // Back one character - fi.emit('keypress', '.', { ctrl: true, name: 'b' }); - assertCursorRowsAndCols(rli, 0, 17); - // Forward one character - fi.emit('keypress', '.', { ctrl: true, name: 'f' }); - assertCursorRowsAndCols(rli, 0, 18); - // Forward one character - fi.emit('keypress', '.', { ctrl: true, name: 'f' }); - assertCursorRowsAndCols(rli, 0, 19); - rli.close(); -} - -// Back and Forward one astral character -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', '💻'); - - // Move left one character/code point - fi.emit('keypress', '.', { name: 'left' }); - assertCursorRowsAndCols(rli, 0, 0); - - // Move right one character/code point - fi.emit('keypress', '.', { name: 'right' }); - assertCursorRowsAndCols(rli, 0, 2); - - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, '💻'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// Two astral characters left -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', '💻'); - - // Move left one character/code point - fi.emit('keypress', '.', { name: 'left' }); - assertCursorRowsAndCols(rli, 0, 0); - - fi.emit('data', '🐕'); - assertCursorRowsAndCols(rli, 0, 2); - - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, '🐕💻'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// Two astral characters right -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', '💻'); - - // Move left one character/code point - fi.emit('keypress', '.', { name: 'right' }); - assertCursorRowsAndCols(rli, 0, 2); - - fi.emit('data', '🐕'); - assertCursorRowsAndCols(rli, 0, 4); - - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, '💻🐕'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -{ - // `wordLeft` and `wordRight` - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - fi.emit('keypress', '.', { ctrl: true, name: 'left' }); - assertCursorRowsAndCols(rli, 0, 16); - fi.emit('keypress', '.', { meta: true, name: 'b' }); - assertCursorRowsAndCols(rli, 0, 10); - fi.emit('keypress', '.', { ctrl: true, name: 'right' }); - assertCursorRowsAndCols(rli, 0, 16); - fi.emit('keypress', '.', { meta: true, name: 'f' }); - assertCursorRowsAndCols(rli, 0, 19); - rli.close(); -} - -// `deleteWordLeft` -[ - { ctrl: true, name: 'w' }, - { ctrl: true, name: 'backspace' }, - { meta: true, name: 'backspace' }, -].forEach((deleteWordLeftKey) => { - let [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - fi.emit('keypress', '.', { ctrl: true, name: 'left' }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'the quick fox'); - })); - fi.emit('keypress', '.', deleteWordLeftKey); - fi.emit('data', '\n'); - rli.close(); - - // No effect if pressed at beginning of line - [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - fi.emit('keypress', '.', { ctrl: true, name: 'a' }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'the quick brown fox'); - })); - fi.emit('keypress', '.', deleteWordLeftKey); - fi.emit('data', '\n'); - rli.close(); -}); - -// `deleteWordRight` -[ - { ctrl: true, name: 'delete' }, - { meta: true, name: 'delete' }, - { meta: true, name: 'd' }, -].forEach((deleteWordRightKey) => { - let [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - fi.emit('keypress', '.', { ctrl: true, name: 'left' }); - fi.emit('keypress', '.', { ctrl: true, name: 'left' }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'the quick fox'); - })); - fi.emit('keypress', '.', deleteWordRightKey); - fi.emit('data', '\n'); - rli.close(); - - // No effect if pressed at end of line - [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'the quick brown fox'); - })); - fi.emit('keypress', '.', deleteWordRightKey); - fi.emit('data', '\n'); - rli.close(); -}); - -// deleteLeft -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - assertCursorRowsAndCols(rli, 0, 19); - - // Delete left character - fi.emit('keypress', '.', { ctrl: true, name: 'h' }); - assertCursorRowsAndCols(rli, 0, 18); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'the quick brown fo'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// deleteLeft astral character -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', '💻'); - assertCursorRowsAndCols(rli, 0, 2); - // Delete left character - fi.emit('keypress', '.', { ctrl: true, name: 'h' }); - assertCursorRowsAndCols(rli, 0, 0); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, ''); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// deleteRight -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - - // Go to the start of the line - fi.emit('keypress', '.', { ctrl: true, name: 'a' }); - assertCursorRowsAndCols(rli, 0, 0); - - // Delete right character - fi.emit('keypress', '.', { ctrl: true, name: 'd' }); - assertCursorRowsAndCols(rli, 0, 0); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'he quick brown fox'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// deleteRight astral character -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', '💻'); - - // Go to the start of the line - fi.emit('keypress', '.', { ctrl: true, name: 'a' }); - assertCursorRowsAndCols(rli, 0, 0); - - // Delete right character - fi.emit('keypress', '.', { ctrl: true, name: 'd' }); - assertCursorRowsAndCols(rli, 0, 0); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, ''); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// deleteLineLeft -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - assertCursorRowsAndCols(rli, 0, 19); - - // Delete from current to start of line - fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'backspace' }); - assertCursorRowsAndCols(rli, 0, 0); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, ''); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// deleteLineRight -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick brown fox'); - - // Go to the start of the line - fi.emit('keypress', '.', { ctrl: true, name: 'a' }); - assertCursorRowsAndCols(rli, 0, 0); - - // Delete from current to end of line - fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'delete' }); - assertCursorRowsAndCols(rli, 0, 0); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, ''); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// Close readline interface -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('keypress', '.', { ctrl: true, name: 'c' }); - assert(rli.closed); -} - -// Multi-line input cursor position -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.columns = 10; - fi.emit('data', 'multi-line text'); - assertCursorRowsAndCols(rli, 1, 5); - rli.close(); -} - -// Multi-line input cursor position and long tabs -{ - const [rli, fi] = getInterface({ tabSize: 16, terminal: true, prompt: '' }); - fi.columns = 10; - fi.emit('data', 'multi-line\ttext \t'); - assert.strictEqual(rli.cursor, 17); - assertCursorRowsAndCols(rli, 3, 2); - rli.close(); -} - -// Check for the default tab size. -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - fi.emit('data', 'the quick\tbrown\tfox'); - assert.strictEqual(rli.cursor, 19); - // The first tab is 7 spaces long, the second one 3 spaces. - assertCursorRowsAndCols(rli, 0, 27); -} - -// Multi-line prompt cursor position -{ - const [rli, fi] = getInterface({ - terminal: true, - prompt: '\nfilledline\nwraping text\n> ' - }); - fi.columns = 10; - fi.emit('data', 't'); - assertCursorRowsAndCols(rli, 4, 3); - rli.close(); -} - -// Clear the whole screen -{ - const [rli, fi] = getInterface({ terminal: true, prompt: '' }); - const lines = ['line 1', 'line 2', 'line 3']; - fi.emit('data', lines.join('\n')); - fi.emit('keypress', '.', { ctrl: true, name: 'l' }); - assertCursorRowsAndCols(rli, 0, 6); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'line 3'); - })); - fi.emit('data', '\n'); - rli.close(); -} - -// Wide characters should be treated as two columns. -assert.strictEqual(getStringWidth('a'), 1); -assert.strictEqual(getStringWidth('あ'), 2); -assert.strictEqual(getStringWidth('谢'), 2); -assert.strictEqual(getStringWidth('고'), 2); -assert.strictEqual(getStringWidth(String.fromCodePoint(0x1f251)), 2); -assert.strictEqual(getStringWidth('abcde'), 5); -assert.strictEqual(getStringWidth('古池や'), 6); -assert.strictEqual(getStringWidth('ノード.js'), 9); -assert.strictEqual(getStringWidth('你好'), 4); -assert.strictEqual(getStringWidth('안녕하세요'), 10); -assert.strictEqual(getStringWidth('A\ud83c\ude00BC'), 5); -assert.strictEqual(getStringWidth('👨‍👩‍👦‍👦'), 8); -assert.strictEqual(getStringWidth('🐕𐐷あ💻😀'), 9); -// TODO(BridgeAR): This should have a width of 4. -assert.strictEqual(getStringWidth('⓬⓪'), 2); -assert.strictEqual(getStringWidth('\u0301\u200D\u200E'), 0); - -// Check if vt control chars are stripped -assert.strictEqual(stripVTControlCharacters('\u001b[31m> \u001b[39m'), '> '); -assert.strictEqual( - stripVTControlCharacters('\u001b[31m> \u001b[39m> '), - '> > ' -); -assert.strictEqual(stripVTControlCharacters('\u001b[31m\u001b[39m'), ''); -assert.strictEqual(stripVTControlCharacters('> '), '> '); -assert.strictEqual(getStringWidth('\u001b[31m> \u001b[39m'), 2); -assert.strictEqual(getStringWidth('\u001b[31m> \u001b[39m> '), 4); -assert.strictEqual(getStringWidth('\u001b[31m\u001b[39m'), 0); -assert.strictEqual(getStringWidth('> '), 2); - -// Check EventEmitter memory leak -for (let i = 0; i < 12; i++) { - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout - }); - rl.close(); - assert.strictEqual(isWarned(process.stdin._events), false); - assert.strictEqual(isWarned(process.stdout._events), false); -} - -[true, false].forEach(function(terminal) { - // Disable history - { - const [rli, fi] = getInterface({ terminal, historySize: 0 }); - assert.strictEqual(rli.historySize, 0); - - fi.emit('data', 'asdf\n'); - assert.deepStrictEqual(rli.history, []); - rli.close(); - } - - // Default history size 30 - { - const [rli, fi] = getInterface({ terminal }); - assert.strictEqual(rli.historySize, 30); - - fi.emit('data', 'asdf\n'); - assert.deepStrictEqual(rli.history, terminal ? ['asdf'] : []); - rli.close(); - } - - // Sending a full line - { - const [rli, fi] = getInterface({ terminal }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'asdf'); - })); - fi.emit('data', 'asdf\n'); - } - - // Ensure that options.signal.removeEventListener was called - { - const ac = new AbortController(); - const signal = ac.signal; - const [rli] = getInterface({ terminal }); - signal.removeEventListener = common.mustCall( - (event, onAbortFn) => { - assert.strictEqual(event, 'abort'); - assert.strictEqual(onAbortFn.name, 'onAbort'); - }); - - rli.question('hello?', { signal }).then(common.mustCall()); - - rli.write('bar\n'); - ac.abort(); - rli.close(); - } - - // Sending a blank line - { - const [rli, fi] = getInterface({ terminal }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, ''); - })); - fi.emit('data', '\n'); - } - - // Sending a single character with no newline and then a newline - { - const [rli, fi] = getInterface({ terminal }); - let called = false; - rli.on('line', (line) => { - called = true; - assert.strictEqual(line, 'a'); - }); - fi.emit('data', 'a'); - assert.ok(!called); - fi.emit('data', '\n'); - assert.ok(called); - rli.close(); - } - - // Sending multiple newlines at once - { - const [rli, fi] = getInterface({ terminal }); - const expectedLines = ['foo', 'bar', 'baz']; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length)); - fi.emit('data', `${expectedLines.join('\n')}\n`); - rli.close(); - } - - // Sending multiple newlines at once that does not end with a new line - { - const [rli, fi] = getInterface({ terminal }); - const expectedLines = ['foo', 'bar', 'baz', 'bat']; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length - 1)); - fi.emit('data', expectedLines.join('\n')); - rli.close(); - } - - // Sending multiple newlines at once that does not end with a new(empty) - // line and a `end` event - { - const [rli, fi] = getInterface({ terminal }); - const expectedLines = ['foo', 'bar', 'baz', '']; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length - 1)); - rli.on('close', common.mustCall()); - fi.emit('data', expectedLines.join('\n')); - fi.emit('end'); - rli.close(); - } - - // Sending a multi-byte utf8 char over multiple writes - { - const buf = Buffer.from('☮', 'utf8'); - const [rli, fi] = getInterface({ terminal }); - let callCount = 0; - rli.on('line', function(line) { - callCount++; - assert.strictEqual(line, buf.toString('utf8')); - }); - for (const i of buf) { - fi.emit('data', Buffer.from([i])); - } - assert.strictEqual(callCount, 0); - fi.emit('data', '\n'); - assert.strictEqual(callCount, 1); - rli.close(); - } - - // Calling readline without `new` - { - const [rli, fi] = getInterface({ terminal }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'asdf'); - })); - fi.emit('data', 'asdf\n'); - rli.close(); - } - - // Calling the question callback - { - const [rli] = getInterface({ terminal }); - rli.question('foo?').then(common.mustCall((answer) => { - assert.strictEqual(answer, 'bar'); - })); - rli.write('bar\n'); - rli.close(); - } - - // Calling the question callback with abort signal - { - const [rli] = getInterface({ terminal }); - const { signal } = new AbortController(); - rli.question('foo?', { signal }).then(common.mustCall((answer) => { - assert.strictEqual(answer, 'bar'); - })); - rli.write('bar\n'); - rli.close(); - } - - // Aborting a question - { - const ac = new AbortController(); - const signal = ac.signal; - const [rli] = getInterface({ terminal }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'bar'); - })); - assert.rejects(rli.question('hello?', { signal }), { name: 'AbortError' }) - .then(common.mustCall()); - ac.abort(); - rli.write('bar\n'); - rli.close(); - } - - (async () => { - const [rli] = getInterface({ terminal }); - const signal = AbortSignal.abort('boom'); - await assert.rejects(rli.question('hello', { signal }), { - cause: 'boom', - }); - rli.close(); - })().then(common.mustCall()); - - // Throw an error when question is executed with an aborted signal - { - const ac = new AbortController(); - const signal = ac.signal; - ac.abort(); - const [rli] = getInterface({ terminal }); - assert.rejects( - rli.question('hello?', { signal }), - { - name: 'AbortError' - } - ).then(common.mustCall()); - rli.close(); - } - - // Call question after close - { - const [rli, fi] = getInterface({ terminal }); - rli.question('What\'s your name?').then(common.mustCall((name) => { - assert.strictEqual(name, 'Node.js'); - rli.close(); - rli.question('How are you?') - .then(common.mustNotCall(), common.expectsError({ - code: 'ERR_USE_AFTER_CLOSE', - name: 'Error' - })); - assert.notStrictEqual(rli.getPrompt(), 'How are you?'); - })); - fi.emit('data', 'Node.js\n'); - } - - - // Can create a new readline Interface with a null output argument - { - const [rli, fi] = getInterface({ output: null, terminal }); - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, 'asdf'); - })); - fi.emit('data', 'asdf\n'); - - rli.setPrompt('ddd> '); - rli.prompt(); - rli.write("really shouldn't be seeing this"); - rli.question('What do you think of node.js? ', function(answer) { - console.log('Thank you for your valuable feedback:', answer); - rli.close(); - }); - } - - // Calling the getPrompt method - { - const expectedPrompts = ['$ ', '> ']; - const [rli] = getInterface({ terminal }); - for (const prompt of expectedPrompts) { - rli.setPrompt(prompt); - assert.strictEqual(rli.getPrompt(), prompt); - } - } - - { - const expected = terminal ? - ['\u001b[1G', '\u001b[0J', '$ ', '\u001b[3G'] : - ['$ ']; - - const output = new Writable({ - write: common.mustCall((chunk, enc, cb) => { - assert.strictEqual(chunk.toString(), expected.shift()); - cb(); - rl.close(); - }, expected.length) - }); - - const rl = readline.createInterface({ - input: new Readable({ read: common.mustCall() }), - output, - prompt: '$ ', - terminal - }); - - rl.prompt(); - - assert.strictEqual(rl.getPrompt(), '$ '); - } - - { - const fi = new FakeInput(); - assert.deepStrictEqual(fi.listeners(terminal ? 'keypress' : 'data'), []); - } - - // Emit two line events when the delay - // between \r and \n exceeds crlfDelay - { - const crlfDelay = 200; - const [rli, fi] = getInterface({ terminal, crlfDelay }); - let callCount = 0; - rli.on('line', function(line) { - callCount++; - }); - fi.emit('data', '\r'); - setTimeout(common.mustCall(() => { - fi.emit('data', '\n'); - assert.strictEqual(callCount, 2); - rli.close(); - }), crlfDelay + 10); - } - - // For the purposes of the following tests, we do not care about the exact - // value of crlfDelay, only that the behaviour conforms to what's expected. - // Setting it to Infinity allows the test to succeed even under extreme - // CPU stress. - const crlfDelay = Infinity; - - // Set crlfDelay to `Infinity` is allowed - { - const delay = 200; - const [rli, fi] = getInterface({ terminal, crlfDelay }); - let callCount = 0; - rli.on('line', function(line) { - callCount++; - }); - fi.emit('data', '\r'); - setTimeout(common.mustCall(() => { - fi.emit('data', '\n'); - assert.strictEqual(callCount, 1); - rli.close(); - }), delay); - } - - // Sending multiple newlines at once that does not end with a new line - // and a `end` event(last line is) - - // \r\n should emit one line event, not two - { - const [rli, fi] = getInterface({ terminal, crlfDelay }); - const expectedLines = ['foo', 'bar', 'baz', 'bat']; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines.shift()); - }, expectedLines.length - 1)); - fi.emit('data', expectedLines.join('\r\n')); - rli.close(); - } - - // \r\n should emit one line event when split across multiple writes. - { - const [rli, fi] = getInterface({ terminal, crlfDelay }); - const expectedLines = ['foo', 'bar', 'baz', 'bat']; - let callCount = 0; - rli.on('line', common.mustCall((line) => { - assert.strictEqual(line, expectedLines[callCount]); - callCount++; - }, expectedLines.length)); - expectedLines.forEach((line) => { - fi.emit('data', `${line}\r`); - fi.emit('data', '\n'); - }); - rli.close(); - } - - // Emit one line event when the delay between \r and \n is - // over the default crlfDelay but within the setting value. - { - const delay = 125; - const [rli, fi] = getInterface({ terminal, crlfDelay }); - let callCount = 0; - rli.on('line', () => callCount++); - fi.emit('data', '\r'); - setTimeout(common.mustCall(() => { - fi.emit('data', '\n'); - assert.strictEqual(callCount, 1); - rli.close(); - }), delay); - } -}); - -// Ensure that the _wordLeft method works even for large input -{ - const input = new Readable({ - read() { - this.push('\x1B[1;5D'); // CTRL + Left - this.push(null); - }, - }); - const output = new Writable({ - write: common.mustCall((data, encoding, cb) => { - assert.strictEqual(rl.cursor, rl.line.length - 1); - cb(); - }), - }); - const rl = new readline.createInterface({ - input, - output, - terminal: true, - }); - rl.line = `a${' '.repeat(1e6)}a`; - rl.cursor = rl.line.length; -} diff --git a/cli/tests/node_compat/test/parallel/test-stream-asIndexedPairs.mjs b/cli/tests/node_compat/test/parallel/test-stream-asIndexedPairs.mjs deleted file mode 100644 index f7f8b6d7ca..0000000000 --- a/cli/tests/node_compat/test/parallel/test-stream-asIndexedPairs.mjs +++ /dev/null @@ -1,60 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -import '../common/index.mjs'; -import { Readable } from 'stream'; -import { deepStrictEqual, rejects, throws } from 'assert'; - -{ - // asIndexedPairs with a synchronous stream - const pairs = await Readable.from([1, 2, 3]).asIndexedPairs().toArray(); - deepStrictEqual(pairs, [[0, 1], [1, 2], [2, 3]]); - const empty = await Readable.from([]).asIndexedPairs().toArray(); - deepStrictEqual(empty, []); -} - -{ - // asIndexedPairs works an asynchronous streams - const asyncFrom = (...args) => Readable.from(...args).map(async (x) => x); - const pairs = await asyncFrom([1, 2, 3]).asIndexedPairs().toArray(); - deepStrictEqual(pairs, [[0, 1], [1, 2], [2, 3]]); - const empty = await asyncFrom([]).asIndexedPairs().toArray(); - deepStrictEqual(empty, []); -} - -{ - // Does not enumerate an infinite stream - const infinite = () => Readable.from(async function* () { - while (true) yield 1; - }()); - const pairs = await infinite().asIndexedPairs().take(3).toArray(); - deepStrictEqual(pairs, [[0, 1], [1, 1], [2, 1]]); - const empty = await infinite().asIndexedPairs().take(0).toArray(); - deepStrictEqual(empty, []); -} - -{ - // AbortSignal - await rejects(async () => { - const ac = new AbortController(); - const { signal } = ac; - const p = Readable.from([1, 2, 3]).asIndexedPairs({ signal }).toArray(); - ac.abort(); - await p; - }, { name: 'AbortError' }); - - await rejects(async () => { - const signal = AbortSignal.abort(); - await Readable.from([1, 2, 3]).asIndexedPairs({ signal }).toArray(); - }, /AbortError/); -} - -{ - // Error cases - throws(() => Readable.from([1]).asIndexedPairs(1), /ERR_INVALID_ARG_TYPE/); - throws(() => Readable.from([1]).asIndexedPairs({ signal: true }), /ERR_INVALID_ARG_TYPE/); -} diff --git a/cli/tests/node_compat/test/parallel/test-stream-catch-rejections.js b/cli/tests/node_compat/test/parallel/test-stream-catch-rejections.js deleted file mode 100644 index 066d68193e..0000000000 --- a/cli/tests/node_compat/test/parallel/test-stream-catch-rejections.js +++ /dev/null @@ -1,58 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -'use strict'; - -const common = require('../common'); -const stream = require('stream'); -const assert = require('assert'); - -{ - const r = new stream.Readable({ - captureRejections: true, - read() { - } - }); - r.push('hello'); - r.push('world'); - - const err = new Error('kaboom'); - - r.on('error', common.mustCall((_err) => { - assert.strictEqual(err, _err); - assert.strictEqual(r.destroyed, true); - })); - - r.on('data', async () => { - throw err; - }); -} - -{ - const w = new stream.Writable({ - captureRejections: true, - highWaterMark: 1, - write(chunk, enc, cb) { - process.nextTick(cb); - } - }); - - const err = new Error('kaboom'); - - w.write('hello', () => { - w.write('world'); - }); - - w.on('error', common.mustCall((_err) => { - assert.strictEqual(err, _err); - assert.strictEqual(w.destroyed, true); - })); - - w.on('drain', common.mustCall(async () => { - throw err; - }, 2)); -} diff --git a/cli/tests/node_compat/test/parallel/test-stream-some-find-every.mjs b/cli/tests/node_compat/test/parallel/test-stream-some-find-every.mjs deleted file mode 100644 index 61bbce21d4..0000000000 --- a/cli/tests/node_compat/test/parallel/test-stream-some-find-every.mjs +++ /dev/null @@ -1,179 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -import * as common from '../common/index.mjs'; -import { setTimeout } from 'timers/promises'; -import { Readable } from 'stream'; -import assert from 'assert'; - - -function oneTo5() { - return Readable.from([1, 2, 3, 4, 5]); -} - -function oneTo5Async() { - return oneTo5().map(async (x) => { - await Promise.resolve(); - return x; - }); -} -{ - // Some, find, and every work with a synchronous stream and predicate - assert.strictEqual(await oneTo5().some((x) => x > 3), true); - assert.strictEqual(await oneTo5().every((x) => x > 3), false); - assert.strictEqual(await oneTo5().find((x) => x > 3), 4); - assert.strictEqual(await oneTo5().some((x) => x > 6), false); - assert.strictEqual(await oneTo5().every((x) => x < 6), true); - assert.strictEqual(await oneTo5().find((x) => x > 6), undefined); - assert.strictEqual(await Readable.from([]).some(() => true), false); - assert.strictEqual(await Readable.from([]).every(() => true), true); - assert.strictEqual(await Readable.from([]).find(() => true), undefined); -} - -{ - // Some, find, and every work with an asynchronous stream and synchronous predicate - assert.strictEqual(await oneTo5Async().some((x) => x > 3), true); - assert.strictEqual(await oneTo5Async().every((x) => x > 3), false); - assert.strictEqual(await oneTo5Async().find((x) => x > 3), 4); - assert.strictEqual(await oneTo5Async().some((x) => x > 6), false); - assert.strictEqual(await oneTo5Async().every((x) => x < 6), true); - assert.strictEqual(await oneTo5Async().find((x) => x > 6), undefined); -} - -{ - // Some, find, and every work on synchronous streams with an asynchronous predicate - assert.strictEqual(await oneTo5().some(async (x) => x > 3), true); - assert.strictEqual(await oneTo5().every(async (x) => x > 3), false); - assert.strictEqual(await oneTo5().find(async (x) => x > 3), 4); - assert.strictEqual(await oneTo5().some(async (x) => x > 6), false); - assert.strictEqual(await oneTo5().every(async (x) => x < 6), true); - assert.strictEqual(await oneTo5().find(async (x) => x > 6), undefined); -} - -{ - // Some, find, and every work on asynchronous streams with an asynchronous predicate - assert.strictEqual(await oneTo5Async().some(async (x) => x > 3), true); - assert.strictEqual(await oneTo5Async().every(async (x) => x > 3), false); - assert.strictEqual(await oneTo5Async().find(async (x) => x > 3), 4); - assert.strictEqual(await oneTo5Async().some(async (x) => x > 6), false); - assert.strictEqual(await oneTo5Async().every(async (x) => x < 6), true); - assert.strictEqual(await oneTo5Async().find(async (x) => x > 6), undefined); -} - -{ - async function checkDestroyed(stream) { - await setTimeout(); - assert.strictEqual(stream.destroyed, true); - } - - { - // Some, find, and every short circuit - const someStream = oneTo5(); - await someStream.some(common.mustCall((x) => x > 2, 3)); - await checkDestroyed(someStream); - - const everyStream = oneTo5(); - await everyStream.every(common.mustCall((x) => x < 3, 3)); - await checkDestroyed(everyStream); - - const findStream = oneTo5(); - await findStream.find(common.mustCall((x) => x > 1, 2)); - await checkDestroyed(findStream); - - // When short circuit isn't possible the whole stream is iterated - await oneTo5().some(common.mustCall(() => false, 5)); - await oneTo5().every(common.mustCall(() => true, 5)); - await oneTo5().find(common.mustCall(() => false, 5)); - } - - { - // Some, find, and every short circuit async stream/predicate - const someStream = oneTo5Async(); - await someStream.some(common.mustCall(async (x) => x > 2, 3)); - await checkDestroyed(someStream); - - const everyStream = oneTo5Async(); - await everyStream.every(common.mustCall(async (x) => x < 3, 3)); - await checkDestroyed(everyStream); - - const findStream = oneTo5Async(); - await findStream.find(common.mustCall(async (x) => x > 1, 2)); - await checkDestroyed(findStream); - - // When short circuit isn't possible the whole stream is iterated - await oneTo5Async().some(common.mustCall(async () => false, 5)); - await oneTo5Async().every(common.mustCall(async () => true, 5)); - await oneTo5Async().find(common.mustCall(async () => false, 5)); - } -} - -{ - // Concurrency doesn't affect which value is found. - const found = await Readable.from([1, 2]).find(async (val) => { - if (val === 1) { - await setTimeout(100); - } - return true; - }, { concurrency: 2 }); - assert.strictEqual(found, 1); -} - -{ - // Support for AbortSignal - for (const op of ['some', 'every', 'find']) { - { - const ac = new AbortController(); - assert.rejects(Readable.from([1, 2, 3])[op]( - () => new Promise(() => { }), - { signal: ac.signal } - ), { - name: 'AbortError', - }, `${op} should abort correctly with sync abort`).then(common.mustCall()); - ac.abort(); - } - { - // Support for pre-aborted AbortSignal - assert.rejects(Readable.from([1, 2, 3])[op]( - () => new Promise(() => { }), - { signal: AbortSignal.abort() } - ), { - name: 'AbortError', - }, `${op} should abort with pre-aborted abort controller`).then(common.mustCall()); - } - } -} -{ - // Error cases - for (const op of ['some', 'every', 'find']) { - assert.rejects(async () => { - await Readable.from([1])[op](1); - }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid function`).then(common.mustCall()); - assert.rejects(async () => { - await Readable.from([1])[op]((x) => x, { - concurrency: 'Foo' - }); - }, /ERR_OUT_OF_RANGE/, `${op} should throw for invalid concurrency`).then(common.mustCall()); - assert.rejects(async () => { - await Readable.from([1])[op]((x) => x, 1); - }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid concurrency`).then(common.mustCall()); - assert.rejects(async () => { - await Readable.from([1])[op]((x) => x, { - signal: true - }); - }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid signal`).then(common.mustCall()); - } -} -{ - for (const op of ['some', 'every', 'find']) { - const stream = oneTo5(); - Object.defineProperty(stream, 'map', { - value: common.mustNotCall(() => {}), - }); - // Check that map isn't getting called. - stream[op](() => {}); - } -} diff --git a/cli/tests/node_compat/test/parallel/test-tls-connect-simple.js b/cli/tests/node_compat/test/parallel/test-tls-connect-simple.js deleted file mode 100644 index 01a688f3f5..0000000000 --- a/cli/tests/node_compat/test/parallel/test-tls-connect-simple.js +++ /dev/null @@ -1,69 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const tls = require('tls'); -const fixtures = require('../common/fixtures'); - -let serverConnected = 0; - -const options = { - key: fixtures.readKey('agent1-key.pem'), - cert: fixtures.readKey('agent1-cert.pem') -}; - -const server = tls.Server(options, common.mustCall(function(socket) { - if (++serverConnected === 2) { - server.close(common.mustCall()); - server.on('close', common.mustCall()); - } -}, 2)); - -server.listen(0, function() { - const client1options = { - port: this.address().port, - rejectUnauthorized: false - }; - const client1 = tls.connect(client1options, common.mustCall(function() { - client1.end(); - })); - - const client2options = { - port: this.address().port, - rejectUnauthorized: false - }; - const client2 = tls.connect(client2options); - client2.on('secureConnect', common.mustCall(function() { - client2.end(); - })); -}); diff --git a/cli/tests/node_compat/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js b/cli/tests/node_compat/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js deleted file mode 100644 index 950fc74ec0..0000000000 --- a/cli/tests/node_compat/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js +++ /dev/null @@ -1,58 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Flags: --expose-gc -'use strict'; - -const common = require('../common'); - -if (process.config.variables.asan) { - common.skip('ASAN messes with memory measurements'); -} - -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); -} - -const assert = require('assert'); -const net = require('net'); - -// Tests that, when receiving small chunks, we do not keep the full length -// of the original allocation for the libuv read call in memory. - -let client; -let baseRSS; -const receivedChunks = []; -const N = 250000; - -const server = net.createServer(common.mustCall((socket) => { - baseRSS = process.memoryUsage.rss(); - - socket.setNoDelay(true); - socket.on('data', (chunk) => { - receivedChunks.push(chunk); - if (receivedChunks.length < N) { - client.write('a'); - } else { - client.end(); - server.close(); - } - }); -})).listen(0, common.mustCall(() => { - client = net.connect(server.address().port); - client.setNoDelay(true); - client.write('hello!'); -})); - -process.on('exit', () => { - // TODO: support global.gc() compat - // global.gc(); - const bytesPerChunk = - (process.memoryUsage.rss() - baseRSS) / receivedChunks.length; - // We should always have less than one page (usually ~ 4 kB) per chunk. - assert(bytesPerChunk < 650, `measured ${bytesPerChunk} bytes per chunk`); -}); diff --git a/cli/tests/node_compat/test/pummel/test-net-pingpong-delay.js b/cli/tests/node_compat/test/pummel/test-net-pingpong-delay.js deleted file mode 100644 index 50f509b8e4..0000000000 --- a/cli/tests/node_compat/test/pummel/test-net-pingpong-delay.js +++ /dev/null @@ -1,114 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 18.12.1 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - -function pingPongTest(host, on_complete) { - const N = 100; - const DELAY = 1; - let count = 0; - let client_ended = false; - - const server = net.createServer({ allowHalfOpen: true }, function(socket) { - socket.setEncoding('utf8'); - - socket.on('data', function(data) { - console.log(data); - assert.strictEqual(data, 'PING'); - assert.strictEqual(socket.readyState, 'open'); - assert.strictEqual(count <= N, true); - setTimeout(function() { - assert.strictEqual(socket.readyState, 'open'); - socket.write('PONG'); - }, DELAY); - }); - - socket.on('timeout', function() { - console.error('server-side timeout!!'); - assert.strictEqual(false, true); - }); - - socket.on('end', function() { - console.log('server-side socket EOF'); - assert.strictEqual(socket.readyState, 'writeOnly'); - socket.end(); - }); - - socket.on('close', function(had_error) { - console.log('server-side socket.end'); - assert.strictEqual(had_error, false); - assert.strictEqual(socket.readyState, 'closed'); - socket.server.close(); - }); - }); - - server.listen(0, host, common.mustCall(function() { - const client = net.createConnection(server.address().port, host); - - client.setEncoding('utf8'); - - client.on('connect', function() { - assert.strictEqual(client.readyState, 'open'); - client.write('PING'); - }); - - client.on('data', function(data) { - console.log(data); - assert.strictEqual(data, 'PONG'); - assert.strictEqual(client.readyState, 'open'); - - setTimeout(function() { - assert.strictEqual(client.readyState, 'open'); - if (count++ < N) { - client.write('PING'); - } else { - console.log('closing client'); - client.end(); - client_ended = true; - } - }, DELAY); - }); - - client.on('timeout', function() { - console.error('client-side timeout!!'); - assert.strictEqual(false, true); - }); - - client.on('close', common.mustCall(function() { - console.log('client.end'); - assert.strictEqual(count, N + 1); - assert.ok(client_ended); - if (on_complete) on_complete(); - })); - })); -} - -pingPongTest(); diff --git a/cli/tests/node_compat/test/pummel/test-net-write-callbacks.js b/cli/tests/node_compat/test/pummel/test-net-write-callbacks.js deleted file mode 100644 index 7f65281077..0000000000 --- a/cli/tests/node_compat/test/pummel/test-net-write-callbacks.js +++ /dev/null @@ -1,80 +0,0 @@ -// deno-fmt-ignore-file -// deno-lint-ignore-file - -// Copyright Joyent and Node contributors. All rights reserved. MIT license. -// Taken from Node 16.13.0 -// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; -require('../common'); -const net = require('net'); -const assert = require('assert'); - -let cbcount = 0; -const N = 500000; - -// TODO: support net.Server() without new - -const server = new net.Server(function(socket) { - socket.on('data', function(d) { - console.error(`got ${d.length} bytes`); - }); - - socket.on('end', function() { - console.error('end'); - socket.destroy(); - server.close(); - }); -}); - -let lastCalled = -1; -function makeCallback(c) { - let called = false; - return function() { - if (called) - throw new Error(`called callback #${c} more than once`); - called = true; - if (c < lastCalled) { - throw new Error( - `callbacks out of order. last=${lastCalled} current=${c}`); - } - lastCalled = c; - cbcount++; - }; -} - -server.listen(0, function() { - const client = net.createConnection(server.address().port); - - client.on('connect', function() { - for (let i = 0; i < N; i++) { - client.write('hello world', makeCallback(i)); - } - client.end(); - }); -}); - -process.on('exit', function() { - assert.strictEqual(cbcount, N); -}); diff --git a/tools/node_compat/.gitignore b/tools/node_compat/.gitignore new file mode 100644 index 0000000000..ff3de762cc --- /dev/null +++ b/tools/node_compat/.gitignore @@ -0,0 +1 @@ +versions diff --git a/tools/node_compat/TODO.md b/tools/node_compat/TODO.md new file mode 100644 index 0000000000..42e36cc9b2 --- /dev/null +++ b/tools/node_compat/TODO.md @@ -0,0 +1,2931 @@ + +# Remaining Node Tests + +NOTE: This file should not be manually edited. Please edit 'cli/tests/node_compat/config.json' and run 'tools/node_compat/setup.ts' instead. + +Total: 2924 + +- [abort/test-abort-backtrace.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-abort-backtrace.js) +- [abort/test-abort-fatal-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-abort-fatal-error.js) +- [abort/test-abort-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-abort-uncaught-exception.js) +- [abort/test-addon-register-signal-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-addon-register-signal-handler.js) +- [abort/test-addon-uv-handle-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-addon-uv-handle-leak.js) +- [abort/test-http-parser-consume.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-http-parser-consume.js) +- [abort/test-process-abort-exitcode.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-process-abort-exitcode.js) +- [abort/test-signal-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-signal-handler.js) +- [abort/test-worker-abort-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-worker-abort-uncaught-exception.js) +- [abort/test-zlib-invalid-internals-usage.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-zlib-invalid-internals-usage.js) +- [benchmark/test-benchmark-assert.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-assert.js) +- [benchmark/test-benchmark-async-hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-async-hooks.js) +- [benchmark/test-benchmark-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-buffer.js) +- [benchmark/test-benchmark-child-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-child-process.js) +- [benchmark/test-benchmark-cluster.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-cluster.js) +- [benchmark/test-benchmark-crypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-crypto.js) +- [benchmark/test-benchmark-dgram.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-dgram.js) +- [benchmark/test-benchmark-dns.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-dns.js) +- [benchmark/test-benchmark-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-domain.js) +- [benchmark/test-benchmark-es.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-es.js) +- [benchmark/test-benchmark-esm.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-esm.js) +- [benchmark/test-benchmark-events.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-events.js) +- [benchmark/test-benchmark-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-fs.js) +- [benchmark/test-benchmark-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-http.js) +- [benchmark/test-benchmark-http2.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-http2.js) +- [benchmark/test-benchmark-misc.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-misc.js) +- [benchmark/test-benchmark-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-module.js) +- [benchmark/test-benchmark-napi.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-napi.js) +- [benchmark/test-benchmark-net.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-net.js) +- [benchmark/test-benchmark-os.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-os.js) +- [benchmark/test-benchmark-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-path.js) +- [benchmark/test-benchmark-policy.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-policy.js) +- [benchmark/test-benchmark-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-process.js) +- [benchmark/test-benchmark-querystring.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-querystring.js) +- [benchmark/test-benchmark-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-streams.js) +- [benchmark/test-benchmark-string_decoder.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-string_decoder.js) +- [benchmark/test-benchmark-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-timers.js) +- [benchmark/test-benchmark-tls.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-tls.js) +- [benchmark/test-benchmark-url.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-url.js) +- [benchmark/test-benchmark-util.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-util.js) +- [benchmark/test-benchmark-v8.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-v8.js) +- [benchmark/test-benchmark-vm.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-vm.js) +- [benchmark/test-benchmark-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-worker.js) +- [benchmark/test-benchmark-zlib.js](https://github.com/nodejs/node/tree/v18.12.1/test/benchmark/test-benchmark-zlib.js) +- [es-module/test-cjs-esm-warn.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-cjs-esm-warn.js) +- [es-module/test-esm-assertionless-json-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-assertionless-json-import.js) +- [es-module/test-esm-cjs-builtins.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-cjs-builtins.js) +- [es-module/test-esm-cjs-exports.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-cjs-exports.js) +- [es-module/test-esm-cjs-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-cjs-main.js) +- [es-module/test-esm-data-urls.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-data-urls.js) +- [es-module/test-esm-dynamic-import-assertion.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-dynamic-import-assertion.js) +- [es-module/test-esm-dynamic-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-dynamic-import.js) +- [es-module/test-esm-encoded-path-native.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-encoded-path-native.js) +- [es-module/test-esm-error-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-error-cache.js) +- [es-module/test-esm-import-assertion-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-import-assertion-errors.js) +- [es-module/test-esm-import-assertion-validation.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-import-assertion-validation.js) +- [es-module/test-esm-invalid-data-urls.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-invalid-data-urls.js) +- [es-module/test-esm-invalid-pjson.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-invalid-pjson.js) +- [es-module/test-esm-loader-cache-clearing.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-loader-cache-clearing.js) +- [es-module/test-esm-loader-modulemap.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-loader-modulemap.js) +- [es-module/test-esm-loader-search.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-loader-search.js) +- [es-module/test-esm-preserve-symlinks-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-preserve-symlinks-main.js) +- [es-module/test-esm-preserve-symlinks.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-preserve-symlinks.js) +- [es-module/test-esm-repl-imports.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-repl-imports.js) +- [es-module/test-esm-repl.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-repl.js) +- [es-module/test-esm-symlink-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-symlink-main.js) +- [es-module/test-esm-symlink-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-symlink-type.js) +- [es-module/test-esm-symlink.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-symlink.js) +- [es-module/test-esm-type-flag-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-type-flag-errors.js) +- [es-module/test-esm-undefined-cjs-global-like-variables.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-undefined-cjs-global-like-variables.js) +- [es-module/test-esm-unknown-or-no-extension.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-unknown-or-no-extension.js) +- [es-module/test-esm-windows.js](https://github.com/nodejs/node/tree/v18.12.1/test/es-module/test-esm-windows.js) +- [internet/test-corepack-yarn-install.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-corepack-yarn-install.js) +- [internet/test-dgram-broadcast-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-broadcast-multi-process.js) +- [internet/test-dgram-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-connect.js) +- [internet/test-dgram-membership.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-membership.js) +- [internet/test-dgram-multicast-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-multi-process.js) +- [internet/test-dgram-multicast-set-interface-lo.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-set-interface-lo.js) +- [internet/test-dgram-multicast-ssm-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-ssm-multi-process.js) +- [internet/test-dgram-multicast-ssmv6-multi-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dgram-multicast-ssmv6-multi-process.js) +- [internet/test-dns-cares-domains.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-cares-domains.js) +- [internet/test-dns-txt-sigsegv.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-dns-txt-sigsegv.js) +- [internet/test-http-dns-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-http-dns-fail.js) +- [internet/test-http-https-default-ports.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-http-https-default-ports.js) +- [internet/test-http2-issue-32922.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-http2-issue-32922.js) +- [internet/test-https-issue-43963.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-https-issue-43963.js) +- [internet/test-inspector-help-page.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-inspector-help-page.js) +- [internet/test-net-connect-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-net-connect-timeout.js) +- [internet/test-net-connect-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-net-connect-unref.js) +- [internet/test-snapshot-dns-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-snapshot-dns-lookup.js) +- [internet/test-snapshot-dns-resolve.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-snapshot-dns-resolve.js) +- [internet/test-tls-add-ca-cert.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-tls-add-ca-cert.js) +- [internet/test-trace-events-dns.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-trace-events-dns.js) +- [internet/test-uv-threadpool-schedule.js](https://github.com/nodejs/node/tree/v18.12.1/test/internet/test-uv-threadpool-schedule.js) +- [known_issues/test-cwd-enoent-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-cwd-enoent-file.js) +- [known_issues/test-dgram-bind-shared-ports-after-port-0.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-dgram-bind-shared-ports-after-port-0.js) +- [known_issues/test-fs-writeFileSync-invalid-windows.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-fs-writeFileSync-invalid-windows.js) +- [known_issues/test-http-path-contains-unicode.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-http-path-contains-unicode.js) +- [known_issues/test-inspector-cluster-port-clash.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-inspector-cluster-port-clash.js) +- [known_issues/test-repl-require-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-repl-require-context.js) +- [known_issues/test-stdin-is-always-net.socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-stdin-is-always-net.socket.js) +- [known_issues/test-stream-writable-sync-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-stream-writable-sync-error.js) +- [known_issues/test-url-parse-conformance.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-url-parse-conformance.js) +- [known_issues/test-vm-function-declaration-uses-define.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-function-declaration-uses-define.js) +- [known_issues/test-vm-ownkeys.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-ownkeys.js) +- [known_issues/test-vm-ownpropertynames.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-ownpropertynames.js) +- [known_issues/test-vm-ownpropertysymbols.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-ownpropertysymbols.js) +- [known_issues/test-vm-timeout-escape-nexttick.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-timeout-escape-nexttick.js) +- [known_issues/test-vm-timeout-escape-queuemicrotask.js](https://github.com/nodejs/node/tree/v18.12.1/test/known_issues/test-vm-timeout-escape-queuemicrotask.js) +- [message/2100bytes.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/2100bytes.js) +- [message/assert_throws_stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/assert_throws_stack.js) +- [message/async_error_eval_cjs.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/async_error_eval_cjs.js) +- [message/async_error_eval_esm.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/async_error_eval_esm.js) +- [message/async_error_microtask_main.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/async_error_microtask_main.js) +- [message/async_error_nexttick_main.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/async_error_nexttick_main.js) +- [message/async_error_sync_main.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/async_error_sync_main.js) +- [message/console.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/console.js) +- [message/console_low_stack_space.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/console_low_stack_space.js) +- [message/core_line_numbers.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/core_line_numbers.js) +- [message/error_aggregateTwoErrors.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/error_aggregateTwoErrors.js) +- [message/error_exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/error_exit.js) +- [message/error_with_nul.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/error_with_nul.js) +- [message/eval_messages.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/eval_messages.js) +- [message/events_unhandled_error_common_trace.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/events_unhandled_error_common_trace.js) +- [message/events_unhandled_error_nexttick.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/events_unhandled_error_nexttick.js) +- [message/events_unhandled_error_sameline.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/events_unhandled_error_sameline.js) +- [message/events_unhandled_error_subclass.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/events_unhandled_error_subclass.js) +- [message/hello_world.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/hello_world.js) +- [message/if-error-has-good-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/if-error-has-good-stack.js) +- [message/internal_assert.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/internal_assert.js) +- [message/internal_assert_fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/internal_assert_fail.js) +- [message/max_tick_depth.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/max_tick_depth.js) +- [message/nexttick_throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/nexttick_throw.js) +- [message/promise_always_throw_unhandled.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/promise_always_throw_unhandled.js) +- [message/promise_unhandled_warn_with_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/promise_unhandled_warn_with_error.js) +- [message/source_map_disabled_by_api.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_disabled_by_api.js) +- [message/source_map_enabled_by_api.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_enabled_by_api.js) +- [message/source_map_enclosing_function.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_enclosing_function.js) +- [message/source_map_eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_eval.js) +- [message/source_map_no_source_file.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_no_source_file.js) +- [message/source_map_reference_error_tabs.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_reference_error_tabs.js) +- [message/source_map_sourcemapping_url_string.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_sourcemapping_url_string.js) +- [message/source_map_throw_catch.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_throw_catch.js) +- [message/source_map_throw_first_tick.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_throw_first_tick.js) +- [message/source_map_throw_icu.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_throw_icu.js) +- [message/source_map_throw_set_immediate.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/source_map_throw_set_immediate.js) +- [message/stack_overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/stack_overflow.js) +- [message/stdin_messages.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/stdin_messages.js) +- [message/test-no-extra-info-on-fatal-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test-no-extra-info-on-fatal-exception.js) +- [message/test_runner_abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_abort.js) +- [message/test_runner_abort_suite.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_abort_suite.js) +- [message/test_runner_describe_it.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_describe_it.js) +- [message/test_runner_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_hooks.js) +- [message/test_runner_no_refs.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_no_refs.js) +- [message/test_runner_no_tests.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_no_tests.js) +- [message/test_runner_only_tests.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_only_tests.js) +- [message/test_runner_output.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_output.js) +- [message/test_runner_test_name_pattern.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_test_name_pattern.js) +- [message/test_runner_test_name_pattern_with_only.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_test_name_pattern_with_only.js) +- [message/test_runner_unresolved_promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/test_runner_unresolved_promise.js) +- [message/throw_custom_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_custom_error.js) +- [message/throw_error_with_getter_throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_error_with_getter_throw.js) +- [message/throw_in_line_with_tabs.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_in_line_with_tabs.js) +- [message/throw_non_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_non_error.js) +- [message/throw_null.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_null.js) +- [message/throw_undefined.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/throw_undefined.js) +- [message/timeout_throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/timeout_throw.js) +- [message/undefined_reference_in_new_context.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/undefined_reference_in_new_context.js) +- [message/unhandled_promise_trace_warnings.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/unhandled_promise_trace_warnings.js) +- [message/util-inspect-error-cause.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/util-inspect-error-cause.js) +- [message/util_inspect_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/util_inspect_error.js) +- [message/v8_warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/v8_warning.js) +- [message/vm_caught_custom_runtime_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/vm_caught_custom_runtime_error.js) +- [message/vm_display_runtime_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/vm_display_runtime_error.js) +- [message/vm_display_syntax_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/vm_display_syntax_error.js) +- [message/vm_dont_display_runtime_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/vm_dont_display_runtime_error.js) +- [message/vm_dont_display_syntax_error.js](https://github.com/nodejs/node/tree/v18.12.1/test/message/vm_dont_display_syntax_error.js) +- [parallel/test-abortcontroller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-abortcontroller.js) +- [parallel/test-abortsignal-cloneable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-abortsignal-cloneable.js) +- [parallel/test-accessor-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-accessor-properties.js) +- [parallel/test-arm-math-illegal-instruction.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-arm-math-illegal-instruction.js) +- [parallel/test-assert-builtins-not-read-from-filesystem.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-builtins-not-read-from-filesystem.js) +- [parallel/test-assert-calltracker-calls.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-calltracker-calls.js) +- [parallel/test-assert-calltracker-getCalls.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-calltracker-getCalls.js) +- [parallel/test-assert-calltracker-report.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-calltracker-report.js) +- [parallel/test-assert-calltracker-verify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-calltracker-verify.js) +- [parallel/test-assert-checktag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-checktag.js) +- [parallel/test-assert-deep.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-deep.js) +- [parallel/test-assert-fail-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-fail-deprecation.js) +- [parallel/test-assert-first-line.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-first-line.js) +- [parallel/test-assert-if-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-if-error.js) +- [parallel/test-assert-typedarray-deepequal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-assert-typedarray-deepequal.js) +- [parallel/test-async-hooks-async-await.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-async-await.js) +- [parallel/test-async-hooks-asyncresource-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-asyncresource-constructor.js) +- [parallel/test-async-hooks-close-during-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-close-during-destroy.js) +- [parallel/test-async-hooks-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-constructor.js) +- [parallel/test-async-hooks-correctly-switch-promise-hook.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-correctly-switch-promise-hook.js) +- [parallel/test-async-hooks-destroy-on-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-destroy-on-gc.js) +- [parallel/test-async-hooks-disable-during-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-disable-during-promise.js) +- [parallel/test-async-hooks-disable-gc-tracking.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-disable-gc-tracking.js) +- [parallel/test-async-hooks-enable-before-promise-resolve.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-enable-before-promise-resolve.js) +- [parallel/test-async-hooks-enable-disable-enable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-enable-disable-enable.js) +- [parallel/test-async-hooks-enable-disable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-enable-disable.js) +- [parallel/test-async-hooks-enable-during-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-enable-during-promise.js) +- [parallel/test-async-hooks-enable-recursive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-enable-recursive.js) +- [parallel/test-async-hooks-execution-async-resource-await.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-execution-async-resource-await.js) +- [parallel/test-async-hooks-execution-async-resource.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-execution-async-resource.js) +- [parallel/test-async-hooks-fatal-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-fatal-error.js) +- [parallel/test-async-hooks-http-agent-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-http-agent-destroy.js) +- [parallel/test-async-hooks-http-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-http-agent.js) +- [parallel/test-async-hooks-http-parser-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-http-parser-destroy.js) +- [parallel/test-async-hooks-prevent-double-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-prevent-double-destroy.js) +- [parallel/test-async-hooks-promise-enable-disable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-promise-enable-disable.js) +- [parallel/test-async-hooks-promise-triggerid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-promise-triggerid.js) +- [parallel/test-async-hooks-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-promise.js) +- [parallel/test-async-hooks-recursive-stack-runInAsyncScope.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-recursive-stack-runInAsyncScope.js) +- [parallel/test-async-hooks-run-in-async-scope-caught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js) +- [parallel/test-async-hooks-run-in-async-scope-this-arg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-run-in-async-scope-this-arg.js) +- [parallel/test-async-hooks-top-level-clearimmediate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-top-level-clearimmediate.js) +- [parallel/test-async-hooks-vm-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-vm-gc.js) +- [parallel/test-async-hooks-worker-asyncfn-terminate-1.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-worker-asyncfn-terminate-1.js) +- [parallel/test-async-hooks-worker-asyncfn-terminate-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-worker-asyncfn-terminate-2.js) +- [parallel/test-async-hooks-worker-asyncfn-terminate-3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-worker-asyncfn-terminate-3.js) +- [parallel/test-async-hooks-worker-asyncfn-terminate-4.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-hooks-worker-asyncfn-terminate-4.js) +- [parallel/test-async-local-storage-contexts.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-local-storage-contexts.js) +- [parallel/test-async-local-storage-deep-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-local-storage-deep-stack.js) +- [parallel/test-async-local-storage-exit-does-not-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-local-storage-exit-does-not-leak.js) +- [parallel/test-async-local-storage-http-multiclients.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-local-storage-http-multiclients.js) +- [parallel/test-async-wrap-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-constructor.js) +- [parallel/test-async-wrap-destroyid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-destroyid.js) +- [parallel/test-async-wrap-pop-id-during-load.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-pop-id-during-load.js) +- [parallel/test-async-wrap-promise-after-enabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-promise-after-enabled.js) +- [parallel/test-async-wrap-tlssocket-asyncreset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-tlssocket-asyncreset.js) +- [parallel/test-async-wrap-trigger-id.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-trigger-id.js) +- [parallel/test-async-wrap-uncaughtexception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-async-wrap-uncaughtexception.js) +- [parallel/test-asyncresource-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-asyncresource-bind.js) +- [parallel/test-atomics-wake.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-atomics-wake.js) +- [parallel/test-bash-completion.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-bash-completion.js) +- [parallel/test-beforeexit-event-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-beforeexit-event-exit.js) +- [parallel/test-benchmark-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-benchmark-cli.js) +- [parallel/test-binding-constants.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-binding-constants.js) +- [parallel/test-blob-buffer-too-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-blob-buffer-too-large.js) +- [parallel/test-blob-createobjecturl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-blob-createobjecturl.js) +- [parallel/test-blob.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-blob.js) +- [parallel/test-blocklist-clone.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-blocklist-clone.js) +- [parallel/test-blocklist.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-blocklist.js) +- [parallel/test-bootstrap-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-bootstrap-modules.js) +- [parallel/test-broadcastchannel-custom-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-broadcastchannel-custom-inspect.js) +- [parallel/test-buffer-alloc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-alloc.js) +- [parallel/test-buffer-backing-arraybuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-backing-arraybuffer.js) +- [parallel/test-buffer-compare.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-compare.js) +- [parallel/test-buffer-constructor-deprecation-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-constructor-deprecation-error.js) +- [parallel/test-buffer-constructor-node-modules-paths.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-constructor-node-modules-paths.js) +- [parallel/test-buffer-constructor-outside-node-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-constructor-outside-node-modules.js) +- [parallel/test-buffer-fill.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-fill.js) +- [parallel/test-buffer-indexof.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-indexof.js) +- [parallel/test-buffer-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-inspect.js) +- [parallel/test-buffer-pending-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-pending-deprecation.js) +- [parallel/test-buffer-pool-untransferable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-pool-untransferable.js) +- [parallel/test-buffer-prototype-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-prototype-inspect.js) +- [parallel/test-buffer-sharedarraybuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-sharedarraybuffer.js) +- [parallel/test-buffer-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-buffer-write.js) +- [parallel/test-c-ares.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-c-ares.js) +- [parallel/test-child-process-advanced-serialization-largebuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-advanced-serialization-largebuffer.js) +- [parallel/test-child-process-advanced-serialization.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-advanced-serialization.js) +- [parallel/test-child-process-bad-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-bad-stdio.js) +- [parallel/test-child-process-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-constructor.js) +- [parallel/test-child-process-cwd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-cwd.js) +- [parallel/test-child-process-detached.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-detached.js) +- [parallel/test-child-process-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-disconnect.js) +- [parallel/test-child-process-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-env.js) +- [parallel/test-child-process-exec-any-shells-windows.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-exec-any-shells-windows.js) +- [parallel/test-child-process-exec-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-exec-encoding.js) +- [parallel/test-child-process-exec-std-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-exec-std-encoding.js) +- [parallel/test-child-process-exec-timeout-not-expired.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-exec-timeout-not-expired.js) +- [parallel/test-child-process-execfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-execfile.js) +- [parallel/test-child-process-exit-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-exit-code.js) +- [parallel/test-child-process-fork-abort-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-abort-signal.js) +- [parallel/test-child-process-fork-and-spawn.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-and-spawn.js) +- [parallel/test-child-process-fork-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-args.js) +- [parallel/test-child-process-fork-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-close.js) +- [parallel/test-child-process-fork-closed-channel-segfault.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-closed-channel-segfault.js) +- [parallel/test-child-process-fork-detached.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-detached.js) +- [parallel/test-child-process-fork-dgram.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-dgram.js) +- [parallel/test-child-process-fork-exec-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-exec-argv.js) +- [parallel/test-child-process-fork-exec-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-exec-path.js) +- [parallel/test-child-process-fork-getconnections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-getconnections.js) +- [parallel/test-child-process-fork-net-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-net-server.js) +- [parallel/test-child-process-fork-net-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-net-socket.js) +- [parallel/test-child-process-fork-net.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-net.js) +- [parallel/test-child-process-fork-no-shell.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-no-shell.js) +- [parallel/test-child-process-fork-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-ref.js) +- [parallel/test-child-process-fork-ref2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-ref2.js) +- [parallel/test-child-process-fork-stdio-string-variant.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-stdio-string-variant.js) +- [parallel/test-child-process-fork-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-stdio.js) +- [parallel/test-child-process-fork-timeout-kill-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork-timeout-kill-signal.js) +- [parallel/test-child-process-fork.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork.js) +- [parallel/test-child-process-fork3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-fork3.js) +- [parallel/test-child-process-http-socket-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-http-socket-leak.js) +- [parallel/test-child-process-internal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-internal.js) +- [parallel/test-child-process-ipc-next-tick.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-ipc-next-tick.js) +- [parallel/test-child-process-ipc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-ipc.js) +- [parallel/test-child-process-no-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-no-deprecation.js) +- [parallel/test-child-process-pipe-dataflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-pipe-dataflow.js) +- [parallel/test-child-process-promisified.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-promisified.js) +- [parallel/test-child-process-recv-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-recv-handle.js) +- [parallel/test-child-process-send-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-after-close.js) +- [parallel/test-child-process-send-cb.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-cb.js) +- [parallel/test-child-process-send-keep-open.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-keep-open.js) +- [parallel/test-child-process-send-returns-boolean.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-returns-boolean.js) +- [parallel/test-child-process-send-type-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-type-error.js) +- [parallel/test-child-process-send-utf8.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-send-utf8.js) +- [parallel/test-child-process-server-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-server-close.js) +- [parallel/test-child-process-silent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-silent.js) +- [parallel/test-child-process-spawn-argv0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-argv0.js) +- [parallel/test-child-process-spawn-controller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-controller.js) +- [parallel/test-child-process-spawn-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-error.js) +- [parallel/test-child-process-spawn-shell.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-shell.js) +- [parallel/test-child-process-spawn-timeout-kill-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-timeout-kill-signal.js) +- [parallel/test-child-process-spawn-typeerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawn-typeerror.js) +- [parallel/test-child-process-spawnsync-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawnsync-env.js) +- [parallel/test-child-process-spawnsync-input.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawnsync-input.js) +- [parallel/test-child-process-spawnsync-kill-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawnsync-kill-signal.js) +- [parallel/test-child-process-spawnsync-shell.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawnsync-shell.js) +- [parallel/test-child-process-spawnsync-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-spawnsync-timeout.js) +- [parallel/test-child-process-stdin-ipc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdin-ipc.js) +- [parallel/test-child-process-stdin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdin.js) +- [parallel/test-child-process-stdio-big-write-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio-big-write-end.js) +- [parallel/test-child-process-stdio-inherit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio-inherit.js) +- [parallel/test-child-process-stdio-merge-stdouts-into-cat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio-merge-stdouts-into-cat.js) +- [parallel/test-child-process-stdio-overlapped.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio-overlapped.js) +- [parallel/test-child-process-stdio-reuse-readable-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio-reuse-readable-stdio.js) +- [parallel/test-child-process-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdio.js) +- [parallel/test-child-process-stdout-flush-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdout-flush-exit.js) +- [parallel/test-child-process-stdout-flush.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdout-flush.js) +- [parallel/test-child-process-stdout-ipc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-stdout-ipc.js) +- [parallel/test-child-process-uid-gid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-uid-gid.js) +- [parallel/test-child-process-validate-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-validate-stdio.js) +- [parallel/test-child-process-windows-hide.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-child-process-windows-hide.js) +- [parallel/test-cli-bad-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-bad-options.js) +- [parallel/test-cli-eval-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-eval-event.js) +- [parallel/test-cli-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-eval.js) +- [parallel/test-cli-node-options-disallowed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-node-options-disallowed.js) +- [parallel/test-cli-node-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-node-options.js) +- [parallel/test-cli-node-print-help.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-node-print-help.js) +- [parallel/test-cli-options-negation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-options-negation.js) +- [parallel/test-cli-options-precedence.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-options-precedence.js) +- [parallel/test-cli-syntax-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-syntax-eval.js) +- [parallel/test-cli-syntax-piped-bad.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-syntax-piped-bad.js) +- [parallel/test-cli-syntax-piped-good.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cli-syntax-piped-good.js) +- [parallel/test-cluster-accept-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-accept-fail.js) +- [parallel/test-cluster-advanced-serialization.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-advanced-serialization.js) +- [parallel/test-cluster-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-basic.js) +- [parallel/test-cluster-bind-privileged-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-bind-privileged-port.js) +- [parallel/test-cluster-bind-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-bind-twice.js) +- [parallel/test-cluster-call-and-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-call-and-destroy.js) +- [parallel/test-cluster-child-index-dgram.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-child-index-dgram.js) +- [parallel/test-cluster-child-index-net.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-child-index-net.js) +- [parallel/test-cluster-concurrent-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-concurrent-disconnect.js) +- [parallel/test-cluster-cwd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-cwd.js) +- [parallel/test-cluster-dgram-1.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-dgram-1.js) +- [parallel/test-cluster-dgram-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-dgram-2.js) +- [parallel/test-cluster-dgram-bind-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-dgram-bind-fd.js) +- [parallel/test-cluster-dgram-ipv6only.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-dgram-ipv6only.js) +- [parallel/test-cluster-dgram-reuse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-dgram-reuse.js) +- [parallel/test-cluster-disconnect-before-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-before-exit.js) +- [parallel/test-cluster-disconnect-exitedAfterDisconnect-race.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-exitedAfterDisconnect-race.js) +- [parallel/test-cluster-disconnect-idle-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-idle-worker.js) +- [parallel/test-cluster-disconnect-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-leak.js) +- [parallel/test-cluster-disconnect-race.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-race.js) +- [parallel/test-cluster-disconnect-unshared-tcp.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-unshared-tcp.js) +- [parallel/test-cluster-disconnect-unshared-udp.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-unshared-udp.js) +- [parallel/test-cluster-disconnect-with-no-workers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect-with-no-workers.js) +- [parallel/test-cluster-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-disconnect.js) +- [parallel/test-cluster-eaccess.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-eaccess.js) +- [parallel/test-cluster-eaddrinuse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-eaddrinuse.js) +- [parallel/test-cluster-fork-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-fork-env.js) +- [parallel/test-cluster-fork-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-fork-stdio.js) +- [parallel/test-cluster-fork-windowsHide.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-fork-windowsHide.js) +- [parallel/test-cluster-http-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-http-pipe.js) +- [parallel/test-cluster-invalid-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-invalid-message.js) +- [parallel/test-cluster-ipc-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-ipc-throw.js) +- [parallel/test-cluster-kill-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-kill-disconnect.js) +- [parallel/test-cluster-kill-infinite-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-kill-infinite-loop.js) +- [parallel/test-cluster-listen-pipe-readable-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-listen-pipe-readable-writable.js) +- [parallel/test-cluster-listening-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-listening-port.js) +- [parallel/test-cluster-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-message.js) +- [parallel/test-cluster-net-listen-backlog.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-listen-backlog.js) +- [parallel/test-cluster-net-listen-ipv6only-false.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-listen-ipv6only-false.js) +- [parallel/test-cluster-net-listen-relative-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-listen-relative-path.js) +- [parallel/test-cluster-net-listen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-listen.js) +- [parallel/test-cluster-net-send.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-send.js) +- [parallel/test-cluster-net-server-drop-connection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-net-server-drop-connection.js) +- [parallel/test-cluster-primary-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-primary-error.js) +- [parallel/test-cluster-primary-kill.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-primary-kill.js) +- [parallel/test-cluster-process-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-process-disconnect.js) +- [parallel/test-cluster-rr-domain-listen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-rr-domain-listen.js) +- [parallel/test-cluster-rr-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-rr-ref.js) +- [parallel/test-cluster-send-deadlock.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-send-deadlock.js) +- [parallel/test-cluster-send-handle-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-send-handle-twice.js) +- [parallel/test-cluster-send-socket-to-worker-http-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-send-socket-to-worker-http-server.js) +- [parallel/test-cluster-server-restart-none.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-server-restart-none.js) +- [parallel/test-cluster-server-restart-rr.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-server-restart-rr.js) +- [parallel/test-cluster-setup-primary-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-setup-primary-argv.js) +- [parallel/test-cluster-setup-primary-cumulative.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-setup-primary-cumulative.js) +- [parallel/test-cluster-setup-primary-emit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-setup-primary-emit.js) +- [parallel/test-cluster-setup-primary-multiple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-setup-primary-multiple.js) +- [parallel/test-cluster-setup-primary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-setup-primary.js) +- [parallel/test-cluster-shared-handle-bind-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-shared-handle-bind-error.js) +- [parallel/test-cluster-shared-handle-bind-privileged-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-shared-handle-bind-privileged-port.js) +- [parallel/test-cluster-shared-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-shared-leak.js) +- [parallel/test-cluster-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-uncaught-exception.js) +- [parallel/test-cluster-worker-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-constructor.js) +- [parallel/test-cluster-worker-death.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-death.js) +- [parallel/test-cluster-worker-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-destroy.js) +- [parallel/test-cluster-worker-disconnect-on-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-disconnect-on-error.js) +- [parallel/test-cluster-worker-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-disconnect.js) +- [parallel/test-cluster-worker-events.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-events.js) +- [parallel/test-cluster-worker-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-exit.js) +- [parallel/test-cluster-worker-forced-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-forced-exit.js) +- [parallel/test-cluster-worker-handle-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-handle-close.js) +- [parallel/test-cluster-worker-init.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-init.js) +- [parallel/test-cluster-worker-isconnected.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-isconnected.js) +- [parallel/test-cluster-worker-isdead.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-isdead.js) +- [parallel/test-cluster-worker-kill-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-kill-signal.js) +- [parallel/test-cluster-worker-kill.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-kill.js) +- [parallel/test-cluster-worker-no-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-no-exit.js) +- [parallel/test-cluster-worker-wait-server-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cluster-worker-wait-server-close.js) +- [parallel/test-code-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-code-cache.js) +- [parallel/test-common-countdown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-common-countdown.js) +- [parallel/test-common-expect-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-common-expect-warning.js) +- [parallel/test-common-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-common-gc.js) +- [parallel/test-common-must-not-call.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-common-must-not-call.js) +- [parallel/test-common.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-common.js) +- [parallel/test-console-assign-undefined.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-assign-undefined.js) +- [parallel/test-console-clear.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-clear.js) +- [parallel/test-console-count.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-count.js) +- [parallel/test-console-formatTime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-formatTime.js) +- [parallel/test-console-instance.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-instance.js) +- [parallel/test-console-issue-43095.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-issue-43095.js) +- [parallel/test-console-methods.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-methods.js) +- [parallel/test-console-not-call-toString.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-not-call-toString.js) +- [parallel/test-console-self-assign.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-self-assign.js) +- [parallel/test-console-stdio-setters.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console-stdio-setters.js) +- [parallel/test-console.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-console.js) +- [parallel/test-constants.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-constants.js) +- [parallel/test-corepack-version.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-corepack-version.js) +- [parallel/test-coverage-with-inspector-disabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-coverage-with-inspector-disabled.js) +- [parallel/test-crypto-aes-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-aes-wrap.js) +- [parallel/test-crypto-async-sign-verify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-async-sign-verify.js) +- [parallel/test-crypto-authenticated-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-authenticated-stream.js) +- [parallel/test-crypto-authenticated.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-authenticated.js) +- [parallel/test-crypto-binary-default.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-binary-default.js) +- [parallel/test-crypto-certificate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-certificate.js) +- [parallel/test-crypto-cipher-decipher.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-cipher-decipher.js) +- [parallel/test-crypto-cipheriv-decipheriv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-cipheriv-decipheriv.js) +- [parallel/test-crypto-classes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-classes.js) +- [parallel/test-crypto-des3-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-des3-wrap.js) +- [parallel/test-crypto-dh-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-constructor.js) +- [parallel/test-crypto-dh-curves.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-curves.js) +- [parallel/test-crypto-dh-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-leak.js) +- [parallel/test-crypto-dh-modp2-views.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-modp2-views.js) +- [parallel/test-crypto-dh-modp2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-modp2.js) +- [parallel/test-crypto-dh-odd-key.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-odd-key.js) +- [parallel/test-crypto-dh-padding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-padding.js) +- [parallel/test-crypto-dh-shared.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-shared.js) +- [parallel/test-crypto-dh-stateless.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh-stateless.js) +- [parallel/test-crypto-dh.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-dh.js) +- [parallel/test-crypto-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-domain.js) +- [parallel/test-crypto-domains.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-domains.js) +- [parallel/test-crypto-ecb.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-ecb.js) +- [parallel/test-crypto-ecdh-convert-key.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-ecdh-convert-key.js) +- [parallel/test-crypto-fips.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-fips.js) +- [parallel/test-crypto-from-binary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-from-binary.js) +- [parallel/test-crypto-getcipherinfo.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-getcipherinfo.js) +- [parallel/test-crypto-hash-stream-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-hash-stream-pipe.js) +- [parallel/test-crypto-hash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-hash.js) +- [parallel/test-crypto-hkdf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-hkdf.js) +- [parallel/test-crypto-key-objects-messageport.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-key-objects-messageport.js) +- [parallel/test-crypto-key-objects.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-key-objects.js) +- [parallel/test-crypto-keygen-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-keygen-deprecation.js) +- [parallel/test-crypto-keygen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-keygen.js) +- [parallel/test-crypto-lazy-transform-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-lazy-transform-writable.js) +- [parallel/test-crypto-modp1-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-modp1-error.js) +- [parallel/test-crypto-op-during-process-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-op-during-process-exit.js) +- [parallel/test-crypto-padding-aes256.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-padding-aes256.js) +- [parallel/test-crypto-padding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-padding.js) +- [parallel/test-crypto-pbkdf2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-pbkdf2.js) +- [parallel/test-crypto-prime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-prime.js) +- [parallel/test-crypto-private-decrypt-gh32240.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-private-decrypt-gh32240.js) +- [parallel/test-crypto-psychic-signatures.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-psychic-signatures.js) +- [parallel/test-crypto-random.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-random.js) +- [parallel/test-crypto-randomfillsync-regression.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-randomfillsync-regression.js) +- [parallel/test-crypto-randomuuid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-randomuuid.js) +- [parallel/test-crypto-rsa-dsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-rsa-dsa.js) +- [parallel/test-crypto-scrypt.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-scrypt.js) +- [parallel/test-crypto-secret-keygen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-secret-keygen.js) +- [parallel/test-crypto-secure-heap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-secure-heap.js) +- [parallel/test-crypto-sign-verify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-sign-verify.js) +- [parallel/test-crypto-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-stream.js) +- [parallel/test-crypto-subtle-zero-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-subtle-zero-length.js) +- [parallel/test-crypto-update-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-update-encoding.js) +- [parallel/test-crypto-verify-failure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-verify-failure.js) +- [parallel/test-crypto-webcrypto-aes-decrypt-tag-too-small.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-webcrypto-aes-decrypt-tag-too-small.js) +- [parallel/test-crypto-worker-thread.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-worker-thread.js) +- [parallel/test-crypto-x509.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto-x509.js) +- [parallel/test-crypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-crypto.js) +- [parallel/test-cwd-enoent-preload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cwd-enoent-preload.js) +- [parallel/test-cwd-enoent-repl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cwd-enoent-repl.js) +- [parallel/test-cwd-enoent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-cwd-enoent.js) +- [parallel/test-datetime-change-notify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-datetime-change-notify.js) +- [parallel/test-debugger-pid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-debugger-pid.js) +- [parallel/test-debugger-unavailable-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-debugger-unavailable-port.js) +- [parallel/test-debugger-websocket-secret-mismatch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-debugger-websocket-secret-mismatch.js) +- [parallel/test-delayed-require.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-delayed-require.js) +- [parallel/test-dgram-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-address.js) +- [parallel/test-dgram-bind-default-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bind-default-address.js) +- [parallel/test-dgram-bind-error-repeat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bind-error-repeat.js) +- [parallel/test-dgram-bind-fd-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bind-fd-error.js) +- [parallel/test-dgram-bind-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bind-fd.js) +- [parallel/test-dgram-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bind.js) +- [parallel/test-dgram-bytes-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-bytes-length.js) +- [parallel/test-dgram-close-in-listening.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-close-in-listening.js) +- [parallel/test-dgram-close-is-not-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-close-is-not-callback.js) +- [parallel/test-dgram-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-close.js) +- [parallel/test-dgram-cluster-bind-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-cluster-bind-error.js) +- [parallel/test-dgram-cluster-close-during-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-cluster-close-during-bind.js) +- [parallel/test-dgram-cluster-close-in-listening.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-cluster-close-in-listening.js) +- [parallel/test-dgram-connect-send-callback-buffer-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-callback-buffer-length.js) +- [parallel/test-dgram-connect-send-callback-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-callback-buffer.js) +- [parallel/test-dgram-connect-send-callback-multi-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-callback-multi-buffer.js) +- [parallel/test-dgram-connect-send-default-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-default-host.js) +- [parallel/test-dgram-connect-send-empty-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-empty-array.js) +- [parallel/test-dgram-connect-send-empty-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-empty-buffer.js) +- [parallel/test-dgram-connect-send-empty-packet.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-empty-packet.js) +- [parallel/test-dgram-connect-send-multi-buffer-copy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-multi-buffer-copy.js) +- [parallel/test-dgram-connect-send-multi-string-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect-send-multi-string-array.js) +- [parallel/test-dgram-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-connect.js) +- [parallel/test-dgram-create-socket-handle-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-create-socket-handle-fd.js) +- [parallel/test-dgram-create-socket-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-create-socket-handle.js) +- [parallel/test-dgram-createSocket-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-createSocket-type.js) +- [parallel/test-dgram-custom-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-custom-lookup.js) +- [parallel/test-dgram-deprecation-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-deprecation-error.js) +- [parallel/test-dgram-error-message-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-error-message-address.js) +- [parallel/test-dgram-exclusive-implicit-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-exclusive-implicit-bind.js) +- [parallel/test-dgram-implicit-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-implicit-bind.js) +- [parallel/test-dgram-ipv6only.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-ipv6only.js) +- [parallel/test-dgram-listen-after-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-listen-after-bind.js) +- [parallel/test-dgram-membership.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-membership.js) +- [parallel/test-dgram-msgsize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-msgsize.js) +- [parallel/test-dgram-multicast-loopback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-multicast-loopback.js) +- [parallel/test-dgram-multicast-set-interface.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-multicast-set-interface.js) +- [parallel/test-dgram-multicast-setTTL.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-multicast-setTTL.js) +- [parallel/test-dgram-oob-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-oob-buffer.js) +- [parallel/test-dgram-recv-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-recv-error.js) +- [parallel/test-dgram-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-ref.js) +- [parallel/test-dgram-send-address-types.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-address-types.js) +- [parallel/test-dgram-send-bad-arguments.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-bad-arguments.js) +- [parallel/test-dgram-send-callback-buffer-empty-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-buffer-empty-address.js) +- [parallel/test-dgram-send-callback-buffer-length-empty-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js) +- [parallel/test-dgram-send-callback-buffer-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-buffer-length.js) +- [parallel/test-dgram-send-callback-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-buffer.js) +- [parallel/test-dgram-send-callback-multi-buffer-empty-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js) +- [parallel/test-dgram-send-callback-multi-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-multi-buffer.js) +- [parallel/test-dgram-send-callback-recursive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-callback-recursive.js) +- [parallel/test-dgram-send-cb-quelches-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-cb-quelches-error.js) +- [parallel/test-dgram-send-default-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-default-host.js) +- [parallel/test-dgram-send-empty-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-empty-array.js) +- [parallel/test-dgram-send-empty-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-empty-buffer.js) +- [parallel/test-dgram-send-empty-packet.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-empty-packet.js) +- [parallel/test-dgram-send-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-error.js) +- [parallel/test-dgram-send-invalid-msg-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-invalid-msg-type.js) +- [parallel/test-dgram-send-multi-buffer-copy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-multi-buffer-copy.js) +- [parallel/test-dgram-send-multi-string-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-multi-string-array.js) +- [parallel/test-dgram-send-queue-info.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-send-queue-info.js) +- [parallel/test-dgram-sendto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-sendto.js) +- [parallel/test-dgram-setBroadcast.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-setBroadcast.js) +- [parallel/test-dgram-setTTL.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-setTTL.js) +- [parallel/test-dgram-socket-buffer-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-socket-buffer-size.js) +- [parallel/test-dgram-udp4.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-udp4.js) +- [parallel/test-dgram-udp6-link-local-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-udp6-link-local-address.js) +- [parallel/test-dgram-udp6-send-default-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-udp6-send-default-host.js) +- [parallel/test-dgram-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dgram-unref.js) +- [parallel/test-diagnostics-channel-http-server-start.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-diagnostics-channel-http-server-start.js) +- [parallel/test-diagnostics-channel-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-diagnostics-channel-http.js) +- [parallel/test-diagnostics-channel-net.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-diagnostics-channel-net.js) +- [parallel/test-diagnostics-channel-safe-subscriber-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-diagnostics-channel-safe-subscriber-errors.js) +- [parallel/test-directory-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-directory-import.js) +- [parallel/test-disable-proto-delete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-disable-proto-delete.js) +- [parallel/test-disable-proto-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-disable-proto-throw.js) +- [parallel/test-dns-cancel-reverse-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-cancel-reverse-lookup.js) +- [parallel/test-dns-channel-cancel-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-channel-cancel-promise.js) +- [parallel/test-dns-channel-cancel.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-channel-cancel.js) +- [parallel/test-dns-channel-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-channel-timeout.js) +- [parallel/test-dns-default-verbatim-false.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-default-verbatim-false.js) +- [parallel/test-dns-default-verbatim-true.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-default-verbatim-true.js) +- [parallel/test-dns-get-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-get-server.js) +- [parallel/test-dns-lookup-promises-options-deprecated.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-lookup-promises-options-deprecated.js) +- [parallel/test-dns-lookup-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-lookup-promises.js) +- [parallel/test-dns-lookupService-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-lookupService-promises.js) +- [parallel/test-dns-lookupService.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-lookupService.js) +- [parallel/test-dns-multi-channel.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-multi-channel.js) +- [parallel/test-dns-perf_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-perf_hooks.js) +- [parallel/test-dns-resolve-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-resolve-promises.js) +- [parallel/test-dns-resolveany-bad-ancount.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-resolveany-bad-ancount.js) +- [parallel/test-dns-resolveany.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-resolveany.js) +- [parallel/test-dns-set-default-order.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-set-default-order.js) +- [parallel/test-dns-setlocaladdress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-setlocaladdress.js) +- [parallel/test-dns-setserver-when-querying.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns-setserver-when-querying.js) +- [parallel/test-dns.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dns.js) +- [parallel/test-domain-abort-on-uncaught.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-abort-on-uncaught.js) +- [parallel/test-domain-add-remove.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-add-remove.js) +- [parallel/test-domain-async-id-map-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-async-id-map-leak.js) +- [parallel/test-domain-bind-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-bind-timeout.js) +- [parallel/test-domain-crypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-crypto.js) +- [parallel/test-domain-dep0097.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-dep0097.js) +- [parallel/test-domain-ee-error-listener.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-ee-error-listener.js) +- [parallel/test-domain-ee-implicit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-ee-implicit.js) +- [parallel/test-domain-ee.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-ee.js) +- [parallel/test-domain-emit-error-handler-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-emit-error-handler-stack.js) +- [parallel/test-domain-enter-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-enter-exit.js) +- [parallel/test-domain-error-types.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-error-types.js) +- [parallel/test-domain-from-timer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-from-timer.js) +- [parallel/test-domain-fs-enoent-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-fs-enoent-stream.js) +- [parallel/test-domain-http-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-http-server.js) +- [parallel/test-domain-implicit-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-implicit-binding.js) +- [parallel/test-domain-implicit-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-implicit-fs.js) +- [parallel/test-domain-intercept.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-intercept.js) +- [parallel/test-domain-load-after-set-uncaught-exception-capture.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-load-after-set-uncaught-exception-capture.js) +- [parallel/test-domain-multi.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-multi.js) +- [parallel/test-domain-multiple-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-multiple-errors.js) +- [parallel/test-domain-nested-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-nested-throw.js) +- [parallel/test-domain-nested.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-nested.js) +- [parallel/test-domain-nexttick.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-nexttick.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-0.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-1.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-1.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-2.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-3.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-4.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-4.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-5.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-5.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-6.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-6.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-7.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-7.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-8.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-8.js) +- [parallel/test-domain-no-error-handler-abort-on-uncaught-9.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-no-error-handler-abort-on-uncaught-9.js) +- [parallel/test-domain-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-promise.js) +- [parallel/test-domain-run.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-run.js) +- [parallel/test-domain-safe-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-safe-exit.js) +- [parallel/test-domain-set-uncaught-exception-capture-after-load.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-set-uncaught-exception-capture-after-load.js) +- [parallel/test-domain-stack-empty-in-process-uncaughtexception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-stack-empty-in-process-uncaughtexception.js) +- [parallel/test-domain-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-stack.js) +- [parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js) +- [parallel/test-domain-thrown-error-handler-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-thrown-error-handler-stack.js) +- [parallel/test-domain-timer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-timer.js) +- [parallel/test-domain-timers-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-timers-uncaught-exception.js) +- [parallel/test-domain-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-timers.js) +- [parallel/test-domain-top-level-error-handler-clears-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-top-level-error-handler-clears-stack.js) +- [parallel/test-domain-top-level-error-handler-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-top-level-error-handler-throw.js) +- [parallel/test-domain-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-uncaught-exception.js) +- [parallel/test-domain-vm-promise-isolation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-vm-promise-isolation.js) +- [parallel/test-domain-with-abort-on-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domain-with-abort-on-uncaught-exception.js) +- [parallel/test-domexception-cause.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-domexception-cause.js) +- [parallel/test-dsa-fips-invalid-key.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dsa-fips-invalid-key.js) +- [parallel/test-dummy-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-dummy-stdio.js) +- [parallel/test-emit-after-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-emit-after-uncaught-exception.js) +- [parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js) +- [parallel/test-env-var-no-warnings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-env-var-no-warnings.js) +- [parallel/test-err-name-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-err-name-deprecation.js) +- [parallel/test-error-aggregateTwoErrors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-error-aggregateTwoErrors.js) +- [parallel/test-error-prepare-stack-trace.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-error-prepare-stack-trace.js) +- [parallel/test-error-reporting.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-error-reporting.js) +- [parallel/test-error-serdes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-error-serdes.js) +- [parallel/test-errors-aborterror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-aborterror.js) +- [parallel/test-errors-systemerror-frozen-intrinsics.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-frozen-intrinsics.js) +- [parallel/test-errors-systemerror-stackTraceLimit-custom-setter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-stackTraceLimit-custom-setter.js) +- [parallel/test-errors-systemerror-stackTraceLimit-deleted-and-Error-sealed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-stackTraceLimit-deleted-and-Error-sealed.js) +- [parallel/test-errors-systemerror-stackTraceLimit-deleted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-stackTraceLimit-deleted.js) +- [parallel/test-errors-systemerror-stackTraceLimit-has-only-a-getter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-stackTraceLimit-has-only-a-getter.js) +- [parallel/test-errors-systemerror-stackTraceLimit-not-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror-stackTraceLimit-not-writable.js) +- [parallel/test-errors-systemerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-errors-systemerror.js) +- [parallel/test-eslint-alphabetize-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-alphabetize-errors.js) +- [parallel/test-eslint-async-iife-no-unused-result.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-async-iife-no-unused-result.js) +- [parallel/test-eslint-avoid-prototype-pollution.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-avoid-prototype-pollution.js) +- [parallel/test-eslint-crypto-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-crypto-check.js) +- [parallel/test-eslint-documented-deprecation-codes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-documented-deprecation-codes.js) +- [parallel/test-eslint-documented-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-documented-errors.js) +- [parallel/test-eslint-duplicate-requires.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-duplicate-requires.js) +- [parallel/test-eslint-eslint-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-eslint-check.js) +- [parallel/test-eslint-inspector-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-inspector-check.js) +- [parallel/test-eslint-lowercase-name-for-primitive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-lowercase-name-for-primitive.js) +- [parallel/test-eslint-no-array-destructuring.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-no-array-destructuring.js) +- [parallel/test-eslint-no-unescaped-regexp-dot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-no-unescaped-regexp-dot.js) +- [parallel/test-eslint-non-ascii-character.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-non-ascii-character.js) +- [parallel/test-eslint-prefer-assert-iferror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-assert-iferror.js) +- [parallel/test-eslint-prefer-assert-methods.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-assert-methods.js) +- [parallel/test-eslint-prefer-common-mustnotcall.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-common-mustnotcall.js) +- [parallel/test-eslint-prefer-common-mustsucceed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-common-mustsucceed.js) +- [parallel/test-eslint-prefer-primordials.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-primordials.js) +- [parallel/test-eslint-prefer-util-format-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-prefer-util-format-errors.js) +- [parallel/test-eslint-require-common-first.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-require-common-first.js) +- [parallel/test-eslint-required-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eslint-required-modules.js) +- [parallel/test-eval-disallow-code-generation-from-strings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eval-disallow-code-generation-from-strings.js) +- [parallel/test-event-capture-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-event-capture-rejections.js) +- [parallel/test-event-emitter-check-listener-leaks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-event-emitter-check-listener-leaks.js) +- [parallel/test-event-emitter-max-listeners-warning-for-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-event-emitter-max-listeners-warning-for-null.js) +- [parallel/test-event-emitter-max-listeners-warning-for-symbol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js) +- [parallel/test-event-emitter-max-listeners-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-event-emitter-max-listeners-warning.js) +- [parallel/test-eventemitter-asyncresource.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eventemitter-asyncresource.js) +- [parallel/test-events-customevent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-events-customevent.js) +- [parallel/test-events-static-geteventlisteners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-events-static-geteventlisteners.js) +- [parallel/test-eventtarget-memoryleakwarning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eventtarget-memoryleakwarning.js) +- [parallel/test-eventtarget-once-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eventtarget-once-twice.js) +- [parallel/test-eventtarget.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-eventtarget.js) +- [parallel/test-file-validate-mode-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-file-validate-mode-flag.js) +- [parallel/test-filehandle-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-filehandle-close.js) +- [parallel/test-filehandle-readablestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-filehandle-readablestream.js) +- [parallel/test-fixed-queue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fixed-queue.js) +- [parallel/test-force-repl-with-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-force-repl-with-eval.js) +- [parallel/test-force-repl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-force-repl.js) +- [parallel/test-freelist.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-freelist.js) +- [parallel/test-freeze-intrinsics.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-freeze-intrinsics.js) +- [parallel/test-fs-assert-encoding-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-assert-encoding-error.js) +- [parallel/test-fs-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-buffer.js) +- [parallel/test-fs-buffertype-writesync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-buffertype-writesync.js) +- [parallel/test-fs-close-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-close-errors.js) +- [parallel/test-fs-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-close.js) +- [parallel/test-fs-constants.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-constants.js) +- [parallel/test-fs-copyfile-respect-permissions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-copyfile-respect-permissions.js) +- [parallel/test-fs-error-messages.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-error-messages.js) +- [parallel/test-fs-exists.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-exists.js) +- [parallel/test-fs-existssync-false.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-existssync-false.js) +- [parallel/test-fs-fchmod.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-fchmod.js) +- [parallel/test-fs-fchown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-fchown.js) +- [parallel/test-fs-filehandle-use-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-filehandle-use-after-close.js) +- [parallel/test-fs-filehandle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-filehandle.js) +- [parallel/test-fs-fmap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-fmap.js) +- [parallel/test-fs-fsync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-fsync.js) +- [parallel/test-fs-lchmod.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-lchmod.js) +- [parallel/test-fs-lchown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-lchown.js) +- [parallel/test-fs-link.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-link.js) +- [parallel/test-fs-long-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-long-path.js) +- [parallel/test-fs-make-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-make-callback.js) +- [parallel/test-fs-makeStatsCallback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-makeStatsCallback.js) +- [parallel/test-fs-mkdir-mode-mask.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-mkdir-mode-mask.js) +- [parallel/test-fs-mkdir-recursive-eaccess.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-mkdir-recursive-eaccess.js) +- [parallel/test-fs-mkdir-rmdir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-mkdir-rmdir.js) +- [parallel/test-fs-mkdtemp-prefix-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-mkdtemp-prefix-check.js) +- [parallel/test-fs-mkdtemp.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-mkdtemp.js) +- [parallel/test-fs-non-number-arguments-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-non-number-arguments-throw.js) +- [parallel/test-fs-null-bytes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-null-bytes.js) +- [parallel/test-fs-options-immutable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-options-immutable.js) +- [parallel/test-fs-promises-exists.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-exists.js) +- [parallel/test-fs-promises-file-handle-aggregate-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-aggregate-errors.js) +- [parallel/test-fs-promises-file-handle-append-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-append-file.js) +- [parallel/test-fs-promises-file-handle-chmod.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-chmod.js) +- [parallel/test-fs-promises-file-handle-close-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-close-errors.js) +- [parallel/test-fs-promises-file-handle-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-close.js) +- [parallel/test-fs-promises-file-handle-op-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-op-errors.js) +- [parallel/test-fs-promises-file-handle-read-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-read-worker.js) +- [parallel/test-fs-promises-file-handle-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-read.js) +- [parallel/test-fs-promises-file-handle-readFile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-readFile.js) +- [parallel/test-fs-promises-file-handle-stat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-stat.js) +- [parallel/test-fs-promises-file-handle-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-stream.js) +- [parallel/test-fs-promises-file-handle-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-sync.js) +- [parallel/test-fs-promises-file-handle-truncate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-truncate.js) +- [parallel/test-fs-promises-file-handle-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-write.js) +- [parallel/test-fs-promises-file-handle-writeFile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-file-handle-writeFile.js) +- [parallel/test-fs-promises-readfile-empty.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-readfile-empty.js) +- [parallel/test-fs-promises-readfile-with-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-readfile-with-fd.js) +- [parallel/test-fs-promises-readfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-readfile.js) +- [parallel/test-fs-promises-watch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-watch.js) +- [parallel/test-fs-promises-write-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-write-optional-params.js) +- [parallel/test-fs-promises-writefile-typedarray.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-writefile-typedarray.js) +- [parallel/test-fs-promises-writefile-with-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-writefile-with-fd.js) +- [parallel/test-fs-promises-writefile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises-writefile.js) +- [parallel/test-fs-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promises.js) +- [parallel/test-fs-promisified.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-promisified.js) +- [parallel/test-fs-read-empty-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-empty-buffer.js) +- [parallel/test-fs-read-file-assert-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-file-assert-encoding.js) +- [parallel/test-fs-read-file-sync-hostname.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-file-sync-hostname.js) +- [parallel/test-fs-read-file-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-file-sync.js) +- [parallel/test-fs-read-offset-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-offset-null.js) +- [parallel/test-fs-read-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-optional-params.js) +- [parallel/test-fs-read-promises-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-promises-optional-params.js) +- [parallel/test-fs-read-stream-err.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-stream-err.js) +- [parallel/test-fs-read-stream-fd-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-stream-fd-leak.js) +- [parallel/test-fs-read-stream-file-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-stream-file-handle.js) +- [parallel/test-fs-read-stream-pos.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-read-stream-pos.js) +- [parallel/test-fs-readSync-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readSync-optional-params.js) +- [parallel/test-fs-readdir-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readdir-buffer.js) +- [parallel/test-fs-readdir-types.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readdir-types.js) +- [parallel/test-fs-readdir-ucs2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readdir-ucs2.js) +- [parallel/test-fs-readfile-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-error.js) +- [parallel/test-fs-readfile-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-fd.js) +- [parallel/test-fs-readfile-flags.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-flags.js) +- [parallel/test-fs-readfile-pipe-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-pipe-large.js) +- [parallel/test-fs-readfile-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-pipe.js) +- [parallel/test-fs-readfile-unlink.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-unlink.js) +- [parallel/test-fs-readfile-zero-byte-liar.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile-zero-byte-liar.js) +- [parallel/test-fs-readfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfile.js) +- [parallel/test-fs-readfilesync-enoent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfilesync-enoent.js) +- [parallel/test-fs-readfilesync-pipe-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readfilesync-pipe-large.js) +- [parallel/test-fs-readlink-type-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readlink-type-check.js) +- [parallel/test-fs-readv-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readv-promises.js) +- [parallel/test-fs-readv-promisify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readv-promisify.js) +- [parallel/test-fs-readv-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readv-sync.js) +- [parallel/test-fs-readv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-readv.js) +- [parallel/test-fs-ready-event-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-ready-event-stream.js) +- [parallel/test-fs-realpath-buffer-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-realpath-buffer-encoding.js) +- [parallel/test-fs-realpath-on-substed-drive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-realpath-on-substed-drive.js) +- [parallel/test-fs-realpath-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-realpath-pipe.js) +- [parallel/test-fs-realpath.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-realpath.js) +- [parallel/test-fs-rename-type-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-rename-type-check.js) +- [parallel/test-fs-rm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-rm.js) +- [parallel/test-fs-sir-writes-alot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-sir-writes-alot.js) +- [parallel/test-fs-stat-bigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stat-bigint.js) +- [parallel/test-fs-stat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stat.js) +- [parallel/test-fs-stream-construct-compat-error-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-construct-compat-error-read.js) +- [parallel/test-fs-stream-construct-compat-error-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-construct-compat-error-write.js) +- [parallel/test-fs-stream-construct-compat-graceful-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-construct-compat-graceful-fs.js) +- [parallel/test-fs-stream-construct-compat-old-node.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-construct-compat-old-node.js) +- [parallel/test-fs-stream-destroy-emit-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-destroy-emit-error.js) +- [parallel/test-fs-stream-double-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-double-close.js) +- [parallel/test-fs-stream-fs-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-fs-options.js) +- [parallel/test-fs-stream-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-stream-options.js) +- [parallel/test-fs-symlink-buffer-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink-buffer-path.js) +- [parallel/test-fs-symlink-dir-junction-relative.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink-dir-junction-relative.js) +- [parallel/test-fs-symlink-dir-junction.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink-dir-junction.js) +- [parallel/test-fs-symlink-dir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink-dir.js) +- [parallel/test-fs-symlink-longpath.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink-longpath.js) +- [parallel/test-fs-symlink.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-symlink.js) +- [parallel/test-fs-sync-fd-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-sync-fd-leak.js) +- [parallel/test-fs-syncwritestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-syncwritestream.js) +- [parallel/test-fs-timestamp-parsing-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-timestamp-parsing-error.js) +- [parallel/test-fs-truncate-clear-file-zero.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-truncate-clear-file-zero.js) +- [parallel/test-fs-truncate-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-truncate-fd.js) +- [parallel/test-fs-truncate-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-truncate-sync.js) +- [parallel/test-fs-truncate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-truncate.js) +- [parallel/test-fs-unlink-type-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-unlink-type-check.js) +- [parallel/test-fs-util-validateoffsetlength.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-util-validateoffsetlength.js) +- [parallel/test-fs-utils-get-dirents.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-utils-get-dirents.js) +- [parallel/test-fs-utimes-y2K38.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-utimes-y2K38.js) +- [parallel/test-fs-utimes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-utimes.js) +- [parallel/test-fs-watch-abort-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-abort-signal.js) +- [parallel/test-fs-watch-close-when-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-close-when-destroyed.js) +- [parallel/test-fs-watch-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-encoding.js) +- [parallel/test-fs-watch-enoent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-enoent.js) +- [parallel/test-fs-watch-file-enoent-after-deletion.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-file-enoent-after-deletion.js) +- [parallel/test-fs-watch-recursive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-recursive.js) +- [parallel/test-fs-watch-ref-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-ref-unref.js) +- [parallel/test-fs-watch-stop-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-stop-async.js) +- [parallel/test-fs-watch-stop-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch-stop-sync.js) +- [parallel/test-fs-watch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watch.js) +- [parallel/test-fs-watchfile-bigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watchfile-bigint.js) +- [parallel/test-fs-watchfile-ref-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-watchfile-ref-unref.js) +- [parallel/test-fs-whatwg-url.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-whatwg-url.js) +- [parallel/test-fs-write-buffer-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-buffer-large.js) +- [parallel/test-fs-write-file-typedarrays.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-file-typedarrays.js) +- [parallel/test-fs-write-negativeoffset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-negativeoffset.js) +- [parallel/test-fs-write-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-optional-params.js) +- [parallel/test-fs-write-reuse-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-reuse-callback.js) +- [parallel/test-fs-write-sigxfsz.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-sigxfsz.js) +- [parallel/test-fs-write-stream-change-open.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-change-open.js) +- [parallel/test-fs-write-stream-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-encoding.js) +- [parallel/test-fs-write-stream-err.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-err.js) +- [parallel/test-fs-write-stream-file-handle-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-file-handle-2.js) +- [parallel/test-fs-write-stream-file-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-file-handle.js) +- [parallel/test-fs-write-stream-patch-open.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-stream-patch-open.js) +- [parallel/test-fs-write-sync-optional-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-write-sync-optional-params.js) +- [parallel/test-fs-writefile-with-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-writefile-with-fd.js) +- [parallel/test-fs-writev-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-writev-promises.js) +- [parallel/test-fs-writev.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-fs-writev.js) +- [parallel/test-gc-http-client-connaborted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-gc-http-client-connaborted.js) +- [parallel/test-gc-net-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-gc-net-timeout.js) +- [parallel/test-gc-tls-external-memory.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-gc-tls-external-memory.js) +- [parallel/test-global-console-exists.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-console-exists.js) +- [parallel/test-global-customevent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-customevent.js) +- [parallel/test-global-domexception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-domexception.js) +- [parallel/test-global-encoder.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-encoder.js) +- [parallel/test-global-setters.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-setters.js) +- [parallel/test-global-webcrypto-classes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-webcrypto-classes.js) +- [parallel/test-global-webcrypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-webcrypto.js) +- [parallel/test-global-webstreams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global-webstreams.js) +- [parallel/test-global.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-global.js) +- [parallel/test-handle-wrap-hasref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-handle-wrap-hasref.js) +- [parallel/test-heap-prof-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-basic.js) +- [parallel/test-heap-prof-dir-absolute.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-dir-absolute.js) +- [parallel/test-heap-prof-dir-name.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-dir-name.js) +- [parallel/test-heap-prof-dir-relative.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-dir-relative.js) +- [parallel/test-heap-prof-exec-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-exec-argv.js) +- [parallel/test-heap-prof-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-exit.js) +- [parallel/test-heap-prof-interval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-interval.js) +- [parallel/test-heap-prof-invalid-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-invalid-args.js) +- [parallel/test-heap-prof-loop-drained.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-loop-drained.js) +- [parallel/test-heap-prof-name.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-name.js) +- [parallel/test-heap-prof-sigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heap-prof-sigint.js) +- [parallel/test-heapdump-async-hooks-init-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heapdump-async-hooks-init-promise.js) +- [parallel/test-heapsnapshot-near-heap-limit-by-api-in-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heapsnapshot-near-heap-limit-by-api-in-worker.js) +- [parallel/test-heapsnapshot-near-heap-limit-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-heapsnapshot-near-heap-limit-worker.js) +- [parallel/test-http-1.0-keep-alive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-1.0-keep-alive.js) +- [parallel/test-http-1.0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-1.0.js) +- [parallel/test-http-abort-before-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-abort-before-end.js) +- [parallel/test-http-abort-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-abort-client.js) +- [parallel/test-http-abort-queued.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-abort-queued.js) +- [parallel/test-http-abort-stream-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-abort-stream-end.js) +- [parallel/test-http-aborted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-aborted.js) +- [parallel/test-http-addrequest-localaddress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-addrequest-localaddress.js) +- [parallel/test-http-after-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-after-connect.js) +- [parallel/test-http-agent-abort-controller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-abort-controller.js) +- [parallel/test-http-agent-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-close.js) +- [parallel/test-http-agent-destroyed-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-destroyed-socket.js) +- [parallel/test-http-agent-domain-reused-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-domain-reused-gc.js) +- [parallel/test-http-agent-error-on-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-error-on-idle.js) +- [parallel/test-http-agent-false.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-false.js) +- [parallel/test-http-agent-keepalive-delay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-keepalive-delay.js) +- [parallel/test-http-agent-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-keepalive.js) +- [parallel/test-http-agent-maxsockets-respected.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-maxsockets-respected.js) +- [parallel/test-http-agent-maxsockets.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-maxsockets.js) +- [parallel/test-http-agent-maxtotalsockets.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-maxtotalsockets.js) +- [parallel/test-http-agent-no-protocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-no-protocol.js) +- [parallel/test-http-agent-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-null.js) +- [parallel/test-http-agent-remove.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-remove.js) +- [parallel/test-http-agent-reuse-drained-socket-only.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-reuse-drained-socket-only.js) +- [parallel/test-http-agent-scheduling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-scheduling.js) +- [parallel/test-http-agent-timeout-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-timeout-option.js) +- [parallel/test-http-agent-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-timeout.js) +- [parallel/test-http-agent-uninitialized-with-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-uninitialized-with-handle.js) +- [parallel/test-http-agent-uninitialized.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent-uninitialized.js) +- [parallel/test-http-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-agent.js) +- [parallel/test-http-allow-content-length-304.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-allow-content-length-304.js) +- [parallel/test-http-allow-req-after-204-res.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-allow-req-after-204-res.js) +- [parallel/test-http-automatic-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-automatic-headers.js) +- [parallel/test-http-bind-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-bind-twice.js) +- [parallel/test-http-blank-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-blank-header.js) +- [parallel/test-http-buffer-sanity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-buffer-sanity.js) +- [parallel/test-http-byteswritten.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-byteswritten.js) +- [parallel/test-http-catch-uncaughtexception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-catch-uncaughtexception.js) +- [parallel/test-http-chunk-problem.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-chunk-problem.js) +- [parallel/test-http-chunked-304.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-chunked-304.js) +- [parallel/test-http-chunked-smuggling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-chunked-smuggling.js) +- [parallel/test-http-chunked.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-chunked.js) +- [parallel/test-http-client-abort-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-destroy.js) +- [parallel/test-http-client-abort-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-event.js) +- [parallel/test-http-client-abort-keep-alive-destroy-res.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-keep-alive-destroy-res.js) +- [parallel/test-http-client-abort-keep-alive-queued-tcp-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-keep-alive-queued-tcp-socket.js) +- [parallel/test-http-client-abort-keep-alive-queued-unix-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-keep-alive-queued-unix-socket.js) +- [parallel/test-http-client-abort-no-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-no-agent.js) +- [parallel/test-http-client-abort-response-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-response-event.js) +- [parallel/test-http-client-abort-unix-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort-unix-socket.js) +- [parallel/test-http-client-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort.js) +- [parallel/test-http-client-abort2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort2.js) +- [parallel/test-http-client-abort3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-abort3.js) +- [parallel/test-http-client-aborted-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-aborted-event.js) +- [parallel/test-http-client-agent-abort-close-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-agent-abort-close-event.js) +- [parallel/test-http-client-agent-end-close-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-agent-end-close-event.js) +- [parallel/test-http-client-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-agent.js) +- [parallel/test-http-client-check-http-token.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-check-http-token.js) +- [parallel/test-http-client-close-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-close-event.js) +- [parallel/test-http-client-default-headers-exist.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-default-headers-exist.js) +- [parallel/test-http-client-defaults.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-defaults.js) +- [parallel/test-http-client-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-encoding.js) +- [parallel/test-http-client-error-rawbytes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-error-rawbytes.js) +- [parallel/test-http-client-finished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-finished.js) +- [parallel/test-http-client-headers-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-headers-array.js) +- [parallel/test-http-client-headers-host-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-headers-host-array.js) +- [parallel/test-http-client-immediate-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-immediate-error.js) +- [parallel/test-http-client-incomingmessage-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-incomingmessage-destroy.js) +- [parallel/test-http-client-invalid-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-invalid-path.js) +- [parallel/test-http-client-keep-alive-release-before-finish.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-keep-alive-release-before-finish.js) +- [parallel/test-http-client-override-global-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-override-global-agent.js) +- [parallel/test-http-client-parse-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-parse-error.js) +- [parallel/test-http-client-pipe-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-pipe-end.js) +- [parallel/test-http-client-race-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-race-2.js) +- [parallel/test-http-client-race.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-race.js) +- [parallel/test-http-client-readable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-readable.js) +- [parallel/test-http-client-reject-chunked-with-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-reject-chunked-with-content-length.js) +- [parallel/test-http-client-reject-cr-no-lf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-reject-cr-no-lf.js) +- [parallel/test-http-client-reject-unexpected-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-reject-unexpected-agent.js) +- [parallel/test-http-client-req-error-dont-double-fire.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-req-error-dont-double-fire.js) +- [parallel/test-http-client-res-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-res-destroyed.js) +- [parallel/test-http-client-response-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-response-domain.js) +- [parallel/test-http-client-response-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-response-timeout.js) +- [parallel/test-http-client-set-timeout-after-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-set-timeout-after-end.js) +- [parallel/test-http-client-set-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-set-timeout.js) +- [parallel/test-http-client-spurious-aborted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-spurious-aborted.js) +- [parallel/test-http-client-timeout-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-agent.js) +- [parallel/test-http-client-timeout-connect-listener.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-connect-listener.js) +- [parallel/test-http-client-timeout-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-event.js) +- [parallel/test-http-client-timeout-on-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-on-connect.js) +- [parallel/test-http-client-timeout-option-listeners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-option-listeners.js) +- [parallel/test-http-client-timeout-option-with-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-option-with-agent.js) +- [parallel/test-http-client-timeout-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-option.js) +- [parallel/test-http-client-timeout-with-data.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout-with-data.js) +- [parallel/test-http-client-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-timeout.js) +- [parallel/test-http-client-unescaped-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-unescaped-path.js) +- [parallel/test-http-client-upload-buf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-upload-buf.js) +- [parallel/test-http-client-upload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-client-upload.js) +- [parallel/test-http-common.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-common.js) +- [parallel/test-http-conn-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-conn-reset.js) +- [parallel/test-http-connect-req-res.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-connect-req-res.js) +- [parallel/test-http-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-connect.js) +- [parallel/test-http-content-length-mismatch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-content-length-mismatch.js) +- [parallel/test-http-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-content-length.js) +- [parallel/test-http-contentLength0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-contentLength0.js) +- [parallel/test-http-correct-hostname.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-correct-hostname.js) +- [parallel/test-http-createConnection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-createConnection.js) +- [parallel/test-http-date-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-date-header.js) +- [parallel/test-http-debug.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-debug.js) +- [parallel/test-http-decoded-auth.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-decoded-auth.js) +- [parallel/test-http-default-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-default-encoding.js) +- [parallel/test-http-default-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-default-port.js) +- [parallel/test-http-destroyed-socket-write2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-destroyed-socket-write2.js) +- [parallel/test-http-dns-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-dns-error.js) +- [parallel/test-http-double-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-double-content-length.js) +- [parallel/test-http-dump-req-when-res-ends.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-dump-req-when-res-ends.js) +- [parallel/test-http-early-hints-invalid-argument.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-early-hints-invalid-argument.js) +- [parallel/test-http-early-hints.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-early-hints.js) +- [parallel/test-http-end-throw-socket-handling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-end-throw-socket-handling.js) +- [parallel/test-http-eof-on-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-eof-on-connect.js) +- [parallel/test-http-exceptions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-exceptions.js) +- [parallel/test-http-expect-continue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-expect-continue.js) +- [parallel/test-http-expect-handling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-expect-handling.js) +- [parallel/test-http-extra-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-extra-response.js) +- [parallel/test-http-flush-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-flush-headers.js) +- [parallel/test-http-flush-response-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-flush-response-headers.js) +- [parallel/test-http-full-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-full-response.js) +- [parallel/test-http-generic-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-generic-streams.js) +- [parallel/test-http-get-pipeline-problem.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-get-pipeline-problem.js) +- [parallel/test-http-head-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-head-request.js) +- [parallel/test-http-head-response-has-no-body-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-head-response-has-no-body-end.js) +- [parallel/test-http-head-response-has-no-body.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-head-response-has-no-body.js) +- [parallel/test-http-header-badrequest.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-badrequest.js) +- [parallel/test-http-header-obstext.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-obstext.js) +- [parallel/test-http-header-overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-overflow.js) +- [parallel/test-http-header-owstext.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-owstext.js) +- [parallel/test-http-header-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-read.js) +- [parallel/test-http-header-validators.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-header-validators.js) +- [parallel/test-http-hex-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-hex-write.js) +- [parallel/test-http-highwatermark.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-highwatermark.js) +- [parallel/test-http-host-header-ipv6-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-host-header-ipv6-fail.js) +- [parallel/test-http-host-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-host-headers.js) +- [parallel/test-http-hostname-typechecking.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-hostname-typechecking.js) +- [parallel/test-http-incoming-matchKnownFields.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-incoming-matchKnownFields.js) +- [parallel/test-http-incoming-message-connection-setter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-incoming-message-connection-setter.js) +- [parallel/test-http-incoming-message-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-incoming-message-destroy.js) +- [parallel/test-http-incoming-message-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-incoming-message-options.js) +- [parallel/test-http-incoming-pipelined-socket-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-incoming-pipelined-socket-destroy.js) +- [parallel/test-http-information-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-information-headers.js) +- [parallel/test-http-information-processing.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-information-processing.js) +- [parallel/test-http-insecure-parser-per-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-insecure-parser-per-stream.js) +- [parallel/test-http-insecure-parser.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-insecure-parser.js) +- [parallel/test-http-invalid-path-chars.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-invalid-path-chars.js) +- [parallel/test-http-invalid-te.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-invalid-te.js) +- [parallel/test-http-invalid-urls.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-invalid-urls.js) +- [parallel/test-http-invalidheaderfield.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-invalidheaderfield.js) +- [parallel/test-http-invalidheaderfield2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-invalidheaderfield2.js) +- [parallel/test-http-keep-alive-close-on-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-close-on-header.js) +- [parallel/test-http-keep-alive-drop-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-drop-requests.js) +- [parallel/test-http-keep-alive-max-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-max-requests.js) +- [parallel/test-http-keep-alive-pipeline-max-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-pipeline-max-requests.js) +- [parallel/test-http-keep-alive-timeout-custom.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-timeout-custom.js) +- [parallel/test-http-keep-alive-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive-timeout.js) +- [parallel/test-http-keep-alive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keep-alive.js) +- [parallel/test-http-keepalive-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keepalive-client.js) +- [parallel/test-http-keepalive-free.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keepalive-free.js) +- [parallel/test-http-keepalive-override.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keepalive-override.js) +- [parallel/test-http-keepalive-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-keepalive-request.js) +- [parallel/test-http-listening.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-listening.js) +- [parallel/test-http-localaddress-bind-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-localaddress-bind-error.js) +- [parallel/test-http-localaddress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-localaddress.js) +- [parallel/test-http-malformed-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-malformed-request.js) +- [parallel/test-http-many-ended-pipelines.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-many-ended-pipelines.js) +- [parallel/test-http-max-header-size-per-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-max-header-size-per-stream.js) +- [parallel/test-http-max-header-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-max-header-size.js) +- [parallel/test-http-max-headers-count.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-max-headers-count.js) +- [parallel/test-http-max-http-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-max-http-headers.js) +- [parallel/test-http-methods.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-methods.js) +- [parallel/test-http-missing-header-separator-cr.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-missing-header-separator-cr.js) +- [parallel/test-http-multi-line-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-multi-line-headers.js) +- [parallel/test-http-multiple-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-multiple-headers.js) +- [parallel/test-http-mutable-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-mutable-headers.js) +- [parallel/test-http-no-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-no-content-length.js) +- [parallel/test-http-no-read-no-dump.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-no-read-no-dump.js) +- [parallel/test-http-nodelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-nodelay.js) +- [parallel/test-http-outgoing-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-destroy.js) +- [parallel/test-http-outgoing-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-destroyed.js) +- [parallel/test-http-outgoing-end-cork.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-end-cork.js) +- [parallel/test-http-outgoing-end-multiple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-end-multiple.js) +- [parallel/test-http-outgoing-end-types.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-end-types.js) +- [parallel/test-http-outgoing-finish-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-finish-writable.js) +- [parallel/test-http-outgoing-finish.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-finish.js) +- [parallel/test-http-outgoing-finished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-finished.js) +- [parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js) +- [parallel/test-http-outgoing-message-capture-rejection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-message-capture-rejection.js) +- [parallel/test-http-outgoing-message-write-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-message-write-callback.js) +- [parallel/test-http-outgoing-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-properties.js) +- [parallel/test-http-outgoing-proto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-proto.js) +- [parallel/test-http-outgoing-writableFinished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-writableFinished.js) +- [parallel/test-http-outgoing-write-types.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-outgoing-write-types.js) +- [parallel/test-http-parser-bad-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-bad-ref.js) +- [parallel/test-http-parser-finish-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-finish-error.js) +- [parallel/test-http-parser-free.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-free.js) +- [parallel/test-http-parser-freed-before-upgrade.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-freed-before-upgrade.js) +- [parallel/test-http-parser-lazy-loaded.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-lazy-loaded.js) +- [parallel/test-http-parser-memory-retention.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-memory-retention.js) +- [parallel/test-http-parser-multiple-execute.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-multiple-execute.js) +- [parallel/test-http-parser-timeout-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser-timeout-reset.js) +- [parallel/test-http-parser.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-parser.js) +- [parallel/test-http-pause-no-dump.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pause-no-dump.js) +- [parallel/test-http-pause-resume-one-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pause-resume-one-end.js) +- [parallel/test-http-pause.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pause.js) +- [parallel/test-http-perf_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-perf_hooks.js) +- [parallel/test-http-pipe-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pipe-fs.js) +- [parallel/test-http-pipeline-assertionerror-finish.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pipeline-assertionerror-finish.js) +- [parallel/test-http-pipeline-flood.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pipeline-flood.js) +- [parallel/test-http-pipeline-requests-connection-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pipeline-requests-connection-leak.js) +- [parallel/test-http-pipeline-socket-parser-typeerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-pipeline-socket-parser-typeerror.js) +- [parallel/test-http-proxy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-proxy.js) +- [parallel/test-http-raw-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-raw-headers.js) +- [parallel/test-http-readable-data-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-readable-data-event.js) +- [parallel/test-http-remove-header-stays-removed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-remove-header-stays-removed.js) +- [parallel/test-http-req-close-robust-from-tampering.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-req-close-robust-from-tampering.js) +- [parallel/test-http-req-res-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-req-res-close.js) +- [parallel/test-http-request-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-agent.js) +- [parallel/test-http-request-arguments.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-arguments.js) +- [parallel/test-http-request-dont-override-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-dont-override-options.js) +- [parallel/test-http-request-end-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-end-twice.js) +- [parallel/test-http-request-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-end.js) +- [parallel/test-http-request-invalid-method-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-invalid-method-error.js) +- [parallel/test-http-request-large-payload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-large-payload.js) +- [parallel/test-http-request-methods.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-methods.js) +- [parallel/test-http-request-smuggling-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-request-smuggling-content-length.js) +- [parallel/test-http-res-write-after-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-res-write-after-end.js) +- [parallel/test-http-res-write-end-dont-take-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-res-write-end-dont-take-array.js) +- [parallel/test-http-response-add-header-after-sent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-add-header-after-sent.js) +- [parallel/test-http-response-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-close.js) +- [parallel/test-http-response-cork.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-cork.js) +- [parallel/test-http-response-multi-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-multi-content-length.js) +- [parallel/test-http-response-multiheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-multiheaders.js) +- [parallel/test-http-response-no-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-no-headers.js) +- [parallel/test-http-response-readable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-readable.js) +- [parallel/test-http-response-remove-header-after-sent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-remove-header-after-sent.js) +- [parallel/test-http-response-splitting.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-splitting.js) +- [parallel/test-http-response-status-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-status-message.js) +- [parallel/test-http-response-statuscode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-statuscode.js) +- [parallel/test-http-response-writehead-returns-this.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-response-writehead-returns-this.js) +- [parallel/test-http-same-map.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-same-map.js) +- [parallel/test-http-server-capture-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-capture-rejections.js) +- [parallel/test-http-server-client-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-client-error.js) +- [parallel/test-http-server-close-all.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-close-all.js) +- [parallel/test-http-server-close-idle-wait-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-close-idle-wait-response.js) +- [parallel/test-http-server-close-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-close-idle.js) +- [parallel/test-http-server-connection-list-when-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-connection-list-when-close.js) +- [parallel/test-http-server-consumed-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-consumed-timeout.js) +- [parallel/test-http-server-de-chunked-trailer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-de-chunked-trailer.js) +- [parallel/test-http-server-delete-parser.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-delete-parser.js) +- [parallel/test-http-server-destroy-socket-on-client-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-destroy-socket-on-client-error.js) +- [parallel/test-http-server-headers-timeout-delayed-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-headers-timeout-delayed-headers.js) +- [parallel/test-http-server-headers-timeout-interrupted-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-headers-timeout-interrupted-headers.js) +- [parallel/test-http-server-headers-timeout-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-headers-timeout-keepalive.js) +- [parallel/test-http-server-headers-timeout-pipelining.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-headers-timeout-pipelining.js) +- [parallel/test-http-server-incomingmessage-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-incomingmessage-destroy.js) +- [parallel/test-http-server-keep-alive-defaults.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-keep-alive-defaults.js) +- [parallel/test-http-server-keep-alive-max-requests-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-keep-alive-max-requests-null.js) +- [parallel/test-http-server-keep-alive-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-keep-alive-timeout.js) +- [parallel/test-http-server-keepalive-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-keepalive-end.js) +- [parallel/test-http-server-keepalive-req-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-keepalive-req-gc.js) +- [parallel/test-http-server-multiheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-multiheaders.js) +- [parallel/test-http-server-multiheaders2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-multiheaders2.js) +- [parallel/test-http-server-options-incoming-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-options-incoming-message.js) +- [parallel/test-http-server-options-server-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-options-server-response.js) +- [parallel/test-http-server-reject-chunked-with-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-reject-chunked-with-content-length.js) +- [parallel/test-http-server-reject-cr-no-lf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-reject-cr-no-lf.js) +- [parallel/test-http-server-request-timeout-delayed-body.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-delayed-body.js) +- [parallel/test-http-server-request-timeout-delayed-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-delayed-headers.js) +- [parallel/test-http-server-request-timeout-interrupted-body.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-interrupted-body.js) +- [parallel/test-http-server-request-timeout-interrupted-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-interrupted-headers.js) +- [parallel/test-http-server-request-timeout-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-keepalive.js) +- [parallel/test-http-server-request-timeout-pipelining.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-pipelining.js) +- [parallel/test-http-server-request-timeout-upgrade.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeout-upgrade.js) +- [parallel/test-http-server-request-timeouts-mixed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-request-timeouts-mixed.js) +- [parallel/test-http-server-response-standalone.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-response-standalone.js) +- [parallel/test-http-server-stale-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-stale-close.js) +- [parallel/test-http-server-unconsume-consume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-unconsume-consume.js) +- [parallel/test-http-server-unconsume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-unconsume.js) +- [parallel/test-http-server-write-after-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-write-after-end.js) +- [parallel/test-http-server-write-end-after-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server-write-end-after-end.js) +- [parallel/test-http-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-server.js) +- [parallel/test-http-set-cookies.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-cookies.js) +- [parallel/test-http-set-header-chain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-header-chain.js) +- [parallel/test-http-set-max-idle-http-parser.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-max-idle-http-parser.js) +- [parallel/test-http-set-timeout-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-timeout-server.js) +- [parallel/test-http-set-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-timeout.js) +- [parallel/test-http-set-trailers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-set-trailers.js) +- [parallel/test-http-should-keep-alive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-should-keep-alive.js) +- [parallel/test-http-socket-encoding-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-socket-encoding-error.js) +- [parallel/test-http-socket-listeners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-socket-listeners.js) +- [parallel/test-http-status-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-status-code.js) +- [parallel/test-http-status-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-status-message.js) +- [parallel/test-http-status-reason-invalid-chars.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-status-reason-invalid-chars.js) +- [parallel/test-http-sync-write-error-during-continue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-sync-write-error-during-continue.js) +- [parallel/test-http-timeout-client-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-timeout-client-warning.js) +- [parallel/test-http-timeout-overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-timeout-overflow.js) +- [parallel/test-http-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-timeout.js) +- [parallel/test-http-transfer-encoding-repeated-chunked.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-transfer-encoding-repeated-chunked.js) +- [parallel/test-http-transfer-encoding-smuggling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-transfer-encoding-smuggling.js) +- [parallel/test-http-uncaught-from-request-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-uncaught-from-request-callback.js) +- [parallel/test-http-unix-socket-keep-alive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-unix-socket-keep-alive.js) +- [parallel/test-http-unix-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-unix-socket.js) +- [parallel/test-http-upgrade-advertise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-advertise.js) +- [parallel/test-http-upgrade-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-agent.js) +- [parallel/test-http-upgrade-binary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-binary.js) +- [parallel/test-http-upgrade-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-client.js) +- [parallel/test-http-upgrade-client2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-client2.js) +- [parallel/test-http-upgrade-reconsume-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-reconsume-stream.js) +- [parallel/test-http-upgrade-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-server.js) +- [parallel/test-http-upgrade-server2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-server2.js) +- [parallel/test-http-url.parse-auth-with-header-in-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-auth-with-header-in-request.js) +- [parallel/test-http-url.parse-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-basic.js) +- [parallel/test-http-url.parse-https.request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-https.request.js) +- [parallel/test-http-url.parse-only-support-http-https-protocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-only-support-http-https-protocol.js) +- [parallel/test-http-wget.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-wget.js) +- [parallel/test-http-writable-true-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-writable-true-after-close.js) +- [parallel/test-http-write-callbacks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-write-callbacks.js) +- [parallel/test-http-write-empty-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-write-empty-string.js) +- [parallel/test-http-write-head-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-write-head-2.js) +- [parallel/test-http-write-head.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-write-head.js) +- [parallel/test-http-zero-length-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-zero-length-write.js) +- [parallel/test-http-zerolengthbuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-zerolengthbuffer.js) +- [parallel/test-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http.js) +- [parallel/test-http2-altsvc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-altsvc.js) +- [parallel/test-http2-autoselect-protocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-autoselect-protocol.js) +- [parallel/test-http2-backpressure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-backpressure.js) +- [parallel/test-http2-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-binding.js) +- [parallel/test-http2-buffersize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-buffersize.js) +- [parallel/test-http2-byteswritten-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-byteswritten-server.js) +- [parallel/test-http2-cancel-while-client-reading.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-cancel-while-client-reading.js) +- [parallel/test-http2-capture-rejection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-capture-rejection.js) +- [parallel/test-http2-clean-output.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-clean-output.js) +- [parallel/test-http2-client-data-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-data-end.js) +- [parallel/test-http2-client-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-destroy.js) +- [parallel/test-http2-client-http1-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-http1-server.js) +- [parallel/test-http2-client-jsstream-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-jsstream-destroy.js) +- [parallel/test-http2-client-onconnect-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-onconnect-errors.js) +- [parallel/test-http2-client-port-80.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-port-80.js) +- [parallel/test-http2-client-priority-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-priority-before-connect.js) +- [parallel/test-http2-client-promisify-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-promisify-connect.js) +- [parallel/test-http2-client-request-listeners-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-request-listeners-warning.js) +- [parallel/test-http2-client-request-options-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-request-options-errors.js) +- [parallel/test-http2-client-rststream-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-rststream-before-connect.js) +- [parallel/test-http2-client-set-priority.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-set-priority.js) +- [parallel/test-http2-client-setLocalWindowSize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-setLocalWindowSize.js) +- [parallel/test-http2-client-setNextStreamID-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-setNextStreamID-errors.js) +- [parallel/test-http2-client-settings-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-settings-before-connect.js) +- [parallel/test-http2-client-shutdown-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-shutdown-before-connect.js) +- [parallel/test-http2-client-socket-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-socket-destroy.js) +- [parallel/test-http2-client-stream-destroy-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-stream-destroy-before-connect.js) +- [parallel/test-http2-client-unescaped-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-unescaped-path.js) +- [parallel/test-http2-client-upload-reject.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-upload-reject.js) +- [parallel/test-http2-client-upload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-upload.js) +- [parallel/test-http2-client-write-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-write-before-connect.js) +- [parallel/test-http2-client-write-empty-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-client-write-empty-string.js) +- [parallel/test-http2-close-while-writing.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-close-while-writing.js) +- [parallel/test-http2-compat-aborted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-aborted.js) +- [parallel/test-http2-compat-client-upload-reject.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-client-upload-reject.js) +- [parallel/test-http2-compat-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-errors.js) +- [parallel/test-http2-compat-expect-continue-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-expect-continue-check.js) +- [parallel/test-http2-compat-expect-continue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-expect-continue.js) +- [parallel/test-http2-compat-expect-handling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-expect-handling.js) +- [parallel/test-http2-compat-method-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-method-connect.js) +- [parallel/test-http2-compat-serverrequest-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-end.js) +- [parallel/test-http2-compat-serverrequest-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-headers.js) +- [parallel/test-http2-compat-serverrequest-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-host.js) +- [parallel/test-http2-compat-serverrequest-pause.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-pause.js) +- [parallel/test-http2-compat-serverrequest-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-pipe.js) +- [parallel/test-http2-compat-serverrequest-settimeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-settimeout.js) +- [parallel/test-http2-compat-serverrequest-trailers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest-trailers.js) +- [parallel/test-http2-compat-serverrequest.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverrequest.js) +- [parallel/test-http2-compat-serverresponse-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-close.js) +- [parallel/test-http2-compat-serverresponse-createpushresponse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-createpushresponse.js) +- [parallel/test-http2-compat-serverresponse-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-destroy.js) +- [parallel/test-http2-compat-serverresponse-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-drain.js) +- [parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js) +- [parallel/test-http2-compat-serverresponse-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-end.js) +- [parallel/test-http2-compat-serverresponse-finished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-finished.js) +- [parallel/test-http2-compat-serverresponse-flushheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-flushheaders.js) +- [parallel/test-http2-compat-serverresponse-headers-after-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-headers-after-destroy.js) +- [parallel/test-http2-compat-serverresponse-headers-send-date.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-headers-send-date.js) +- [parallel/test-http2-compat-serverresponse-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-headers.js) +- [parallel/test-http2-compat-serverresponse-settimeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-settimeout.js) +- [parallel/test-http2-compat-serverresponse-statuscode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-statuscode.js) +- [parallel/test-http2-compat-serverresponse-statusmessage-property-set.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-statusmessage-property-set.js) +- [parallel/test-http2-compat-serverresponse-statusmessage-property.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-statusmessage-property.js) +- [parallel/test-http2-compat-serverresponse-statusmessage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-statusmessage.js) +- [parallel/test-http2-compat-serverresponse-trailers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-trailers.js) +- [parallel/test-http2-compat-serverresponse-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-write.js) +- [parallel/test-http2-compat-serverresponse-writehead-array.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-writehead-array.js) +- [parallel/test-http2-compat-serverresponse-writehead.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse-writehead.js) +- [parallel/test-http2-compat-serverresponse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-serverresponse.js) +- [parallel/test-http2-compat-short-stream-client-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-short-stream-client-server.js) +- [parallel/test-http2-compat-socket-destroy-delayed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-socket-destroy-delayed.js) +- [parallel/test-http2-compat-socket-set.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-socket-set.js) +- [parallel/test-http2-compat-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-socket.js) +- [parallel/test-http2-compat-write-early-hints-invalid-argument-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-write-early-hints-invalid-argument-type.js) +- [parallel/test-http2-compat-write-early-hints-invalid-argument-value.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-write-early-hints-invalid-argument-value.js) +- [parallel/test-http2-compat-write-early-hints.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-write-early-hints.js) +- [parallel/test-http2-compat-write-head-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-compat-write-head-destroyed.js) +- [parallel/test-http2-connect-method-extended-cant-turn-off.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect-method-extended-cant-turn-off.js) +- [parallel/test-http2-connect-method-extended.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect-method-extended.js) +- [parallel/test-http2-connect-method.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect-method.js) +- [parallel/test-http2-connect-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect-options.js) +- [parallel/test-http2-connect-tls-with-delay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect-tls-with-delay.js) +- [parallel/test-http2-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-connect.js) +- [parallel/test-http2-cookies.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-cookies.js) +- [parallel/test-http2-create-client-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-create-client-connect.js) +- [parallel/test-http2-create-client-secure-session.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-create-client-secure-session.js) +- [parallel/test-http2-create-client-session.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-create-client-session.js) +- [parallel/test-http2-createsecureserver-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-createsecureserver-options.js) +- [parallel/test-http2-createserver-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-createserver-options.js) +- [parallel/test-http2-createwritereq.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-createwritereq.js) +- [parallel/test-http2-date-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-date-header.js) +- [parallel/test-http2-debug.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-debug.js) +- [parallel/test-http2-destroy-after-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-destroy-after-write.js) +- [parallel/test-http2-dont-lose-data.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-dont-lose-data.js) +- [parallel/test-http2-dont-override.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-dont-override.js) +- [parallel/test-http2-empty-frame-without-eof.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-empty-frame-without-eof.js) +- [parallel/test-http2-endafterheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-endafterheaders.js) +- [parallel/test-http2-error-order.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-error-order.js) +- [parallel/test-http2-exceeds-server-trailer-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-exceeds-server-trailer-size.js) +- [parallel/test-http2-forget-closed-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-forget-closed-streams.js) +- [parallel/test-http2-generic-streams-sendfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-generic-streams-sendfile.js) +- [parallel/test-http2-generic-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-generic-streams.js) +- [parallel/test-http2-getpackedsettings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-getpackedsettings.js) +- [parallel/test-http2-goaway-delayed-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-goaway-delayed-request.js) +- [parallel/test-http2-goaway-opaquedata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-goaway-opaquedata.js) +- [parallel/test-http2-head-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-head-request.js) +- [parallel/test-http2-https-fallback-http-server-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-https-fallback-http-server-options.js) +- [parallel/test-http2-https-fallback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-https-fallback.js) +- [parallel/test-http2-info-headers-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-info-headers-errors.js) +- [parallel/test-http2-info-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-info-headers.js) +- [parallel/test-http2-invalidargtypes-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-invalidargtypes-errors.js) +- [parallel/test-http2-invalidheaderfield.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-invalidheaderfield.js) +- [parallel/test-http2-invalidheaderfields-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-invalidheaderfields-client.js) +- [parallel/test-http2-large-write-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-large-write-close.js) +- [parallel/test-http2-large-write-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-large-write-destroy.js) +- [parallel/test-http2-large-write-multiple-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-large-write-multiple-requests.js) +- [parallel/test-http2-large-writes-session-memory-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-large-writes-session-memory-leak.js) +- [parallel/test-http2-malformed-altsvc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-malformed-altsvc.js) +- [parallel/test-http2-many-writes-and-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-many-writes-and-destroy.js) +- [parallel/test-http2-max-concurrent-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-max-concurrent-streams.js) +- [parallel/test-http2-max-invalid-frames.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-max-invalid-frames.js) +- [parallel/test-http2-max-session-memory-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-max-session-memory-leak.js) +- [parallel/test-http2-max-settings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-max-settings.js) +- [parallel/test-http2-methods.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-methods.js) +- [parallel/test-http2-misbehaving-flow-control-paused.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-misbehaving-flow-control-paused.js) +- [parallel/test-http2-misbehaving-flow-control.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-misbehaving-flow-control.js) +- [parallel/test-http2-misbehaving-multiplex.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-misbehaving-multiplex.js) +- [parallel/test-http2-misc-util.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-misc-util.js) +- [parallel/test-http2-misused-pseudoheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-misused-pseudoheaders.js) +- [parallel/test-http2-multi-content-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-multi-content-length.js) +- [parallel/test-http2-multiheaders-raw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-multiheaders-raw.js) +- [parallel/test-http2-multiheaders.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-multiheaders.js) +- [parallel/test-http2-multiplex.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-multiplex.js) +- [parallel/test-http2-multistream-destroy-on-read-tls.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-multistream-destroy-on-read-tls.js) +- [parallel/test-http2-no-more-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-no-more-streams.js) +- [parallel/test-http2-no-wanttrailers-listener.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-no-wanttrailers-listener.js) +- [parallel/test-http2-onping.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-onping.js) +- [parallel/test-http2-options-max-headers-block-length.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-options-max-headers-block-length.js) +- [parallel/test-http2-options-max-headers-exceeds-nghttp2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js) +- [parallel/test-http2-options-max-reserved-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-options-max-reserved-streams.js) +- [parallel/test-http2-options-server-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-options-server-request.js) +- [parallel/test-http2-options-server-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-options-server-response.js) +- [parallel/test-http2-origin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-origin.js) +- [parallel/test-http2-pack-end-stream-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-pack-end-stream-flag.js) +- [parallel/test-http2-padding-aligned.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-padding-aligned.js) +- [parallel/test-http2-perf_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-perf_hooks.js) +- [parallel/test-http2-ping-settings-heapdump.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-ping-settings-heapdump.js) +- [parallel/test-http2-ping-unsolicited-ack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-ping-unsolicited-ack.js) +- [parallel/test-http2-ping.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-ping.js) +- [parallel/test-http2-pipe-named-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-pipe-named-pipe.js) +- [parallel/test-http2-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-pipe.js) +- [parallel/test-http2-priority-cycle-.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-priority-cycle-.js) +- [parallel/test-http2-priority-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-priority-event.js) +- [parallel/test-http2-propagate-session-destroy-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-propagate-session-destroy-code.js) +- [parallel/test-http2-removed-header-stays-removed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-removed-header-stays-removed.js) +- [parallel/test-http2-request-remove-connect-listener.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-request-remove-connect-listener.js) +- [parallel/test-http2-request-response-proto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-request-response-proto.js) +- [parallel/test-http2-res-corked.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-res-corked.js) +- [parallel/test-http2-res-writable-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-res-writable-properties.js) +- [parallel/test-http2-reset-flood.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-reset-flood.js) +- [parallel/test-http2-respond-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-errors.js) +- [parallel/test-http2-respond-file-204.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-204.js) +- [parallel/test-http2-respond-file-304.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-304.js) +- [parallel/test-http2-respond-file-404.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-404.js) +- [parallel/test-http2-respond-file-compat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-compat.js) +- [parallel/test-http2-respond-file-error-dir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-error-dir.js) +- [parallel/test-http2-respond-file-error-pipe-offset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-error-pipe-offset.js) +- [parallel/test-http2-respond-file-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-errors.js) +- [parallel/test-http2-respond-file-fd-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-fd-errors.js) +- [parallel/test-http2-respond-file-fd-invalid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-fd-invalid.js) +- [parallel/test-http2-respond-file-fd-range.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-fd-range.js) +- [parallel/test-http2-respond-file-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-fd.js) +- [parallel/test-http2-respond-file-filehandle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-filehandle.js) +- [parallel/test-http2-respond-file-push.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-push.js) +- [parallel/test-http2-respond-file-range.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-range.js) +- [parallel/test-http2-respond-file-with-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file-with-pipe.js) +- [parallel/test-http2-respond-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-file.js) +- [parallel/test-http2-respond-nghttperrors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-nghttperrors.js) +- [parallel/test-http2-respond-no-data.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-no-data.js) +- [parallel/test-http2-respond-with-fd-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-with-fd-errors.js) +- [parallel/test-http2-respond-with-file-connection-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-respond-with-file-connection-abort.js) +- [parallel/test-http2-response-splitting.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-response-splitting.js) +- [parallel/test-http2-sensitive-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-sensitive-headers.js) +- [parallel/test-http2-sent-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-sent-headers.js) +- [parallel/test-http2-serve-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-serve-file.js) +- [parallel/test-http2-server-close-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-close-callback.js) +- [parallel/test-http2-server-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-errors.js) +- [parallel/test-http2-server-http1-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-http1-client.js) +- [parallel/test-http2-server-push-disabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-push-disabled.js) +- [parallel/test-http2-server-push-stream-errors-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-push-stream-errors-args.js) +- [parallel/test-http2-server-push-stream-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-push-stream-errors.js) +- [parallel/test-http2-server-push-stream-head.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-push-stream-head.js) +- [parallel/test-http2-server-push-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-push-stream.js) +- [parallel/test-http2-server-rst-before-respond.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-rst-before-respond.js) +- [parallel/test-http2-server-rst-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-rst-stream.js) +- [parallel/test-http2-server-session-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-session-destroy.js) +- [parallel/test-http2-server-sessionerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-sessionerror.js) +- [parallel/test-http2-server-set-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-set-header.js) +- [parallel/test-http2-server-setLocalWindowSize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-setLocalWindowSize.js) +- [parallel/test-http2-server-settimeout-no-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-settimeout-no-callback.js) +- [parallel/test-http2-server-shutdown-before-respond.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-shutdown-before-respond.js) +- [parallel/test-http2-server-shutdown-options-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-shutdown-options-errors.js) +- [parallel/test-http2-server-shutdown-redundant.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-shutdown-redundant.js) +- [parallel/test-http2-server-socket-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-socket-destroy.js) +- [parallel/test-http2-server-startup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-startup.js) +- [parallel/test-http2-server-stream-session-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-stream-session-destroy.js) +- [parallel/test-http2-server-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-timeout.js) +- [parallel/test-http2-server-unknown-protocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-server-unknown-protocol.js) +- [parallel/test-http2-session-gc-while-write-scheduled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-session-gc-while-write-scheduled.js) +- [parallel/test-http2-session-settings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-session-settings.js) +- [parallel/test-http2-session-stream-state.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-session-stream-state.js) +- [parallel/test-http2-session-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-session-timeout.js) +- [parallel/test-http2-session-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-session-unref.js) +- [parallel/test-http2-settings-unsolicited-ack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-settings-unsolicited-ack.js) +- [parallel/test-http2-short-stream-client-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-short-stream-client-server.js) +- [parallel/test-http2-single-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-single-headers.js) +- [parallel/test-http2-socket-proxy-handler-for-has.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-socket-proxy-handler-for-has.js) +- [parallel/test-http2-socket-proxy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-socket-proxy.js) +- [parallel/test-http2-status-code-invalid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-status-code-invalid.js) +- [parallel/test-http2-status-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-status-code.js) +- [parallel/test-http2-stream-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-stream-client.js) +- [parallel/test-http2-stream-destroy-event-order.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-stream-destroy-event-order.js) +- [parallel/test-http2-stream-removelisteners-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-stream-removelisteners-after-close.js) +- [parallel/test-http2-timeouts.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-timeouts.js) +- [parallel/test-http2-tls-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-tls-disconnect.js) +- [parallel/test-http2-too-large-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-too-large-headers.js) +- [parallel/test-http2-too-many-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-too-many-headers.js) +- [parallel/test-http2-too-many-settings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-too-many-settings.js) +- [parallel/test-http2-too-many-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-too-many-streams.js) +- [parallel/test-http2-trailers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-trailers.js) +- [parallel/test-http2-unbound-socket-proxy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-unbound-socket-proxy.js) +- [parallel/test-http2-update-settings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-update-settings.js) +- [parallel/test-http2-util-assert-valid-pseudoheader.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-util-assert-valid-pseudoheader.js) +- [parallel/test-http2-util-asserts.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-util-asserts.js) +- [parallel/test-http2-util-headers-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-util-headers-list.js) +- [parallel/test-http2-util-nghttp2error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-util-nghttp2error.js) +- [parallel/test-http2-util-update-options-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-util-update-options-buffer.js) +- [parallel/test-http2-window-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-window-size.js) +- [parallel/test-http2-write-callbacks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-write-callbacks.js) +- [parallel/test-http2-write-empty-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-write-empty-string.js) +- [parallel/test-http2-write-finishes-after-stream-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-write-finishes-after-stream-destroy.js) +- [parallel/test-http2-zero-length-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-zero-length-header.js) +- [parallel/test-http2-zero-length-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http2-zero-length-write.js) +- [parallel/test-https-abortcontroller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-abortcontroller.js) +- [parallel/test-https-agent-abort-controller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-abort-controller.js) +- [parallel/test-https-agent-additional-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-additional-options.js) +- [parallel/test-https-agent-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-constructor.js) +- [parallel/test-https-agent-create-connection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-create-connection.js) +- [parallel/test-https-agent-disable-session-reuse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-disable-session-reuse.js) +- [parallel/test-https-agent-getname.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-getname.js) +- [parallel/test-https-agent-keylog.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-keylog.js) +- [parallel/test-https-agent-servername.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-servername.js) +- [parallel/test-https-agent-session-eviction.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-session-eviction.js) +- [parallel/test-https-agent-session-injection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-session-injection.js) +- [parallel/test-https-agent-session-reuse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-session-reuse.js) +- [parallel/test-https-agent-sni.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-sni.js) +- [parallel/test-https-agent-sockets-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-sockets-leak.js) +- [parallel/test-https-agent-unref-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent-unref-socket.js) +- [parallel/test-https-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-agent.js) +- [parallel/test-https-argument-of-creating.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-argument-of-creating.js) +- [parallel/test-https-byteswritten.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-byteswritten.js) +- [parallel/test-https-client-checkServerIdentity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-checkServerIdentity.js) +- [parallel/test-https-client-get-url.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-get-url.js) +- [parallel/test-https-client-override-global-agent.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-override-global-agent.js) +- [parallel/test-https-client-reject.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-reject.js) +- [parallel/test-https-client-renegotiation-limit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-renegotiation-limit.js) +- [parallel/test-https-client-resume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-client-resume.js) +- [parallel/test-https-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-close.js) +- [parallel/test-https-connect-address-family.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-connect-address-family.js) +- [parallel/test-https-connecting-to-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-connecting-to-http.js) +- [parallel/test-https-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-drain.js) +- [parallel/test-https-eof-for-eom.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-eof-for-eom.js) +- [parallel/test-https-foafssl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-foafssl.js) +- [parallel/test-https-host-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-host-headers.js) +- [parallel/test-https-hwm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-hwm.js) +- [parallel/test-https-insecure-parse-per-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-insecure-parse-per-stream.js) +- [parallel/test-https-keep-alive-drop-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-keep-alive-drop-requests.js) +- [parallel/test-https-localaddress-bind-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-localaddress-bind-error.js) +- [parallel/test-https-localaddress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-localaddress.js) +- [parallel/test-https-max-header-size-per-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-max-header-size-per-stream.js) +- [parallel/test-https-max-headers-count.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-max-headers-count.js) +- [parallel/test-https-options-boolean-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-options-boolean-check.js) +- [parallel/test-https-pfx.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-pfx.js) +- [parallel/test-https-request-arguments.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-request-arguments.js) +- [parallel/test-https-resume-after-renew.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-resume-after-renew.js) +- [parallel/test-https-selfsigned-no-keycertsign-no-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-selfsigned-no-keycertsign-no-crash.js) +- [parallel/test-https-server-close-all.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-close-all.js) +- [parallel/test-https-server-close-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-close-idle.js) +- [parallel/test-https-server-headers-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-headers-timeout.js) +- [parallel/test-https-server-options-incoming-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-options-incoming-message.js) +- [parallel/test-https-server-options-server-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-options-server-response.js) +- [parallel/test-https-server-request-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-server-request-timeout.js) +- [parallel/test-https-set-timeout-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-set-timeout-server.js) +- [parallel/test-https-simple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-simple.js) +- [parallel/test-https-socket-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-socket-options.js) +- [parallel/test-https-strict.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-strict.js) +- [parallel/test-https-timeout-server-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-timeout-server-2.js) +- [parallel/test-https-timeout-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-timeout-server.js) +- [parallel/test-https-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-timeout.js) +- [parallel/test-https-truncate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-truncate.js) +- [parallel/test-https-unix-socket-self-signed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-https-unix-socket-self-signed.js) +- [parallel/test-icu-data-dir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-data-dir.js) +- [parallel/test-icu-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-env.js) +- [parallel/test-icu-minimum-version.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-minimum-version.js) +- [parallel/test-icu-punycode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-punycode.js) +- [parallel/test-icu-stringwidth.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-stringwidth.js) +- [parallel/test-icu-transcode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-icu-transcode.js) +- [parallel/test-inspect-async-hook-setup-at-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspect-async-hook-setup-at-inspect.js) +- [parallel/test-inspect-publish-uid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspect-publish-uid.js) +- [parallel/test-inspect-support-for-node_options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspect-support-for-node_options.js) +- [parallel/test-inspector-already-activated-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-already-activated-cli.js) +- [parallel/test-inspector-async-hook-after-done.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-async-hook-after-done.js) +- [parallel/test-inspector-bindings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-bindings.js) +- [parallel/test-inspector-close-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-close-worker.js) +- [parallel/test-inspector-connect-main-thread.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-connect-main-thread.js) +- [parallel/test-inspector-console-top-frame.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-console-top-frame.js) +- [parallel/test-inspector-esm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-esm.js) +- [parallel/test-inspector-has-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-has-idle.js) +- [parallel/test-inspector-heap-allocation-tracker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-heap-allocation-tracker.js) +- [parallel/test-inspector-heapdump.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-heapdump.js) +- [parallel/test-inspector-inspect-brk-node.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-inspect-brk-node.js) +- [parallel/test-inspector-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-module.js) +- [parallel/test-inspector-multisession-js.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-multisession-js.js) +- [parallel/test-inspector-multisession-ws.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-multisession-ws.js) +- [parallel/test-inspector-open-port-integer-overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-open-port-integer-overflow.js) +- [parallel/test-inspector-port-zero-cluster.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-port-zero-cluster.js) +- [parallel/test-inspector-reported-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-reported-host.js) +- [parallel/test-inspector-tracing-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-tracing-domain.js) +- [parallel/test-inspector-vm-global-accessors-getter-sideeffect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-vm-global-accessors-getter-sideeffect.js) +- [parallel/test-inspector-vm-global-accessors-sideeffects.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-vm-global-accessors-sideeffects.js) +- [parallel/test-inspector-wait-for-connection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-wait-for-connection.js) +- [parallel/test-inspector-waiting-for-disconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-waiting-for-disconnect.js) +- [parallel/test-inspector-workers-flat-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-inspector-workers-flat-list.js) +- [parallel/test-instanceof.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-instanceof.js) +- [parallel/test-internal-assert.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-assert.js) +- [parallel/test-internal-dtrace.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-dtrace.js) +- [parallel/test-internal-error-original-names.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-error-original-names.js) +- [parallel/test-internal-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-errors.js) +- [parallel/test-internal-fs-syncwritestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-fs-syncwritestream.js) +- [parallel/test-internal-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-fs.js) +- [parallel/test-internal-iterable-weak-map.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-iterable-weak-map.js) +- [parallel/test-internal-module-require.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-module-require.js) +- [parallel/test-internal-module-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-module-wrap.js) +- [parallel/test-internal-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-modules.js) +- [parallel/test-internal-process-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-process-binding.js) +- [parallel/test-internal-socket-list-receive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-socket-list-receive.js) +- [parallel/test-internal-socket-list-send.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-socket-list-send.js) +- [parallel/test-internal-util-assertCrypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-assertCrypto.js) +- [parallel/test-internal-util-classwrapper.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-classwrapper.js) +- [parallel/test-internal-util-decorate-error-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-decorate-error-stack.js) +- [parallel/test-internal-util-helpers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-helpers.js) +- [parallel/test-internal-util-normalizeencoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-normalizeencoding.js) +- [parallel/test-internal-util-objects.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-objects.js) +- [parallel/test-internal-util-weakreference.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-util-weakreference.js) +- [parallel/test-internal-validators-validateoneof.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-validators-validateoneof.js) +- [parallel/test-internal-validators-validateport.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-internal-validators-validateport.js) +- [parallel/test-intl-v8BreakIterator.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-intl-v8BreakIterator.js) +- [parallel/test-intl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-intl.js) +- [parallel/test-js-stream-call-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-js-stream-call-properties.js) +- [parallel/test-kill-segfault-freebsd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-kill-segfault-freebsd.js) +- [parallel/test-listen-fd-cluster.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-listen-fd-cluster.js) +- [parallel/test-listen-fd-detached-inherit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-listen-fd-detached-inherit.js) +- [parallel/test-listen-fd-detached.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-listen-fd-detached.js) +- [parallel/test-listen-fd-ebadf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-listen-fd-ebadf.js) +- [parallel/test-listen-fd-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-listen-fd-server.js) +- [parallel/test-loaders-hidden-from-users.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-loaders-hidden-from-users.js) +- [parallel/test-macos-app-sandbox.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-macos-app-sandbox.js) +- [parallel/test-math-random.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-math-random.js) +- [parallel/test-memory-usage-emfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-memory-usage-emfile.js) +- [parallel/test-memory-usage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-memory-usage.js) +- [parallel/test-messageevent-brandcheck.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-messageevent-brandcheck.js) +- [parallel/test-messageport-hasref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-messageport-hasref.js) +- [parallel/test-messaging-maketransferable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-messaging-maketransferable.js) +- [parallel/test-microtask-queue-integration.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-microtask-queue-integration.js) +- [parallel/test-microtask-queue-run-immediate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-microtask-queue-run-immediate.js) +- [parallel/test-microtask-queue-run.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-microtask-queue-run.js) +- [parallel/test-module-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-binding.js) +- [parallel/test-module-builtin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-builtin.js) +- [parallel/test-module-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-cache.js) +- [parallel/test-module-children.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-children.js) +- [parallel/test-module-circular-dependency-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-circular-dependency-warning.js) +- [parallel/test-module-circular-symlinks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-circular-symlinks.js) +- [parallel/test-module-create-require.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-create-require.js) +- [parallel/test-module-globalpaths-nodepath.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-globalpaths-nodepath.js) +- [parallel/test-module-isBuiltin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-isBuiltin.js) +- [parallel/test-module-loading-deprecated.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-loading-deprecated.js) +- [parallel/test-module-loading-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-loading-error.js) +- [parallel/test-module-loading-globalpaths.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-loading-globalpaths.js) +- [parallel/test-module-main-extension-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-main-extension-lookup.js) +- [parallel/test-module-main-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-main-fail.js) +- [parallel/test-module-main-preserve-symlinks-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-main-preserve-symlinks-fail.js) +- [parallel/test-module-multi-extensions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-multi-extensions.js) +- [parallel/test-module-nodemodulepaths.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-nodemodulepaths.js) +- [parallel/test-module-parent-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-parent-deprecation.js) +- [parallel/test-module-parent-setter-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-parent-setter-deprecation.js) +- [parallel/test-module-prototype-mutation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-prototype-mutation.js) +- [parallel/test-module-readonly.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-readonly.js) +- [parallel/test-module-relative-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-relative-lookup.js) +- [parallel/test-module-run-main-monkey-patch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-run-main-monkey-patch.js) +- [parallel/test-module-symlinked-peer-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-symlinked-peer-modules.js) +- [parallel/test-module-version.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-version.js) +- [parallel/test-module-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-wrap.js) +- [parallel/test-module-wrapper.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-module-wrapper.js) +- [parallel/test-net-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-after-close.js) +- [parallel/test-net-allow-half-open.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-allow-half-open.js) +- [parallel/test-net-better-error-messages-listen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-better-error-messages-listen.js) +- [parallel/test-net-binary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-binary.js) +- [parallel/test-net-bind-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-bind-twice.js) +- [parallel/test-net-buffersize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-buffersize.js) +- [parallel/test-net-bytes-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-bytes-read.js) +- [parallel/test-net-bytes-stats.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-bytes-stats.js) +- [parallel/test-net-bytes-written-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-bytes-written-large.js) +- [parallel/test-net-can-reset-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-can-reset-timeout.js) +- [parallel/test-net-client-bind-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-client-bind-twice.js) +- [parallel/test-net-connect-abort-controller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-abort-controller.js) +- [parallel/test-net-connect-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-buffer.js) +- [parallel/test-net-connect-buffer2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-buffer2.js) +- [parallel/test-net-connect-call-socket-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-call-socket-connect.js) +- [parallel/test-net-connect-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-keepalive.js) +- [parallel/test-net-connect-memleak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-memleak.js) +- [parallel/test-net-connect-nodelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-nodelay.js) +- [parallel/test-net-connect-options-allowhalfopen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-allowhalfopen.js) +- [parallel/test-net-connect-options-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-fd.js) +- [parallel/test-net-connect-options-invalid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-invalid.js) +- [parallel/test-net-connect-options-ipv6.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-ipv6.js) +- [parallel/test-net-connect-options-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-path.js) +- [parallel/test-net-connect-options-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-options-port.js) +- [parallel/test-net-connect-paused-connection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-paused-connection.js) +- [parallel/test-net-connect-reset-after-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-reset-after-destroy.js) +- [parallel/test-net-connect-reset-before-connected.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-reset-before-connected.js) +- [parallel/test-net-connect-reset-until-connected.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-reset-until-connected.js) +- [parallel/test-net-connect-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-connect-reset.js) +- [parallel/test-net-deprecated-setsimultaneousaccepts.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-deprecated-setsimultaneousaccepts.js) +- [parallel/test-net-dns-custom-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-dns-custom-lookup.js) +- [parallel/test-net-dns-lookup-skip.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-dns-lookup-skip.js) +- [parallel/test-net-dns-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-dns-lookup.js) +- [parallel/test-net-eaddrinuse.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-eaddrinuse.js) +- [parallel/test-net-end-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-end-destroyed.js) +- [parallel/test-net-error-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-error-twice.js) +- [parallel/test-net-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-keepalive.js) +- [parallel/test-net-large-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-large-string.js) +- [parallel/test-net-listen-after-destroying-stdin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-listen-after-destroying-stdin.js) +- [parallel/test-net-listen-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-listen-error.js) +- [parallel/test-net-listen-exclusive-random-ports.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-listen-exclusive-random-ports.js) +- [parallel/test-net-listen-fd0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-listen-fd0.js) +- [parallel/test-net-listen-ipv6only.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-listen-ipv6only.js) +- [parallel/test-net-local-address-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-local-address-port.js) +- [parallel/test-net-normalize-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-normalize-args.js) +- [parallel/test-net-onread-static-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-onread-static-buffer.js) +- [parallel/test-net-pause-resume-connecting.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-pause-resume-connecting.js) +- [parallel/test-net-perf_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-perf_hooks.js) +- [parallel/test-net-persistent-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-persistent-keepalive.js) +- [parallel/test-net-persistent-nodelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-persistent-nodelay.js) +- [parallel/test-net-persistent-ref-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-persistent-ref-unref.js) +- [parallel/test-net-pingpong.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-pingpong.js) +- [parallel/test-net-reconnect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-reconnect.js) +- [parallel/test-net-remote-address-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-remote-address-port.js) +- [parallel/test-net-remote-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-remote-address.js) +- [parallel/test-net-server-call-listen-multiple-times.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-call-listen-multiple-times.js) +- [parallel/test-net-server-capture-rejection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-capture-rejection.js) +- [parallel/test-net-server-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-close.js) +- [parallel/test-net-server-drop-connections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-drop-connections.js) +- [parallel/test-net-server-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-keepalive.js) +- [parallel/test-net-server-listen-handle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-listen-handle.js) +- [parallel/test-net-server-max-connections-close-makes-more-available.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-max-connections-close-makes-more-available.js) +- [parallel/test-net-server-max-connections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-max-connections.js) +- [parallel/test-net-server-nodelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-nodelay.js) +- [parallel/test-net-server-pause-on-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-pause-on-connect.js) +- [parallel/test-net-server-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-reset.js) +- [parallel/test-net-server-simultaneous-accepts-produce-warning-once.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js) +- [parallel/test-net-server-try-ports.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-server-try-ports.js) +- [parallel/test-net-settimeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-settimeout.js) +- [parallel/test-net-socket-byteswritten.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-byteswritten.js) +- [parallel/test-net-socket-close-after-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-close-after-end.js) +- [parallel/test-net-socket-connect-without-cb.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-connect-without-cb.js) +- [parallel/test-net-socket-connecting.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-connecting.js) +- [parallel/test-net-socket-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-constructor.js) +- [parallel/test-net-socket-destroy-send.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-destroy-send.js) +- [parallel/test-net-socket-end-before-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-end-before-connect.js) +- [parallel/test-net-socket-end-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-end-callback.js) +- [parallel/test-net-socket-local-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-local-address.js) +- [parallel/test-net-socket-ready-without-cb.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-ready-without-cb.js) +- [parallel/test-net-socket-reset-send.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-reset-send.js) +- [parallel/test-net-socket-reset-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-reset-twice.js) +- [parallel/test-net-socket-setnodelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-setnodelay.js) +- [parallel/test-net-socket-timeout-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-timeout-unref.js) +- [parallel/test-net-socket-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-timeout.js) +- [parallel/test-net-socket-write-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-write-after-close.js) +- [parallel/test-net-socket-write-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-socket-write-error.js) +- [parallel/test-net-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-stream.js) +- [parallel/test-net-sync-cork.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-sync-cork.js) +- [parallel/test-net-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-writable.js) +- [parallel/test-net-write-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-after-close.js) +- [parallel/test-net-write-after-end-nt.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-after-end-nt.js) +- [parallel/test-net-write-connect-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-connect-write.js) +- [parallel/test-net-write-fully-async-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-fully-async-buffer.js) +- [parallel/test-net-write-fully-async-hex-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-fully-async-hex-string.js) +- [parallel/test-net-write-slow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-net-write-slow.js) +- [parallel/test-next-tick-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-next-tick-domain.js) +- [parallel/test-next-tick-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-next-tick-errors.js) +- [parallel/test-no-addons-resolution-condition.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-no-addons-resolution-condition.js) +- [parallel/test-no-node-snapshot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-no-node-snapshot.js) +- [parallel/test-npm-install.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-npm-install.js) +- [parallel/test-npm-version.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-npm-version.js) +- [parallel/test-openssl-ca-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-openssl-ca-options.js) +- [parallel/test-options-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-options-binding.js) +- [parallel/test-os-checked-function.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os-checked-function.js) +- [parallel/test-os-eol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os-eol.js) +- [parallel/test-os-homedir-no-envvar.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os-homedir-no-envvar.js) +- [parallel/test-os-process-priority.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os-process-priority.js) +- [parallel/test-os-userinfo-handles-getter-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os-userinfo-handles-getter-errors.js) +- [parallel/test-os.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-os.js) +- [parallel/test-path-posix-relative-on-windows.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-path-posix-relative-on-windows.js) +- [parallel/test-pending-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pending-deprecation.js) +- [parallel/test-perf-gc-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-perf-gc-crash.js) +- [parallel/test-perf-hooks-histogram.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-perf-hooks-histogram.js) +- [parallel/test-perf-hooks-resourcetiming.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-perf-hooks-resourcetiming.js) +- [parallel/test-perf-hooks-usertiming.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-perf-hooks-usertiming.js) +- [parallel/test-performance-eventlooputil.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-eventlooputil.js) +- [parallel/test-performance-function-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-function-async.js) +- [parallel/test-performance-function.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-function.js) +- [parallel/test-performance-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-gc.js) +- [parallel/test-performance-global.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-global.js) +- [parallel/test-performance-measure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-measure.js) +- [parallel/test-performance-resourcetimingbufferfull.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-resourcetimingbufferfull.js) +- [parallel/test-performance-resourcetimingbuffersize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performance-resourcetimingbuffersize.js) +- [parallel/test-performanceobserver-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performanceobserver-gc.js) +- [parallel/test-performanceobserver.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-performanceobserver.js) +- [parallel/test-pipe-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-address.js) +- [parallel/test-pipe-file-to-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-file-to-http.js) +- [parallel/test-pipe-head.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-head.js) +- [parallel/test-pipe-outgoing-message-data-emitted-after-ended.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-outgoing-message-data-emitted-after-ended.js) +- [parallel/test-pipe-return-val.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-return-val.js) +- [parallel/test-pipe-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-stream.js) +- [parallel/test-pipe-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-unref.js) +- [parallel/test-pipe-writev.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-pipe-writev.js) +- [parallel/test-policy-crypto-default-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-crypto-default-encoding.js) +- [parallel/test-policy-dependencies.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-dependencies.js) +- [parallel/test-policy-dependency-conditions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-dependency-conditions.js) +- [parallel/test-policy-integrity-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-integrity-flag.js) +- [parallel/test-policy-manifest.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-manifest.js) +- [parallel/test-policy-parse-integrity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-parse-integrity.js) +- [parallel/test-policy-scopes-dependencies.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-scopes-dependencies.js) +- [parallel/test-policy-scopes-integrity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-scopes-integrity.js) +- [parallel/test-policy-scopes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-policy-scopes.js) +- [parallel/test-preload-print-process-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-preload-print-process-argv.js) +- [parallel/test-preload-self-referential.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-preload-self-referential.js) +- [parallel/test-preload-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-preload-worker.js) +- [parallel/test-preload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-preload.js) +- [parallel/test-primordials-apply.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-primordials-apply.js) +- [parallel/test-primordials-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-primordials-promise.js) +- [parallel/test-priority-queue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-priority-queue.js) +- [parallel/test-process-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-abort.js) +- [parallel/test-process-argv-0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-argv-0.js) +- [parallel/test-process-assert.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-assert.js) +- [parallel/test-process-beforeexit-throw-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-beforeexit-throw-exit.js) +- [parallel/test-process-binding-util.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-binding-util.js) +- [parallel/test-process-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-binding.js) +- [parallel/test-process-chdir-errormessage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-chdir-errormessage.js) +- [parallel/test-process-chdir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-chdir.js) +- [parallel/test-process-config.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-config.js) +- [parallel/test-process-constants-noatime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-constants-noatime.js) +- [parallel/test-process-cpuUsage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-cpuUsage.js) +- [parallel/test-process-dlopen-error-message-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-dlopen-error-message-crash.js) +- [parallel/test-process-dlopen-undefined-exports.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-dlopen-undefined-exports.js) +- [parallel/test-process-domain-segfault.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-domain-segfault.js) +- [parallel/test-process-emit-warning-from-native.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-emit-warning-from-native.js) +- [parallel/test-process-emit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-emit.js) +- [parallel/test-process-emitwarning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-emitwarning.js) +- [parallel/test-process-env-allowed-flags-are-documented.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-allowed-flags-are-documented.js) +- [parallel/test-process-env-delete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-delete.js) +- [parallel/test-process-env-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-deprecation.js) +- [parallel/test-process-env-ignore-getter-setter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-ignore-getter-setter.js) +- [parallel/test-process-env-sideeffects.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-sideeffects.js) +- [parallel/test-process-env-symbols.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-symbols.js) +- [parallel/test-process-env-tz.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-tz.js) +- [parallel/test-process-env-windows-error-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env-windows-error-reset.js) +- [parallel/test-process-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-env.js) +- [parallel/test-process-euid-egid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-euid-egid.js) +- [parallel/test-process-exception-capture-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-exception-capture-errors.js) +- [parallel/test-process-exception-capture-should-abort-on-uncaught.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-exception-capture-should-abort-on-uncaught.js) +- [parallel/test-process-exception-capture.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-exception-capture.js) +- [parallel/test-process-exec-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-exec-argv.js) +- [parallel/test-process-execpath.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-execpath.js) +- [parallel/test-process-exit-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-exit-code.js) +- [parallel/test-process-external-stdio-close-spawn.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-external-stdio-close-spawn.js) +- [parallel/test-process-external-stdio-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-external-stdio-close.js) +- [parallel/test-process-features.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-features.js) +- [parallel/test-process-getactivehandles.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactivehandles.js) +- [parallel/test-process-getactiverequests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiverequests.js) +- [parallel/test-process-getactiveresources-track-active-handles.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources-track-active-handles.js) +- [parallel/test-process-getactiveresources-track-active-requests.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources-track-active-requests.js) +- [parallel/test-process-getactiveresources-track-interval-lifetime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources-track-interval-lifetime.js) +- [parallel/test-process-getactiveresources-track-multiple-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources-track-multiple-timers.js) +- [parallel/test-process-getactiveresources-track-timer-lifetime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources-track-timer-lifetime.js) +- [parallel/test-process-getactiveresources.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getactiveresources.js) +- [parallel/test-process-getgroups.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-getgroups.js) +- [parallel/test-process-hrtime-bigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-hrtime-bigint.js) +- [parallel/test-process-hrtime.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-hrtime.js) +- [parallel/test-process-initgroups.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-initgroups.js) +- [parallel/test-process-kill-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-kill-null.js) +- [parallel/test-process-next-tick.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-next-tick.js) +- [parallel/test-process-no-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-no-deprecation.js) +- [parallel/test-process-ppid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-ppid.js) +- [parallel/test-process-prototype.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-prototype.js) +- [parallel/test-process-raw-debug.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-raw-debug.js) +- [parallel/test-process-really-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-really-exit.js) +- [parallel/test-process-redirect-warnings-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-redirect-warnings-env.js) +- [parallel/test-process-redirect-warnings.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-redirect-warnings.js) +- [parallel/test-process-release.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-release.js) +- [parallel/test-process-remove-all-signal-listeners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-remove-all-signal-listeners.js) +- [parallel/test-process-setgroups.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-setgroups.js) +- [parallel/test-process-setsourcemapsenabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-setsourcemapsenabled.js) +- [parallel/test-process-title-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-title-cli.js) +- [parallel/test-process-uid-gid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-uid-gid.js) +- [parallel/test-process-umask-mask.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-umask-mask.js) +- [parallel/test-process-umask.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-umask.js) +- [parallel/test-process-uncaught-exception-monitor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-uncaught-exception-monitor.js) +- [parallel/test-process-versions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-versions.js) +- [parallel/test-process-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-warning.js) +- [parallel/test-process-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-process-wrap.js) +- [parallel/test-promise-handled-rejection-no-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-handled-rejection-no-warning.js) +- [parallel/test-promise-hook-create-hook.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-create-hook.js) +- [parallel/test-promise-hook-exceptions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-exceptions.js) +- [parallel/test-promise-hook-on-after.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-on-after.js) +- [parallel/test-promise-hook-on-before.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-on-before.js) +- [parallel/test-promise-hook-on-init.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-on-init.js) +- [parallel/test-promise-hook-on-resolve.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-hook-on-resolve.js) +- [parallel/test-promise-reject-callback-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-reject-callback-exception.js) +- [parallel/test-promise-swallowed-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-swallowed-event.js) +- [parallel/test-promise-unhandled-default.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-default.js) +- [parallel/test-promise-unhandled-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-error.js) +- [parallel/test-promise-unhandled-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-flag.js) +- [parallel/test-promise-unhandled-silent-no-hook.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-silent-no-hook.js) +- [parallel/test-promise-unhandled-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-throw.js) +- [parallel/test-promise-unhandled-warn-no-hook.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-warn-no-hook.js) +- [parallel/test-promise-unhandled-warn.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promise-unhandled-warn.js) +- [parallel/test-promises-unhandled-proxy-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promises-unhandled-proxy-rejections.js) +- [parallel/test-promises-unhandled-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promises-unhandled-rejections.js) +- [parallel/test-promises-unhandled-symbol-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promises-unhandled-symbol-rejections.js) +- [parallel/test-promises-warning-on-unhandled-rejection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-promises-warning-on-unhandled-rejection.js) +- [parallel/test-punycode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-punycode.js) +- [parallel/test-queue-microtask-uncaught-asynchooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-queue-microtask-uncaught-asynchooks.js) +- [parallel/test-queue-microtask.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-queue-microtask.js) +- [parallel/test-readable-from-iterator-closing.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readable-from-iterator-closing.js) +- [parallel/test-readable-from.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readable-from.js) +- [parallel/test-readable-large-hwm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readable-large-hwm.js) +- [parallel/test-readable-single-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readable-single-end.js) +- [parallel/test-readline-async-iterators-backpressure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-async-iterators-backpressure.js) +- [parallel/test-readline-async-iterators-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-async-iterators-destroy.js) +- [parallel/test-readline-async-iterators.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-async-iterators.js) +- [parallel/test-readline-csi.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-csi.js) +- [parallel/test-readline-input-onerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-input-onerror.js) +- [parallel/test-readline-interface.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-interface.js) +- [parallel/test-readline-promises-interface.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-promises-interface.js) +- [parallel/test-readline-promises-tab-complete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-promises-tab-complete.js) +- [parallel/test-readline-tab-complete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-readline-tab-complete.js) +- [parallel/test-ref-unref-return.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-ref-unref-return.js) +- [parallel/test-regression-object-prototype.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-regression-object-prototype.js) +- [parallel/test-release-npm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-release-npm.js) +- [parallel/test-repl-array-prototype-tempering.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-array-prototype-tempering.js) +- [parallel/test-repl-autocomplete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-autocomplete.js) +- [parallel/test-repl-autolibs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-autolibs.js) +- [parallel/test-repl-built-in-modules.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-built-in-modules.js) +- [parallel/test-repl-clear-immediate-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-clear-immediate-crash.js) +- [parallel/test-repl-cli-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-cli-eval.js) +- [parallel/test-repl-colors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-colors.js) +- [parallel/test-repl-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-context.js) +- [parallel/test-repl-definecommand.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-definecommand.js) +- [parallel/test-repl-domain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-domain.js) +- [parallel/test-repl-dynamic-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-dynamic-import.js) +- [parallel/test-repl-editor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-editor.js) +- [parallel/test-repl-empty.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-empty.js) +- [parallel/test-repl-end-emits-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-end-emits-exit.js) +- [parallel/test-repl-envvars.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-envvars.js) +- [parallel/test-repl-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-eval.js) +- [parallel/test-repl-function-definition-edge-case.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-function-definition-edge-case.js) +- [parallel/test-repl-harmony.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-harmony.js) +- [parallel/test-repl-history-navigation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-history-navigation.js) +- [parallel/test-repl-history-perm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-history-perm.js) +- [parallel/test-repl-import-referrer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-import-referrer.js) +- [parallel/test-repl-inspect-defaults.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-inspect-defaults.js) +- [parallel/test-repl-inspector.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-inspector.js) +- [parallel/test-repl-let-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-let-process.js) +- [parallel/test-repl-load-multiline.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-load-multiline.js) +- [parallel/test-repl-mode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-mode.js) +- [parallel/test-repl-multiline.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-multiline.js) +- [parallel/test-repl-no-terminal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-no-terminal.js) +- [parallel/test-repl-null-thrown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-null-thrown.js) +- [parallel/test-repl-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-null.js) +- [parallel/test-repl-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-options.js) +- [parallel/test-repl-persistent-history.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-persistent-history.js) +- [parallel/test-repl-preprocess-top-level-await.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-preprocess-top-level-await.js) +- [parallel/test-repl-pretty-custom-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-pretty-custom-stack.js) +- [parallel/test-repl-pretty-stack-custom-writer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-pretty-stack-custom-writer.js) +- [parallel/test-repl-pretty-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-pretty-stack.js) +- [parallel/test-repl-preview.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-preview.js) +- [parallel/test-repl-programmatic-history.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-programmatic-history.js) +- [parallel/test-repl-recoverable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-recoverable.js) +- [parallel/test-repl-require-after-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-require-after-write.js) +- [parallel/test-repl-require-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-require-cache.js) +- [parallel/test-repl-require-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-require-context.js) +- [parallel/test-repl-require-self-referential.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-require-self-referential.js) +- [parallel/test-repl-require.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-require.js) +- [parallel/test-repl-reset-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-reset-event.js) +- [parallel/test-repl-reverse-search.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-reverse-search.js) +- [parallel/test-repl-save-load.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-save-load.js) +- [parallel/test-repl-setprompt.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-setprompt.js) +- [parallel/test-repl-sigint-nested-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-sigint-nested-eval.js) +- [parallel/test-repl-sigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-sigint.js) +- [parallel/test-repl-stdin-push-null.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-stdin-push-null.js) +- [parallel/test-repl-strict-mode-previews.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-strict-mode-previews.js) +- [parallel/test-repl-syntax-error-handling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-syntax-error-handling.js) +- [parallel/test-repl-syntax-error-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-syntax-error-stack.js) +- [parallel/test-repl-tab-complete-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete-crash.js) +- [parallel/test-repl-tab-complete-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete-import.js) +- [parallel/test-repl-tab-complete-nested-repls.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete-nested-repls.js) +- [parallel/test-repl-tab-complete-no-warn.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete-no-warn.js) +- [parallel/test-repl-tab-complete-on-editor-mode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete-on-editor-mode.js) +- [parallel/test-repl-tab-complete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab-complete.js) +- [parallel/test-repl-tab.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-tab.js) +- [parallel/test-repl-throw-null-or-undefined.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-throw-null-or-undefined.js) +- [parallel/test-repl-top-level-await.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-top-level-await.js) +- [parallel/test-repl-uncaught-exception-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-uncaught-exception-async.js) +- [parallel/test-repl-uncaught-exception-evalcallback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-uncaught-exception-evalcallback.js) +- [parallel/test-repl-uncaught-exception-standalone.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-uncaught-exception-standalone.js) +- [parallel/test-repl-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-uncaught-exception.js) +- [parallel/test-repl-underscore.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-underscore.js) +- [parallel/test-repl-unexpected-token-recoverable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-unexpected-token-recoverable.js) +- [parallel/test-repl-unsafe-array-iteration.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-unsafe-array-iteration.js) +- [parallel/test-repl-unsupported-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-unsupported-option.js) +- [parallel/test-repl-use-global.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl-use-global.js) +- [parallel/test-repl.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-repl.js) +- [parallel/test-require-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-cache.js) +- [parallel/test-require-delete-array-iterator.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-delete-array-iterator.js) +- [parallel/test-require-dot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-dot.js) +- [parallel/test-require-empty-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-empty-main.js) +- [parallel/test-require-exceptions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-exceptions.js) +- [parallel/test-require-extension-over-directory.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-extension-over-directory.js) +- [parallel/test-require-extensions-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-extensions-main.js) +- [parallel/test-require-extensions-same-filename-as-dir-trailing-slash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-extensions-same-filename-as-dir-trailing-slash.js) +- [parallel/test-require-extensions-same-filename-as-dir.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-extensions-same-filename-as-dir.js) +- [parallel/test-require-invalid-main-no-exports.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-invalid-main-no-exports.js) +- [parallel/test-require-invalid-package.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-invalid-package.js) +- [parallel/test-require-json.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-json.js) +- [parallel/test-require-long-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-long-path.js) +- [parallel/test-require-mjs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-mjs.js) +- [parallel/test-require-node-prefix.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-node-prefix.js) +- [parallel/test-require-nul.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-nul.js) +- [parallel/test-require-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-process.js) +- [parallel/test-require-resolve.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-resolve.js) +- [parallel/test-require-symlink.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-symlink.js) +- [parallel/test-require-unicode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-require-unicode.js) +- [parallel/test-resource-usage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-resource-usage.js) +- [parallel/test-runner-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-cli.js) +- [parallel/test-runner-concurrency.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-concurrency.js) +- [parallel/test-runner-exit-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-exit-code.js) +- [parallel/test-runner-import-no-scheme.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-import-no-scheme.js) +- [parallel/test-runner-misc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-misc.js) +- [parallel/test-runner-option-validation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-option-validation.js) +- [parallel/test-runner-string-to-regexp.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-string-to-regexp.js) +- [parallel/test-runner-test-filter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-runner-test-filter.js) +- [parallel/test-safe-get-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-safe-get-env.js) +- [parallel/test-security-revert-unknown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-security-revert-unknown.js) +- [parallel/test-set-http-max-http-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-set-http-max-http-headers.js) +- [parallel/test-set-incoming-message-header.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-set-incoming-message-header.js) +- [parallel/test-set-process-debug-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-set-process-debug-port.js) +- [parallel/test-setproctitle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-setproctitle.js) +- [parallel/test-sigint-infinite-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-sigint-infinite-loop.js) +- [parallel/test-signal-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-signal-args.js) +- [parallel/test-signal-handler-remove-on-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-signal-handler-remove-on-exit.js) +- [parallel/test-signal-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-signal-handler.js) +- [parallel/test-signal-safety.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-signal-safety.js) +- [parallel/test-signal-unregister.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-signal-unregister.js) +- [parallel/test-snapshot-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-api.js) +- [parallel/test-snapshot-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-basic.js) +- [parallel/test-snapshot-cjs-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-cjs-main.js) +- [parallel/test-snapshot-console.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-console.js) +- [parallel/test-snapshot-dns-lookup-localhost-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-dns-lookup-localhost-promise.js) +- [parallel/test-snapshot-dns-lookup-localhost.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-dns-lookup-localhost.js) +- [parallel/test-snapshot-dns-resolve-localhost-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-dns-resolve-localhost-promise.js) +- [parallel/test-snapshot-dns-resolve-localhost.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-dns-resolve-localhost.js) +- [parallel/test-snapshot-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-error.js) +- [parallel/test-snapshot-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-eval.js) +- [parallel/test-snapshot-gzip.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-gzip.js) +- [parallel/test-snapshot-typescript.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-typescript.js) +- [parallel/test-snapshot-umd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-umd.js) +- [parallel/test-snapshot-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-snapshot-warning.js) +- [parallel/test-socket-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-socket-address.js) +- [parallel/test-socket-options-invalid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-socket-options-invalid.js) +- [parallel/test-socket-write-after-fin-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-socket-write-after-fin-error.js) +- [parallel/test-socket-write-after-fin.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-socket-write-after-fin.js) +- [parallel/test-socketaddress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-socketaddress.js) +- [parallel/test-source-map-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-source-map-api.js) +- [parallel/test-source-map-enable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-source-map-enable.js) +- [parallel/test-spawn-cmd-named-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-spawn-cmd-named-pipe.js) +- [parallel/test-stack-size-limit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stack-size-limit.js) +- [parallel/test-startup-empty-regexp-statics.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-startup-empty-regexp-statics.js) +- [parallel/test-startup-large-pages.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-startup-large-pages.js) +- [parallel/test-stdin-child-proc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-child-proc.js) +- [parallel/test-stdin-from-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-from-file.js) +- [parallel/test-stdin-hang.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-hang.js) +- [parallel/test-stdin-pause-resume-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-pause-resume-sync.js) +- [parallel/test-stdin-pause-resume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-pause-resume.js) +- [parallel/test-stdin-pipe-large.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-pipe-large.js) +- [parallel/test-stdin-pipe-resume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-pipe-resume.js) +- [parallel/test-stdin-resume-pause.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-resume-pause.js) +- [parallel/test-stdin-script-child-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-script-child-option.js) +- [parallel/test-stdin-script-child.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdin-script-child.js) +- [parallel/test-stdio-closed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdio-closed.js) +- [parallel/test-stdio-pipe-access.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdio-pipe-access.js) +- [parallel/test-stdio-pipe-redirect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdio-pipe-redirect.js) +- [parallel/test-stdio-pipe-stderr.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdio-pipe-stderr.js) +- [parallel/test-stdio-undestroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdio-undestroy.js) +- [parallel/test-stdout-cannot-be-closed-child-process-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js) +- [parallel/test-stdout-close-catch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-close-catch.js) +- [parallel/test-stdout-close-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-close-unref.js) +- [parallel/test-stdout-pipeline-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-pipeline-destroy.js) +- [parallel/test-stdout-stderr-reading.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-stderr-reading.js) +- [parallel/test-stdout-stderr-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-stderr-write.js) +- [parallel/test-stdout-to-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stdout-to-file.js) +- [parallel/test-stream-base-prototype-accessors-enumerability.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-base-prototype-accessors-enumerability.js) +- [parallel/test-stream-base-typechecking.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-base-typechecking.js) +- [parallel/test-stream-catch-rejections.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-catch-rejections.js) +- [parallel/test-stream-compose.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-compose.js) +- [parallel/test-stream-consumers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-consumers.js) +- [parallel/test-stream-decoder-objectmode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-decoder-objectmode.js) +- [parallel/test-stream-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-destroy.js) +- [parallel/test-stream-drop-take.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-drop-take.js) +- [parallel/test-stream-duplex-readable-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-duplex-readable-writable.js) +- [parallel/test-stream-end-of-streams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-end-of-streams.js) +- [parallel/test-stream-filter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-filter.js) +- [parallel/test-stream-finished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-finished.js) +- [parallel/test-stream-flatMap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-flatMap.js) +- [parallel/test-stream-forEach.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-forEach.js) +- [parallel/test-stream-map.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-map.js) +- [parallel/test-stream-passthrough-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-passthrough-drain.js) +- [parallel/test-stream-pipe-error-unhandled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipe-error-unhandled.js) +- [parallel/test-stream-pipeline-duplex.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline-duplex.js) +- [parallel/test-stream-pipeline-http2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline-http2.js) +- [parallel/test-stream-pipeline-listeners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline-listeners.js) +- [parallel/test-stream-pipeline-process.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline-process.js) +- [parallel/test-stream-pipeline-uncaught.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline-uncaught.js) +- [parallel/test-stream-pipeline.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-pipeline.js) +- [parallel/test-stream-preprocess.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-preprocess.js) +- [parallel/test-stream-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-promises.js) +- [parallel/test-stream-push-order.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-push-order.js) +- [parallel/test-stream-readable-async-iterators.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-readable-async-iterators.js) +- [parallel/test-stream-readable-strategy-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-readable-strategy-option.js) +- [parallel/test-stream-readable-unpipe-resume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-readable-unpipe-resume.js) +- [parallel/test-stream-reduce.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-reduce.js) +- [parallel/test-stream-toArray.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-toArray.js) +- [parallel/test-stream-transform-hwm0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-transform-hwm0.js) +- [parallel/test-stream-wrap-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-wrap-drain.js) +- [parallel/test-stream-wrap-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-wrap-encoding.js) +- [parallel/test-stream-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-wrap.js) +- [parallel/test-stream-writable-aborted.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-aborted.js) +- [parallel/test-stream-writable-end-cb-uncaught.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-end-cb-uncaught.js) +- [parallel/test-stream-writable-final-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-final-async.js) +- [parallel/test-stream-writable-final-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-final-destroy.js) +- [parallel/test-stream-writable-final-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-final-throw.js) +- [parallel/test-stream-writable-samecb-singletick.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream-writable-samecb-singletick.js) +- [parallel/test-stream2-finish-pipe-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream2-finish-pipe-error.js) +- [parallel/test-stream2-httpclient-response-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stream2-httpclient-response-end.js) +- [parallel/test-string-decoder-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-string-decoder-end.js) +- [parallel/test-string-decoder-fuzz.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-string-decoder-fuzz.js) +- [parallel/test-string-decoder.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-string-decoder.js) +- [parallel/test-stringbytes-external.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-stringbytes-external.js) +- [parallel/test-structuredClone-global.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-structuredClone-global.js) +- [parallel/test-sync-fileread.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-sync-fileread.js) +- [parallel/test-sync-io-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-sync-io-option.js) +- [parallel/test-sys.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-sys.js) +- [parallel/test-tcp-wrap-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tcp-wrap-connect.js) +- [parallel/test-tcp-wrap-listen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tcp-wrap-listen.js) +- [parallel/test-tcp-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tcp-wrap.js) +- [parallel/test-tick-processor-arguments.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tick-processor-arguments.js) +- [parallel/test-tick-processor-version-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tick-processor-version-check.js) +- [parallel/test-timer-immediate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timer-immediate.js) +- [parallel/test-timers-active.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-active.js) +- [parallel/test-timers-clearImmediate-als.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-clearImmediate-als.js) +- [parallel/test-timers-destroyed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-destroyed.js) +- [parallel/test-timers-enroll-invalid-msecs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-enroll-invalid-msecs.js) +- [parallel/test-timers-enroll-second-time.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-enroll-second-time.js) +- [parallel/test-timers-immediate-promisified.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-promisified.js) +- [parallel/test-timers-immediate-queue-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-queue-throw.js) +- [parallel/test-timers-immediate-queue.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-queue.js) +- [parallel/test-timers-immediate-unref-nested-once.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-unref-nested-once.js) +- [parallel/test-timers-immediate-unref-simple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-unref-simple.js) +- [parallel/test-timers-immediate-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate-unref.js) +- [parallel/test-timers-immediate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-immediate.js) +- [parallel/test-timers-interval-promisified.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-interval-promisified.js) +- [parallel/test-timers-linked-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-linked-list.js) +- [parallel/test-timers-max-duration-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-max-duration-warning.js) +- [parallel/test-timers-nested.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-nested.js) +- [parallel/test-timers-next-tick.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-next-tick.js) +- [parallel/test-timers-now.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-now.js) +- [parallel/test-timers-ordering.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-ordering.js) +- [parallel/test-timers-promises-scheduler.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-promises-scheduler.js) +- [parallel/test-timers-refresh-in-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-refresh-in-callback.js) +- [parallel/test-timers-reset-process-domain-on-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-reset-process-domain-on-throw.js) +- [parallel/test-timers-setimmediate-infinite-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-setimmediate-infinite-loop.js) +- [parallel/test-timers-socket-timeout-removes-other-socket-unref-timer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-socket-timeout-removes-other-socket-unref-timer.js) +- [parallel/test-timers-this.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-this.js) +- [parallel/test-timers-throw-when-cb-not-function.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-throw-when-cb-not-function.js) +- [parallel/test-timers-timeout-promisified.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-timeout-promisified.js) +- [parallel/test-timers-timeout-to-interval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-timeout-to-interval.js) +- [parallel/test-timers-to-primitive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-to-primitive.js) +- [parallel/test-timers-unenroll-unref-interval.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unenroll-unref-interval.js) +- [parallel/test-timers-unref-active.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unref-active.js) +- [parallel/test-timers-unref-remove-other-unref-timers-only-one-fires.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unref-remove-other-unref-timers-only-one-fires.js) +- [parallel/test-timers-unref-remove-other-unref-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unref-remove-other-unref-timers.js) +- [parallel/test-timers-unref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unref.js) +- [parallel/test-timers-unrefd-interval-still-fires.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unrefd-interval-still-fires.js) +- [parallel/test-timers-unrefed-in-beforeexit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unrefed-in-beforeexit.js) +- [parallel/test-timers-unrefed-in-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers-unrefed-in-callback.js) +- [parallel/test-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-timers.js) +- [parallel/test-tls-0-dns-altname.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-0-dns-altname.js) +- [parallel/test-tls-addca.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-addca.js) +- [parallel/test-tls-alert-handling.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-alert-handling.js) +- [parallel/test-tls-alert.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-alert.js) +- [parallel/test-tls-alpn-server-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-alpn-server-client.js) +- [parallel/test-tls-async-cb-after-socket-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-async-cb-after-socket-end.js) +- [parallel/test-tls-basic-validations.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-basic-validations.js) +- [parallel/test-tls-buffersize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-buffersize.js) +- [parallel/test-tls-ca-concat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ca-concat.js) +- [parallel/test-tls-canonical-ip.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-canonical-ip.js) +- [parallel/test-tls-cert-chains-concat.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cert-chains-concat.js) +- [parallel/test-tls-cert-chains-in-ca.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cert-chains-in-ca.js) +- [parallel/test-tls-cert-ext-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cert-ext-encoding.js) +- [parallel/test-tls-cert-regression.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cert-regression.js) +- [parallel/test-tls-check-server-identity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-check-server-identity.js) +- [parallel/test-tls-cipher-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cipher-list.js) +- [parallel/test-tls-cli-max-version-1.2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-max-version-1.2.js) +- [parallel/test-tls-cli-max-version-1.3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-max-version-1.3.js) +- [parallel/test-tls-cli-min-max-conflict.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-min-max-conflict.js) +- [parallel/test-tls-cli-min-version-1.0.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-min-version-1.0.js) +- [parallel/test-tls-cli-min-version-1.1.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-min-version-1.1.js) +- [parallel/test-tls-cli-min-version-1.2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-min-version-1.2.js) +- [parallel/test-tls-cli-min-version-1.3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cli-min-version-1.3.js) +- [parallel/test-tls-client-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-abort.js) +- [parallel/test-tls-client-abort2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-abort2.js) +- [parallel/test-tls-client-auth.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-auth.js) +- [parallel/test-tls-client-default-ciphers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-default-ciphers.js) +- [parallel/test-tls-client-destroy-soon.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-destroy-soon.js) +- [parallel/test-tls-client-getephemeralkeyinfo.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-getephemeralkeyinfo.js) +- [parallel/test-tls-client-mindhsize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-mindhsize.js) +- [parallel/test-tls-client-reject-12.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-reject-12.js) +- [parallel/test-tls-client-reject.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-reject.js) +- [parallel/test-tls-client-renegotiation-13.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-renegotiation-13.js) +- [parallel/test-tls-client-renegotiation-limit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-renegotiation-limit.js) +- [parallel/test-tls-client-resume-12.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-resume-12.js) +- [parallel/test-tls-client-resume.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-resume.js) +- [parallel/test-tls-client-verify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-client-verify.js) +- [parallel/test-tls-clientcertengine-invalid-arg-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-clientcertengine-invalid-arg-type.js) +- [parallel/test-tls-clientcertengine-unsupported.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-clientcertengine-unsupported.js) +- [parallel/test-tls-close-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-close-error.js) +- [parallel/test-tls-close-event-after-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-close-event-after-write.js) +- [parallel/test-tls-close-notify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-close-notify.js) +- [parallel/test-tls-cnnic-whitelist.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-cnnic-whitelist.js) +- [parallel/test-tls-connect-abort-controller.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-abort-controller.js) +- [parallel/test-tls-connect-address-family.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-address-family.js) +- [parallel/test-tls-connect-allow-half-open-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-allow-half-open-option.js) +- [parallel/test-tls-connect-given-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-given-socket.js) +- [parallel/test-tls-connect-hints-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-hints-option.js) +- [parallel/test-tls-connect-hwm-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-hwm-option.js) +- [parallel/test-tls-connect-memleak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-memleak.js) +- [parallel/test-tls-connect-no-host.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-no-host.js) +- [parallel/test-tls-connect-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-pipe.js) +- [parallel/test-tls-connect-secure-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-secure-context.js) +- [parallel/test-tls-connect-simple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-simple.js) +- [parallel/test-tls-connect-stream-writes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-stream-writes.js) +- [parallel/test-tls-connect-timeout-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-connect-timeout-option.js) +- [parallel/test-tls-delayed-attach-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-delayed-attach-error.js) +- [parallel/test-tls-delayed-attach.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-delayed-attach.js) +- [parallel/test-tls-destroy-stream-12.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-destroy-stream-12.js) +- [parallel/test-tls-destroy-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-destroy-stream.js) +- [parallel/test-tls-destroy-whilst-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-destroy-whilst-write.js) +- [parallel/test-tls-dhe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-dhe.js) +- [parallel/test-tls-disable-renegotiation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-disable-renegotiation.js) +- [parallel/test-tls-ecdh-auto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ecdh-auto.js) +- [parallel/test-tls-ecdh-multiple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ecdh-multiple.js) +- [parallel/test-tls-ecdh.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ecdh.js) +- [parallel/test-tls-econnreset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-econnreset.js) +- [parallel/test-tls-empty-sni-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-empty-sni-context.js) +- [parallel/test-tls-enable-keylog-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-enable-keylog-cli.js) +- [parallel/test-tls-enable-trace-cli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-enable-trace-cli.js) +- [parallel/test-tls-enable-trace.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-enable-trace.js) +- [parallel/test-tls-env-bad-extra-ca.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-env-bad-extra-ca.js) +- [parallel/test-tls-env-extra-ca-file-load.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-env-extra-ca-file-load.js) +- [parallel/test-tls-env-extra-ca-no-crypto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-env-extra-ca-no-crypto.js) +- [parallel/test-tls-env-extra-ca.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-env-extra-ca.js) +- [parallel/test-tls-error-servername.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-error-servername.js) +- [parallel/test-tls-exportkeyingmaterial.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-exportkeyingmaterial.js) +- [parallel/test-tls-external-accessor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-external-accessor.js) +- [parallel/test-tls-fast-writing.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-fast-writing.js) +- [parallel/test-tls-finished.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-finished.js) +- [parallel/test-tls-friendly-error-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-friendly-error-message.js) +- [parallel/test-tls-generic-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-generic-stream.js) +- [parallel/test-tls-getcertificate-x509.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-getcertificate-x509.js) +- [parallel/test-tls-getcipher.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-getcipher.js) +- [parallel/test-tls-getprotocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-getprotocol.js) +- [parallel/test-tls-handshake-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-handshake-error.js) +- [parallel/test-tls-handshake-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-handshake-exception.js) +- [parallel/test-tls-handshake-nohang.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-handshake-nohang.js) +- [parallel/test-tls-hello-parser-failure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-hello-parser-failure.js) +- [parallel/test-tls-honorcipherorder.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-honorcipherorder.js) +- [parallel/test-tls-inception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-inception.js) +- [parallel/test-tls-interleave.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-interleave.js) +- [parallel/test-tls-invoke-queued.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-invoke-queued.js) +- [parallel/test-tls-ip-servername-deprecation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ip-servername-deprecation.js) +- [parallel/test-tls-js-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-js-stream.js) +- [parallel/test-tls-junk-closes-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-junk-closes-server.js) +- [parallel/test-tls-junk-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-junk-server.js) +- [parallel/test-tls-key-mismatch.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-key-mismatch.js) +- [parallel/test-tls-keyengine-invalid-arg-type.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-keyengine-invalid-arg-type.js) +- [parallel/test-tls-keyengine-unsupported.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-keyengine-unsupported.js) +- [parallel/test-tls-keylog-tlsv13.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-keylog-tlsv13.js) +- [parallel/test-tls-legacy-deprecated.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-legacy-deprecated.js) +- [parallel/test-tls-max-send-fragment.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-max-send-fragment.js) +- [parallel/test-tls-min-max-version.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-min-max-version.js) +- [parallel/test-tls-multi-key.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-multi-key.js) +- [parallel/test-tls-multi-pfx.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-multi-pfx.js) +- [parallel/test-tls-multiple-cas-as-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-multiple-cas-as-string.js) +- [parallel/test-tls-net-connect-prefer-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-net-connect-prefer-path.js) +- [parallel/test-tls-net-socket-keepalive-12.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-net-socket-keepalive-12.js) +- [parallel/test-tls-net-socket-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-net-socket-keepalive.js) +- [parallel/test-tls-no-cert-required.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-no-cert-required.js) +- [parallel/test-tls-no-rsa-key.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-no-rsa-key.js) +- [parallel/test-tls-no-sslv23.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-no-sslv23.js) +- [parallel/test-tls-no-sslv3.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-no-sslv3.js) +- [parallel/test-tls-ocsp-callback.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ocsp-callback.js) +- [parallel/test-tls-on-empty-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-on-empty-socket.js) +- [parallel/test-tls-onread-static-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-onread-static-buffer.js) +- [parallel/test-tls-options-boolean-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-options-boolean-check.js) +- [parallel/test-tls-over-http-tunnel.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-over-http-tunnel.js) +- [parallel/test-tls-passphrase.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-passphrase.js) +- [parallel/test-tls-pause.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-pause.js) +- [parallel/test-tls-peer-certificate-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-peer-certificate-encoding.js) +- [parallel/test-tls-peer-certificate-multi-keys.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-peer-certificate-multi-keys.js) +- [parallel/test-tls-peer-certificate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-peer-certificate.js) +- [parallel/test-tls-pfx-authorizationerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-pfx-authorizationerror.js) +- [parallel/test-tls-psk-circuit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-psk-circuit.js) +- [parallel/test-tls-psk-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-psk-errors.js) +- [parallel/test-tls-psk-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-psk-server.js) +- [parallel/test-tls-request-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-request-timeout.js) +- [parallel/test-tls-retain-handle-no-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-retain-handle-no-abort.js) +- [parallel/test-tls-reuse-host-from-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-reuse-host-from-socket.js) +- [parallel/test-tls-root-certificates.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-root-certificates.js) +- [parallel/test-tls-secure-context-usage-order.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-secure-context-usage-order.js) +- [parallel/test-tls-secure-session.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-secure-session.js) +- [parallel/test-tls-securepair-fiftharg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-securepair-fiftharg.js) +- [parallel/test-tls-securepair-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-securepair-leak.js) +- [parallel/test-tls-securepair-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-securepair-server.js) +- [parallel/test-tls-server-capture-rejection.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-capture-rejection.js) +- [parallel/test-tls-server-connection-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-connection-server.js) +- [parallel/test-tls-server-failed-handshake-emits-clienterror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js) +- [parallel/test-tls-server-parent-constructor-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-parent-constructor-options.js) +- [parallel/test-tls-server-setoptions-clientcertengine.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-setoptions-clientcertengine.js) +- [parallel/test-tls-server-verify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-server-verify.js) +- [parallel/test-tls-session-cache.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-session-cache.js) +- [parallel/test-tls-set-ciphers-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-set-ciphers-error.js) +- [parallel/test-tls-set-ciphers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-set-ciphers.js) +- [parallel/test-tls-set-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-set-encoding.js) +- [parallel/test-tls-set-secure-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-set-secure-context.js) +- [parallel/test-tls-set-sigalgs.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-set-sigalgs.js) +- [parallel/test-tls-sni-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-sni-option.js) +- [parallel/test-tls-sni-server-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-sni-server-client.js) +- [parallel/test-tls-sni-servername.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-sni-servername.js) +- [parallel/test-tls-snicallback-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-snicallback-error.js) +- [parallel/test-tls-socket-allow-half-open-option.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-allow-half-open-option.js) +- [parallel/test-tls-socket-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-close.js) +- [parallel/test-tls-socket-constructor-alpn-options-parsing.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-constructor-alpn-options-parsing.js) +- [parallel/test-tls-socket-default-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-default-options.js) +- [parallel/test-tls-socket-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-destroy.js) +- [parallel/test-tls-socket-failed-handshake-emits-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-failed-handshake-emits-error.js) +- [parallel/test-tls-socket-snicallback-without-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-socket-snicallback-without-server.js) +- [parallel/test-tls-startcom-wosign-whitelist.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-startcom-wosign-whitelist.js) +- [parallel/test-tls-starttls-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-starttls-server.js) +- [parallel/test-tls-streamwrap-buffersize.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-streamwrap-buffersize.js) +- [parallel/test-tls-ticket-12.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ticket-12.js) +- [parallel/test-tls-ticket-cluster.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ticket-cluster.js) +- [parallel/test-tls-ticket-invalid-arg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ticket-invalid-arg.js) +- [parallel/test-tls-ticket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-ticket.js) +- [parallel/test-tls-timeout-server-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-timeout-server-2.js) +- [parallel/test-tls-timeout-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-timeout-server.js) +- [parallel/test-tls-tlswrap-segfault-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-tlswrap-segfault-2.js) +- [parallel/test-tls-tlswrap-segfault.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-tlswrap-segfault.js) +- [parallel/test-tls-translate-peer-certificate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-translate-peer-certificate.js) +- [parallel/test-tls-transport-destroy-after-own-gc.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-transport-destroy-after-own-gc.js) +- [parallel/test-tls-use-after-free-regression.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-use-after-free-regression.js) +- [parallel/test-tls-wrap-econnreset-localaddress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-econnreset-localaddress.js) +- [parallel/test-tls-wrap-econnreset-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-econnreset-pipe.js) +- [parallel/test-tls-wrap-econnreset-socket.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-econnreset-socket.js) +- [parallel/test-tls-wrap-econnreset.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-econnreset.js) +- [parallel/test-tls-wrap-event-emmiter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-event-emmiter.js) +- [parallel/test-tls-wrap-no-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-no-abort.js) +- [parallel/test-tls-wrap-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-wrap-timeout.js) +- [parallel/test-tls-write-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-write-error.js) +- [parallel/test-tls-writewrap-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-writewrap-leak.js) +- [parallel/test-tls-zero-clear-in.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tls-zero-clear-in.js) +- [parallel/test-tojson-perf_hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tojson-perf_hooks.js) +- [parallel/test-trace-atomics-wait.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-atomics-wait.js) +- [parallel/test-trace-events-all.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-all.js) +- [parallel/test-trace-events-api-worker-disabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-api-worker-disabled.js) +- [parallel/test-trace-events-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-api.js) +- [parallel/test-trace-events-async-hooks-dynamic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-async-hooks-dynamic.js) +- [parallel/test-trace-events-async-hooks-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-async-hooks-worker.js) +- [parallel/test-trace-events-async-hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-async-hooks.js) +- [parallel/test-trace-events-binding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-binding.js) +- [parallel/test-trace-events-bootstrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-bootstrap.js) +- [parallel/test-trace-events-category-used.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-category-used.js) +- [parallel/test-trace-events-console.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-console.js) +- [parallel/test-trace-events-dynamic-enable-workers-disabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-dynamic-enable-workers-disabled.js) +- [parallel/test-trace-events-dynamic-enable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-dynamic-enable.js) +- [parallel/test-trace-events-environment.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-environment.js) +- [parallel/test-trace-events-file-pattern.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-file-pattern.js) +- [parallel/test-trace-events-fs-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-fs-async.js) +- [parallel/test-trace-events-fs-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-fs-sync.js) +- [parallel/test-trace-events-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-http.js) +- [parallel/test-trace-events-metadata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-metadata.js) +- [parallel/test-trace-events-net.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-net.js) +- [parallel/test-trace-events-none.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-none.js) +- [parallel/test-trace-events-process-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-process-exit.js) +- [parallel/test-trace-events-promises.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-promises.js) +- [parallel/test-trace-events-v8.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-v8.js) +- [parallel/test-trace-events-vm.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-vm.js) +- [parallel/test-trace-events-worker-metadata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-events-worker-metadata.js) +- [parallel/test-trace-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-trace-exit.js) +- [parallel/test-tracing-no-crash.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tracing-no-crash.js) +- [parallel/test-tty-backwards-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tty-backwards-api.js) +- [parallel/test-tty-stdin-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tty-stdin-end.js) +- [parallel/test-tty-stdin-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-tty-stdin-pipe.js) +- [parallel/test-ttywrap-invalid-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-ttywrap-invalid-fd.js) +- [parallel/test-ttywrap-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-ttywrap-stack.js) +- [parallel/test-unhandled-exception-rethrow-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-unhandled-exception-rethrow-error.js) +- [parallel/test-unicode-node-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-unicode-node-options.js) +- [parallel/test-url-null-char.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-url-null-char.js) +- [parallel/test-utf8-scripts.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-utf8-scripts.js) +- [parallel/test-util-callbackify.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-callbackify.js) +- [parallel/test-util-emit-experimental-warning.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-emit-experimental-warning.js) +- [parallel/test-util-inspect-getters-accessing-this.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-inspect-getters-accessing-this.js) +- [parallel/test-util-internal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-internal.js) +- [parallel/test-util-log.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-log.js) +- [parallel/test-util-primordial-monkeypatching.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-primordial-monkeypatching.js) +- [parallel/test-util-sigint-watchdog.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-sigint-watchdog.js) +- [parallel/test-util-sleep.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-util-sleep.js) +- [parallel/test-uv-binding-constant.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-uv-binding-constant.js) +- [parallel/test-uv-errmap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-uv-errmap.js) +- [parallel/test-uv-errno.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-uv-errno.js) +- [parallel/test-uv-unmapped-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-uv-unmapped-exception.js) +- [parallel/test-v8-coverage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-coverage.js) +- [parallel/test-v8-deserialize-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-deserialize-buffer.js) +- [parallel/test-v8-flag-type-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-flag-type-check.js) +- [parallel/test-v8-flags.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-flags.js) +- [parallel/test-v8-getheapsnapshot-twice.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-getheapsnapshot-twice.js) +- [parallel/test-v8-global-setter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-global-setter.js) +- [parallel/test-v8-serdes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-serdes.js) +- [parallel/test-v8-serialize-leak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-serialize-leak.js) +- [parallel/test-v8-stats.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-stats.js) +- [parallel/test-v8-stop-coverage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-stop-coverage.js) +- [parallel/test-v8-take-coverage-noop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-take-coverage-noop.js) +- [parallel/test-v8-take-coverage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-take-coverage.js) +- [parallel/test-v8-version-tag.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-v8-version-tag.js) +- [parallel/test-validators.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-validators.js) +- [parallel/test-vm-access-process-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-access-process-env.js) +- [parallel/test-vm-api-handles-getter-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-api-handles-getter-errors.js) +- [parallel/test-vm-attributes-property-not-on-sandbox.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-attributes-property-not-on-sandbox.js) +- [parallel/test-vm-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-basic.js) +- [parallel/test-vm-cached-data.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-cached-data.js) +- [parallel/test-vm-codegen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-codegen.js) +- [parallel/test-vm-context-async-script.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-context-async-script.js) +- [parallel/test-vm-context-property-forwarding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-context-property-forwarding.js) +- [parallel/test-vm-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-context.js) +- [parallel/test-vm-create-and-run-in-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-create-and-run-in-context.js) +- [parallel/test-vm-create-context-accessors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-create-context-accessors.js) +- [parallel/test-vm-create-context-arg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-create-context-arg.js) +- [parallel/test-vm-create-context-circular-reference.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-create-context-circular-reference.js) +- [parallel/test-vm-createcacheddata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-createcacheddata.js) +- [parallel/test-vm-cross-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-cross-context.js) +- [parallel/test-vm-data-property-writable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-data-property-writable.js) +- [parallel/test-vm-deleting-property.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-deleting-property.js) +- [parallel/test-vm-function-declaration.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-function-declaration.js) +- [parallel/test-vm-function-redefinition.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-function-redefinition.js) +- [parallel/test-vm-getters.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-getters.js) +- [parallel/test-vm-global-assignment.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-assignment.js) +- [parallel/test-vm-global-define-property.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-define-property.js) +- [parallel/test-vm-global-identity.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-identity.js) +- [parallel/test-vm-global-non-writable-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-non-writable-properties.js) +- [parallel/test-vm-global-property-interceptors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-property-interceptors.js) +- [parallel/test-vm-global-setter.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-global-setter.js) +- [parallel/test-vm-harmony-symbols.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-harmony-symbols.js) +- [parallel/test-vm-indexed-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-indexed-properties.js) +- [parallel/test-vm-inherited_properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-inherited_properties.js) +- [parallel/test-vm-is-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-is-context.js) +- [parallel/test-vm-low-stack-space.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-low-stack-space.js) +- [parallel/test-vm-measure-memory-lazy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-measure-memory-lazy.js) +- [parallel/test-vm-measure-memory-multi-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-measure-memory-multi-context.js) +- [parallel/test-vm-measure-memory.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-measure-memory.js) +- [parallel/test-vm-module-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-basic.js) +- [parallel/test-vm-module-cached-data.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-cached-data.js) +- [parallel/test-vm-module-dynamic-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-dynamic-import.js) +- [parallel/test-vm-module-dynamic-namespace.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-dynamic-namespace.js) +- [parallel/test-vm-module-errors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-errors.js) +- [parallel/test-vm-module-import-meta.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-import-meta.js) +- [parallel/test-vm-module-link.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-link.js) +- [parallel/test-vm-module-reevaluate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-reevaluate.js) +- [parallel/test-vm-module-synthetic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-module-synthetic.js) +- [parallel/test-vm-new-script-new-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-new-script-new-context.js) +- [parallel/test-vm-new-script-this-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-new-script-this-context.js) +- [parallel/test-vm-options-validation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-options-validation.js) +- [parallel/test-vm-parse-abort-on-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-parse-abort-on-uncaught-exception.js) +- [parallel/test-vm-preserves-property.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-preserves-property.js) +- [parallel/test-vm-property-not-on-sandbox.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-property-not-on-sandbox.js) +- [parallel/test-vm-proxies.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-proxies.js) +- [parallel/test-vm-proxy-failure-CP.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-proxy-failure-CP.js) +- [parallel/test-vm-run-in-new-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-run-in-new-context.js) +- [parallel/test-vm-script-throw-in-tostring.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-script-throw-in-tostring.js) +- [parallel/test-vm-set-property-proxy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-set-property-proxy.js) +- [parallel/test-vm-sigint-existing-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-sigint-existing-handler.js) +- [parallel/test-vm-sigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-sigint.js) +- [parallel/test-vm-strict-assign.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-strict-assign.js) +- [parallel/test-vm-strict-mode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-strict-mode.js) +- [parallel/test-vm-symbols.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-symbols.js) +- [parallel/test-vm-syntax-error-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-syntax-error-message.js) +- [parallel/test-vm-syntax-error-stderr.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-syntax-error-stderr.js) +- [parallel/test-vm-timeout-escape-promise-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-timeout-escape-promise-2.js) +- [parallel/test-vm-timeout-escape-promise-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-timeout-escape-promise-module.js) +- [parallel/test-vm-timeout-escape-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-timeout-escape-promise.js) +- [parallel/test-vm-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-vm-timeout.js) +- [parallel/test-warn-sigprof.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-warn-sigprof.js) +- [parallel/test-warn-stream-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-warn-stream-wrap.js) +- [parallel/test-wasm-simple.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wasm-simple.js) +- [parallel/test-wasm-web-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wasm-web-api.js) +- [parallel/test-weakref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-weakref.js) +- [parallel/test-webcrypto-constructors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-constructors.js) +- [parallel/test-webcrypto-cryptokey-workers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-cryptokey-workers.js) +- [parallel/test-webcrypto-derivebits-cfrg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivebits-cfrg.js) +- [parallel/test-webcrypto-derivebits-ecdh.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivebits-ecdh.js) +- [parallel/test-webcrypto-derivebits-hkdf.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivebits-hkdf.js) +- [parallel/test-webcrypto-derivebits.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivebits.js) +- [parallel/test-webcrypto-derivekey-cfrg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivekey-cfrg.js) +- [parallel/test-webcrypto-derivekey-ecdh.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivekey-ecdh.js) +- [parallel/test-webcrypto-derivekey.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-derivekey.js) +- [parallel/test-webcrypto-digest.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-digest.js) +- [parallel/test-webcrypto-encrypt-decrypt-aes.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-encrypt-decrypt-aes.js) +- [parallel/test-webcrypto-encrypt-decrypt-rsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-encrypt-decrypt-rsa.js) +- [parallel/test-webcrypto-encrypt-decrypt.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-encrypt-decrypt.js) +- [parallel/test-webcrypto-export-import-cfrg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-export-import-cfrg.js) +- [parallel/test-webcrypto-export-import-ec.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-export-import-ec.js) +- [parallel/test-webcrypto-export-import-rsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-export-import-rsa.js) +- [parallel/test-webcrypto-export-import.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-export-import.js) +- [parallel/test-webcrypto-getRandomValues.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-getRandomValues.js) +- [parallel/test-webcrypto-keygen.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-keygen.js) +- [parallel/test-webcrypto-random.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-random.js) +- [parallel/test-webcrypto-sign-verify-ecdsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-sign-verify-ecdsa.js) +- [parallel/test-webcrypto-sign-verify-eddsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-sign-verify-eddsa.js) +- [parallel/test-webcrypto-sign-verify-hmac.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-sign-verify-hmac.js) +- [parallel/test-webcrypto-sign-verify-rsa.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-sign-verify-rsa.js) +- [parallel/test-webcrypto-util.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-util.js) +- [parallel/test-webcrypto-wrap-unwrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webcrypto-wrap-unwrap.js) +- [parallel/test-webstream-encoding-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webstream-encoding-inspect.js) +- [parallel/test-webstream-readablestream-pipeto.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-webstream-readablestream-pipeto.js) +- [parallel/test-whatwg-encoding-custom-internals.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-encoding-custom-internals.js) +- [parallel/test-whatwg-encoding-custom-interop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-encoding-custom-interop.js) +- [parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js) +- [parallel/test-whatwg-encoding-custom-textdecoder-invalid-arg.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-encoding-custom-textdecoder-invalid-arg.js) +- [parallel/test-whatwg-encoding-custom-textdecoder.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-encoding-custom-textdecoder.js) +- [parallel/test-whatwg-events-event-constructors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-events-event-constructors.js) +- [parallel/test-whatwg-events-eventtarget-this-of-listener.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-events-eventtarget-this-of-listener.js) +- [parallel/test-whatwg-readablebytestream-bad-buffers-and-views.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-readablebytestream-bad-buffers-and-views.js) +- [parallel/test-whatwg-readablebytestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-readablebytestream.js) +- [parallel/test-whatwg-readablestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-readablestream.js) +- [parallel/test-whatwg-transformstream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-transformstream.js) +- [parallel/test-whatwg-url-custom-properties.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-properties.js) +- [parallel/test-whatwg-url-custom-searchparams-append.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-append.js) +- [parallel/test-whatwg-url-custom-searchparams-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-constructor.js) +- [parallel/test-whatwg-url-custom-searchparams-delete.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-delete.js) +- [parallel/test-whatwg-url-custom-searchparams-entries.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-entries.js) +- [parallel/test-whatwg-url-custom-searchparams-foreach.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-foreach.js) +- [parallel/test-whatwg-url-custom-searchparams-get.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-get.js) +- [parallel/test-whatwg-url-custom-searchparams-getall.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-getall.js) +- [parallel/test-whatwg-url-custom-searchparams-has.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-has.js) +- [parallel/test-whatwg-url-custom-searchparams-inspect.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-inspect.js) +- [parallel/test-whatwg-url-custom-searchparams-keys.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-keys.js) +- [parallel/test-whatwg-url-custom-searchparams-set.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-set.js) +- [parallel/test-whatwg-url-custom-searchparams-sort.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-sort.js) +- [parallel/test-whatwg-url-custom-searchparams-stringifier.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-stringifier.js) +- [parallel/test-whatwg-url-custom-searchparams-values.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams-values.js) +- [parallel/test-whatwg-url-custom-searchparams.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-custom-searchparams.js) +- [parallel/test-whatwg-url-invalidthis.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-url-invalidthis.js) +- [parallel/test-whatwg-webstreams-adapters-streambase.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-streambase.js) +- [parallel/test-whatwg-webstreams-adapters-to-readablestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-readablestream.js) +- [parallel/test-whatwg-webstreams-adapters-to-readablewritablepair.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-readablewritablepair.js) +- [parallel/test-whatwg-webstreams-adapters-to-streamduplex.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-streamduplex.js) +- [parallel/test-whatwg-webstreams-adapters-to-streamreadable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-streamreadable.js) +- [parallel/test-whatwg-webstreams-adapters-to-streamwritable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-streamwritable.js) +- [parallel/test-whatwg-webstreams-adapters-to-writablestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-adapters-to-writablestream.js) +- [parallel/test-whatwg-webstreams-compression.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-compression.js) +- [parallel/test-whatwg-webstreams-coverage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-coverage.js) +- [parallel/test-whatwg-webstreams-encoding.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-encoding.js) +- [parallel/test-whatwg-webstreams-transfer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-webstreams-transfer.js) +- [parallel/test-whatwg-writablestream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-whatwg-writablestream.js) +- [parallel/test-windows-abort-exitcode.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-windows-abort-exitcode.js) +- [parallel/test-windows-failed-heap-allocation.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-windows-failed-heap-allocation.js) +- [parallel/test-worker-abort-on-uncaught-exception-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-abort-on-uncaught-exception-terminate.js) +- [parallel/test-worker-abort-on-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-abort-on-uncaught-exception.js) +- [parallel/test-worker-arraybuffer-zerofill.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-arraybuffer-zerofill.js) +- [parallel/test-worker-beforeexit-throw-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-beforeexit-throw-exit.js) +- [parallel/test-worker-broadcastchannel-wpt.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-broadcastchannel-wpt.js) +- [parallel/test-worker-broadcastchannel.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-broadcastchannel.js) +- [parallel/test-worker-cjs-workerdata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-cjs-workerdata.js) +- [parallel/test-worker-cleanexit-with-js.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-cleanexit-with-js.js) +- [parallel/test-worker-cleanexit-with-moduleload.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-cleanexit-with-moduleload.js) +- [parallel/test-worker-cleanup-handles.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-cleanup-handles.js) +- [parallel/test-worker-console-listeners.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-console-listeners.js) +- [parallel/test-worker-crypto-sign-transfer-result.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-crypto-sign-transfer-result.js) +- [parallel/test-worker-data-url.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-data-url.js) +- [parallel/test-worker-debug.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-debug.js) +- [parallel/test-worker-dns-terminate-during-query.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-dns-terminate-during-query.js) +- [parallel/test-worker-dns-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-dns-terminate.js) +- [parallel/test-worker-environmentdata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-environmentdata.js) +- [parallel/test-worker-error-stack-getter-throws.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-error-stack-getter-throws.js) +- [parallel/test-worker-esm-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-esm-exit.js) +- [parallel/test-worker-esm-missing-main.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-esm-missing-main.js) +- [parallel/test-worker-esmodule.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-esmodule.js) +- [parallel/test-worker-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-event.js) +- [parallel/test-worker-execargv-invalid.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-execargv-invalid.js) +- [parallel/test-worker-execargv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-execargv.js) +- [parallel/test-worker-exit-code.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-exit-code.js) +- [parallel/test-worker-exit-event-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-exit-event-error.js) +- [parallel/test-worker-exit-from-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-exit-from-uncaught-exception.js) +- [parallel/test-worker-exit-heapsnapshot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-exit-heapsnapshot.js) +- [parallel/test-worker-fs-stat-watcher.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-fs-stat-watcher.js) +- [parallel/test-worker-hasref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-hasref.js) +- [parallel/test-worker-heap-snapshot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-heap-snapshot.js) +- [parallel/test-worker-heapdump-failure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-heapdump-failure.js) +- [parallel/test-worker-http2-generic-streams-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-http2-generic-streams-terminate.js) +- [parallel/test-worker-init-failure.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-init-failure.js) +- [parallel/test-worker-invalid-workerdata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-invalid-workerdata.js) +- [parallel/test-worker-load-file-with-extension-other-than-js.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-load-file-with-extension-other-than-js.js) +- [parallel/test-worker-memory.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-memory.js) +- [parallel/test-worker-message-channel-sharedarraybuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-channel-sharedarraybuffer.js) +- [parallel/test-worker-message-channel.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-channel.js) +- [parallel/test-worker-message-event.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-event.js) +- [parallel/test-worker-message-not-serializable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-not-serializable.js) +- [parallel/test-worker-message-port-arraybuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-arraybuffer.js) +- [parallel/test-worker-message-port-close-while-receiving.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-close-while-receiving.js) +- [parallel/test-worker-message-port-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-close.js) +- [parallel/test-worker-message-port-constructor.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-constructor.js) +- [parallel/test-worker-message-port-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-drain.js) +- [parallel/test-worker-message-port-infinite-message-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-infinite-message-loop.js) +- [parallel/test-worker-message-port-inspect-during-init-hook.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-inspect-during-init-hook.js) +- [parallel/test-worker-message-port-jstransferable-nested-untransferable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-jstransferable-nested-untransferable.js) +- [parallel/test-worker-message-port-message-before-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-message-before-close.js) +- [parallel/test-worker-message-port-message-port-transferring.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-message-port-transferring.js) +- [parallel/test-worker-message-port-move.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-move.js) +- [parallel/test-worker-message-port-multiple-sharedarraybuffers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-multiple-sharedarraybuffers.js) +- [parallel/test-worker-message-port-receive-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-receive-message.js) +- [parallel/test-worker-message-port-terminate-transfer-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-terminate-transfer-list.js) +- [parallel/test-worker-message-port-transfer-closed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-closed.js) +- [parallel/test-worker-message-port-transfer-duplicate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-duplicate.js) +- [parallel/test-worker-message-port-transfer-fake-js-transferable-internal.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-fake-js-transferable-internal.js) +- [parallel/test-worker-message-port-transfer-fake-js-transferable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-fake-js-transferable.js) +- [parallel/test-worker-message-port-transfer-filehandle.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-filehandle.js) +- [parallel/test-worker-message-port-transfer-native.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-native.js) +- [parallel/test-worker-message-port-transfer-self.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-self.js) +- [parallel/test-worker-message-port-transfer-target.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-target.js) +- [parallel/test-worker-message-port-transfer-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-transfer-terminate.js) +- [parallel/test-worker-message-port-wasm-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-wasm-module.js) +- [parallel/test-worker-message-port-wasm-threads.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port-wasm-threads.js) +- [parallel/test-worker-message-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-port.js) +- [parallel/test-worker-message-transfer-port-mark-as-untransferable.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-transfer-port-mark-as-untransferable.js) +- [parallel/test-worker-message-type-unknown.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-message-type-unknown.js) +- [parallel/test-worker-messageport-hasref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-messageport-hasref.js) +- [parallel/test-worker-mjs-workerdata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-mjs-workerdata.js) +- [parallel/test-worker-nearheaplimit-deadlock.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-nearheaplimit-deadlock.js) +- [parallel/test-worker-nested-on-process-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-nested-on-process-exit.js) +- [parallel/test-worker-nested-uncaught.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-nested-uncaught.js) +- [parallel/test-worker-nexttick-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-nexttick-terminate.js) +- [parallel/test-worker-no-stdin-stdout-interaction.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-no-stdin-stdout-interaction.js) +- [parallel/test-worker-non-fatal-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-non-fatal-uncaught-exception.js) +- [parallel/test-worker-on-process-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-on-process-exit.js) +- [parallel/test-worker-onmessage-not-a-function.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-onmessage-not-a-function.js) +- [parallel/test-worker-onmessage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-onmessage.js) +- [parallel/test-worker-parent-port-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-parent-port-ref.js) +- [parallel/test-worker-process-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-process-argv.js) +- [parallel/test-worker-process-cwd.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-process-cwd.js) +- [parallel/test-worker-process-env-shared.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-process-env-shared.js) +- [parallel/test-worker-process-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-process-env.js) +- [parallel/test-worker-process-exit-async-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-process-exit-async-module.js) +- [parallel/test-worker-ref-onexit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-ref-onexit.js) +- [parallel/test-worker-ref.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-ref.js) +- [parallel/test-worker-relative-path-double-dot.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-relative-path-double-dot.js) +- [parallel/test-worker-relative-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-relative-path.js) +- [parallel/test-worker-resource-limits.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-resource-limits.js) +- [parallel/test-worker-safe-getters.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-safe-getters.js) +- [parallel/test-worker-sharedarraybuffer-from-worker-thread.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-sharedarraybuffer-from-worker-thread.js) +- [parallel/test-worker-stack-overflow-stack-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-stack-overflow-stack-size.js) +- [parallel/test-worker-stack-overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-stack-overflow.js) +- [parallel/test-worker-stdio-from-preload-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-stdio-from-preload-module.js) +- [parallel/test-worker-stdio.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-stdio.js) +- [parallel/test-worker-syntax-error-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-syntax-error-file.js) +- [parallel/test-worker-syntax-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-syntax-error.js) +- [parallel/test-worker-terminate-http2-respond-with-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-http2-respond-with-file.js) +- [parallel/test-worker-terminate-microtask-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-microtask-loop.js) +- [parallel/test-worker-terminate-nested.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-nested.js) +- [parallel/test-worker-terminate-null-handler.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-null-handler.js) +- [parallel/test-worker-terminate-ref-public-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-ref-public-port.js) +- [parallel/test-worker-terminate-source-map.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-source-map.js) +- [parallel/test-worker-terminate-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-timers.js) +- [parallel/test-worker-terminate-unrefed.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-terminate-unrefed.js) +- [parallel/test-worker-track-unmanaged-fds.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-track-unmanaged-fds.js) +- [parallel/test-worker-type-check.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-type-check.js) +- [parallel/test-worker-uncaught-exception-async.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-uncaught-exception-async.js) +- [parallel/test-worker-uncaught-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-uncaught-exception.js) +- [parallel/test-worker-unref-from-message-during-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-unref-from-message-during-exit.js) +- [parallel/test-worker-unsupported-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-unsupported-path.js) +- [parallel/test-worker-unsupported-things.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-unsupported-things.js) +- [parallel/test-worker-vm-context-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-vm-context-terminate.js) +- [parallel/test-worker-workerdata-messageport.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-workerdata-messageport.js) +- [parallel/test-worker-workerdata-sharedarraybuffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker-workerdata-sharedarraybuffer.js) +- [parallel/test-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-worker.js) +- [parallel/test-wrap-js-stream-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wrap-js-stream-destroy.js) +- [parallel/test-wrap-js-stream-duplex.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wrap-js-stream-duplex.js) +- [parallel/test-wrap-js-stream-exceptions.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wrap-js-stream-exceptions.js) +- [parallel/test-wrap-js-stream-read-stop.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-wrap-js-stream-read-stop.js) +- [parallel/test-x509-escaping.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-x509-escaping.js) +- [parallel/test-zlib-brotli-flush.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-brotli-flush.js) +- [parallel/test-zlib-brotli-from-brotli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-brotli-from-brotli.js) +- [parallel/test-zlib-brotli-from-string.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-brotli-from-string.js) +- [parallel/test-zlib-brotli-kmaxlength-rangeerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-brotli-kmaxlength-rangeerror.js) +- [parallel/test-zlib-brotli.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-brotli.js) +- [parallel/test-zlib-bytes-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-bytes-read.js) +- [parallel/test-zlib-close-in-ondata.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-close-in-ondata.js) +- [parallel/test-zlib-const.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-const.js) +- [parallel/test-zlib-create-raw.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-create-raw.js) +- [parallel/test-zlib-deflate-constructors.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-deflate-constructors.js) +- [parallel/test-zlib-destroy.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-destroy.js) +- [parallel/test-zlib-dictionary-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-dictionary-fail.js) +- [parallel/test-zlib-dictionary.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-dictionary.js) +- [parallel/test-zlib-failed-init.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-failed-init.js) +- [parallel/test-zlib-flush-drain-longblock.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-flush-drain-longblock.js) +- [parallel/test-zlib-flush-drain.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-flush-drain.js) +- [parallel/test-zlib-flush-flags.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-flush-flags.js) +- [parallel/test-zlib-flush-write-sync-interleaved.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-flush-write-sync-interleaved.js) +- [parallel/test-zlib-flush.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-flush.js) +- [parallel/test-zlib-from-concatenated-gzip.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-from-concatenated-gzip.js) +- [parallel/test-zlib-from-gzip-with-trailing-garbage.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js) +- [parallel/test-zlib-from-gzip.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-from-gzip.js) +- [parallel/test-zlib-invalid-arg-value-brotli-compress.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-invalid-arg-value-brotli-compress.js) +- [parallel/test-zlib-invalid-input-memory.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-invalid-input-memory.js) +- [parallel/test-zlib-kmaxlength-rangeerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-kmaxlength-rangeerror.js) +- [parallel/test-zlib-maxOutputLength.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-maxOutputLength.js) +- [parallel/test-zlib-not-string-or-buffer.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-not-string-or-buffer.js) +- [parallel/test-zlib-object-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-object-write.js) +- [parallel/test-zlib-params.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-params.js) +- [parallel/test-zlib-premature-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-premature-end.js) +- [parallel/test-zlib-reset-before-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-reset-before-write.js) +- [parallel/test-zlib-unused-weak.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-unused-weak.js) +- [parallel/test-zlib-write-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib-write-after-close.js) +- [parallel/test-zlib.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-zlib.js) +- [pseudo-tty/readline-dumb-tty.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/readline-dumb-tty.js) +- [pseudo-tty/ref_keeps_node_running.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/ref_keeps_node_running.js) +- [pseudo-tty/repl-dumb-tty.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/repl-dumb-tty.js) +- [pseudo-tty/stdin-setrawmode.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/stdin-setrawmode.js) +- [pseudo-tty/test-assert-colors.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-assert-colors.js) +- [pseudo-tty/test-assert-no-color.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-assert-no-color.js) +- [pseudo-tty/test-assert-position-indicator.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-assert-position-indicator.js) +- [pseudo-tty/test-async-wrap-getasyncid-tty.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-async-wrap-getasyncid-tty.js) +- [pseudo-tty/test-fatal-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-fatal-error.js) +- [pseudo-tty/test-handle-wrap-hasref-tty.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-handle-wrap-hasref-tty.js) +- [pseudo-tty/test-readable-tty-keepalive.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-readable-tty-keepalive.js) +- [pseudo-tty/test-repl-external-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-repl-external-module.js) +- [pseudo-tty/test-set-raw-mode-reset-process-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-set-raw-mode-reset-process-exit.js) +- [pseudo-tty/test-set-raw-mode-reset-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-set-raw-mode-reset-signal.js) +- [pseudo-tty/test-set-raw-mode-reset.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-set-raw-mode-reset.js) +- [pseudo-tty/test-stderr-stdout-handle-sigwinch.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-stderr-stdout-handle-sigwinch.js) +- [pseudo-tty/test-stdin-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-stdin-write.js) +- [pseudo-tty/test-stdout-read.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-stdout-read.js) +- [pseudo-tty/test-trace-sigint-disabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-trace-sigint-disabled.js) +- [pseudo-tty/test-trace-sigint-on-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-trace-sigint-on-idle.js) +- [pseudo-tty/test-trace-sigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-trace-sigint.js) +- [pseudo-tty/test-tty-color-support.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-color-support.js) +- [pseudo-tty/test-tty-isatty.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-isatty.js) +- [pseudo-tty/test-tty-stdin-call-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-stdin-call-end.js) +- [pseudo-tty/test-tty-stdout-resize.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-stdout-resize.js) +- [pseudo-tty/test-tty-stream-constructors.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-stream-constructors.js) +- [pseudo-tty/test-tty-window-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-window-size.js) +- [pseudo-tty/test-tty-wrap.js](https://github.com/nodejs/node/tree/v18.12.1/test/pseudo-tty/test-tty-wrap.js) +- [pummel/test-child-process-spawn-loop.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-child-process-spawn-loop.js) +- [pummel/test-crypto-dh-hash.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-crypto-dh-hash.js) +- [pummel/test-crypto-dh-keys.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-crypto-dh-keys.js) +- [pummel/test-crypto-timing-safe-equal-benchmarks.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-crypto-timing-safe-equal-benchmarks.js) +- [pummel/test-dh-regr.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-dh-regr.js) +- [pummel/test-fs-largefile.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-largefile.js) +- [pummel/test-fs-readfile-tostring-fail.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-readfile-tostring-fail.js) +- [pummel/test-fs-watch-file-slow.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-watch-file-slow.js) +- [pummel/test-fs-watch-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-watch-file.js) +- [pummel/test-fs-watch-non-recursive.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-watch-non-recursive.js) +- [pummel/test-fs-watch-system-limit.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-fs-watch-system-limit.js) +- [pummel/test-hash-seed.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-hash-seed.js) +- [pummel/test-heapdump-dns.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-dns.js) +- [pummel/test-heapdump-env.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-env.js) +- [pummel/test-heapdump-fs-promise.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-fs-promise.js) +- [pummel/test-heapdump-http2.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-http2.js) +- [pummel/test-heapdump-inspector.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-inspector.js) +- [pummel/test-heapdump-tls.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-tls.js) +- [pummel/test-heapdump-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-worker.js) +- [pummel/test-heapdump-zlib.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapdump-zlib.js) +- [pummel/test-heapsnapshot-near-heap-limit-big.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapsnapshot-near-heap-limit-big.js) +- [pummel/test-heapsnapshot-near-heap-limit-bounded.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapsnapshot-near-heap-limit-bounded.js) +- [pummel/test-heapsnapshot-near-heap-limit-by-api.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapsnapshot-near-heap-limit-by-api.js) +- [pummel/test-heapsnapshot-near-heap-limit.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-heapsnapshot-near-heap-limit.js) +- [pummel/test-http-many-keep-alive-connections.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-http-many-keep-alive-connections.js) +- [pummel/test-http-upload-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-http-upload-timeout.js) +- [pummel/test-https-large-response.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-https-large-response.js) +- [pummel/test-https-no-reader.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-https-no-reader.js) +- [pummel/test-keep-alive.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-keep-alive.js) +- [pummel/test-net-bytes-per-incoming-chunk-overhead.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js) +- [pummel/test-net-many-clients.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-many-clients.js) +- [pummel/test-net-pause.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-pause.js) +- [pummel/test-net-pingpong-delay.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-pingpong-delay.js) +- [pummel/test-net-pingpong.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-pingpong.js) +- [pummel/test-net-throttle.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-throttle.js) +- [pummel/test-net-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-timeout.js) +- [pummel/test-net-timeout2.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-timeout2.js) +- [pummel/test-net-write-callbacks.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-net-write-callbacks.js) +- [pummel/test-next-tick-infinite-calls.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-next-tick-infinite-calls.js) +- [pummel/test-policy-integrity-dep.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-dep.js) +- [pummel/test-policy-integrity-parent-commonjs.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-parent-commonjs.js) +- [pummel/test-policy-integrity-parent-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-parent-module.js) +- [pummel/test-policy-integrity-parent-no-package-json.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-parent-no-package-json.js) +- [pummel/test-policy-integrity-worker-commonjs.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-worker-commonjs.js) +- [pummel/test-policy-integrity-worker-module.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-worker-module.js) +- [pummel/test-policy-integrity-worker-no-package-json.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-policy-integrity-worker-no-package-json.js) +- [pummel/test-process-cpuUsage.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-process-cpuUsage.js) +- [pummel/test-process-hrtime.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-process-hrtime.js) +- [pummel/test-regress-GH-892.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-regress-GH-892.js) +- [pummel/test-stream-pipe-multi.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-stream-pipe-multi.js) +- [pummel/test-timers.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-timers.js) +- [pummel/test-tls-server-large-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-tls-server-large-request.js) +- [pummel/test-tls-throttle.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-tls-throttle.js) +- [pummel/test-vm-memleak.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-vm-memleak.js) +- [pummel/test-vm-race.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-vm-race.js) +- [pummel/test-watch-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-watch-file.js) +- [pummel/test-webcrypto-derivebits-pbkdf2.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-webcrypto-derivebits-pbkdf2.js) +- [pummel/test-worker-take-heapsnapshot.js](https://github.com/nodejs/node/tree/v18.12.1/test/pummel/test-worker-take-heapsnapshot.js) +- [sequential/test-async-wrap-getasyncid.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-async-wrap-getasyncid.js) +- [sequential/test-buffer-creation-regression.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-buffer-creation-regression.js) +- [sequential/test-child-process-emfile.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-child-process-emfile.js) +- [sequential/test-child-process-execsync.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-child-process-execsync.js) +- [sequential/test-child-process-pass-fd.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-child-process-pass-fd.js) +- [sequential/test-cli-syntax-bad.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cli-syntax-bad.js) +- [sequential/test-cli-syntax-file-not-found.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cli-syntax-file-not-found.js) +- [sequential/test-cli-syntax-good.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cli-syntax-good.js) +- [sequential/test-cli-syntax-require.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cli-syntax-require.js) +- [sequential/test-cluster-inspect-brk.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cluster-inspect-brk.js) +- [sequential/test-cluster-net-listen-ipv6only-none.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cluster-net-listen-ipv6only-none.js) +- [sequential/test-cluster-net-listen-ipv6only-rr.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cluster-net-listen-ipv6only-rr.js) +- [sequential/test-cluster-send-handle-large-payload.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cluster-send-handle-large-payload.js) +- [sequential/test-cpu-prof-default.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-default.js) +- [sequential/test-cpu-prof-dir-absolute.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-dir-absolute.js) +- [sequential/test-cpu-prof-dir-and-name.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-dir-and-name.js) +- [sequential/test-cpu-prof-dir-relative.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-dir-relative.js) +- [sequential/test-cpu-prof-dir-worker.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-dir-worker.js) +- [sequential/test-cpu-prof-drained.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-drained.js) +- [sequential/test-cpu-prof-exit.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-exit.js) +- [sequential/test-cpu-prof-invalid-options.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-invalid-options.js) +- [sequential/test-cpu-prof-kill.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-kill.js) +- [sequential/test-cpu-prof-name.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-name.js) +- [sequential/test-cpu-prof-worker-argv.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-cpu-prof-worker-argv.js) +- [sequential/test-crypto-timing-safe-equal.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-crypto-timing-safe-equal.js) +- [sequential/test-debug-prompt.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debug-prompt.js) +- [sequential/test-debugger-backtrace.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-backtrace.js) +- [sequential/test-debugger-break.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-break.js) +- [sequential/test-debugger-breakpoint-exists.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-breakpoint-exists.js) +- [sequential/test-debugger-clear-breakpoints.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-clear-breakpoints.js) +- [sequential/test-debugger-custom-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-custom-port.js) +- [sequential/test-debugger-debug-brk.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-debug-brk.js) +- [sequential/test-debugger-exceptions.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-exceptions.js) +- [sequential/test-debugger-exec.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-exec.js) +- [sequential/test-debugger-heap-profiler.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-heap-profiler.js) +- [sequential/test-debugger-invalid-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-invalid-args.js) +- [sequential/test-debugger-list.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-list.js) +- [sequential/test-debugger-low-level.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-low-level.js) +- [sequential/test-debugger-object-type-remote-object.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-object-type-remote-object.js) +- [sequential/test-debugger-pid.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-pid.js) +- [sequential/test-debugger-preserve-breaks.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-preserve-breaks.js) +- [sequential/test-debugger-profile-command.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-profile-command.js) +- [sequential/test-debugger-profile.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-profile.js) +- [sequential/test-debugger-random-port-with-inspect-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-random-port-with-inspect-port.js) +- [sequential/test-debugger-random-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-random-port.js) +- [sequential/test-debugger-repeat-last.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-repeat-last.js) +- [sequential/test-debugger-restart-message.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-restart-message.js) +- [sequential/test-debugger-run-after-quit-restart.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-run-after-quit-restart.js) +- [sequential/test-debugger-sb-before-load.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-sb-before-load.js) +- [sequential/test-debugger-scripts.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-scripts.js) +- [sequential/test-debugger-use-strict.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-debugger-use-strict.js) +- [sequential/test-deprecation-flags.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-deprecation-flags.js) +- [sequential/test-dgram-bind-shared-ports.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-dgram-bind-shared-ports.js) +- [sequential/test-dgram-implicit-bind-failure.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-dgram-implicit-bind-failure.js) +- [sequential/test-dgram-pingpong.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-dgram-pingpong.js) +- [sequential/test-diagnostic-dir-cpu-prof.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-diagnostic-dir-cpu-prof.js) +- [sequential/test-diagnostic-dir-heap-prof.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-diagnostic-dir-heap-prof.js) +- [sequential/test-fs-stat-sync-overflow.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-fs-stat-sync-overflow.js) +- [sequential/test-fs-watch.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-fs-watch.js) +- [sequential/test-gc-http-client-onerror.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-gc-http-client-onerror.js) +- [sequential/test-gc-http-client-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-gc-http-client-timeout.js) +- [sequential/test-gc-http-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-gc-http-client.js) +- [sequential/test-heapdump-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-heapdump-flag.js) +- [sequential/test-heapdump.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-heapdump.js) +- [sequential/test-http-econnrefused.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-econnrefused.js) +- [sequential/test-http-keep-alive-large-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-keep-alive-large-write.js) +- [sequential/test-http-keepalive-maxsockets.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-keepalive-maxsockets.js) +- [sequential/test-http-max-sockets.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-max-sockets.js) +- [sequential/test-http-regr-gh-2928.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-regr-gh-2928.js) +- [sequential/test-http-server-keep-alive-timeout-slow-client-headers.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-server-keep-alive-timeout-slow-client-headers.js) +- [sequential/test-http-server-keep-alive-timeout-slow-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http-server-keep-alive-timeout-slow-server.js) +- [sequential/test-http2-large-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-large-file.js) +- [sequential/test-http2-max-session-memory.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-max-session-memory.js) +- [sequential/test-http2-ping-flood.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-ping-flood.js) +- [sequential/test-http2-settings-flood.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-settings-flood.js) +- [sequential/test-http2-timeout-large-write-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-timeout-large-write-file.js) +- [sequential/test-http2-timeout-large-write.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-http2-timeout-large-write.js) +- [sequential/test-https-connect-localport.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-https-connect-localport.js) +- [sequential/test-https-server-keep-alive-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-https-server-keep-alive-timeout.js) +- [sequential/test-init.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-init.js) +- [sequential/test-inspector-async-call-stack-abort.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-call-stack-abort.js) +- [sequential/test-inspector-async-call-stack.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-call-stack.js) +- [sequential/test-inspector-async-hook-setup-at-inspect-brk.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-hook-setup-at-inspect-brk.js) +- [sequential/test-inspector-async-hook-setup-at-signal.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-hook-setup-at-signal.js) +- [sequential/test-inspector-async-stack-traces-promise-then.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-stack-traces-promise-then.js) +- [sequential/test-inspector-async-stack-traces-set-interval.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-async-stack-traces-set-interval.js) +- [sequential/test-inspector-break-e.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-break-e.js) +- [sequential/test-inspector-break-when-eval.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-break-when-eval.js) +- [sequential/test-inspector-console.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-console.js) +- [sequential/test-inspector-contexts.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-contexts.js) +- [sequential/test-inspector-debug-brk-flag.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-debug-brk-flag.js) +- [sequential/test-inspector-debug-end.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-debug-end.js) +- [sequential/test-inspector-enabled.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-enabled.js) +- [sequential/test-inspector-exception.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-exception.js) +- [sequential/test-inspector-has-inspector-false.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-has-inspector-false.js) +- [sequential/test-inspector-invalid-args.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-invalid-args.js) +- [sequential/test-inspector-ip-detection.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-ip-detection.js) +- [sequential/test-inspector-not-blocked-on-idle.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-not-blocked-on-idle.js) +- [sequential/test-inspector-open.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-open.js) +- [sequential/test-inspector-overwrite-config.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-overwrite-config.js) +- [sequential/test-inspector-port-cluster.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-port-cluster.js) +- [sequential/test-inspector-port-zero.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-port-zero.js) +- [sequential/test-inspector-resource-name-to-url.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-resource-name-to-url.js) +- [sequential/test-inspector-runtime-evaluate-with-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-runtime-evaluate-with-timeout.js) +- [sequential/test-inspector-scriptparsed-context.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-scriptparsed-context.js) +- [sequential/test-inspector-stop-profile-after-done.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-stop-profile-after-done.js) +- [sequential/test-inspector-stops-no-file.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-stops-no-file.js) +- [sequential/test-inspector-stress-http.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector-stress-http.js) +- [sequential/test-inspector.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-inspector.js) +- [sequential/test-module-loading.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-module-loading.js) +- [sequential/test-net-GH-5504.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-GH-5504.js) +- [sequential/test-net-better-error-messages-port.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-better-error-messages-port.js) +- [sequential/test-net-connect-econnrefused.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-connect-econnrefused.js) +- [sequential/test-net-connect-handle-econnrefused.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-connect-handle-econnrefused.js) +- [sequential/test-net-connect-local-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-connect-local-error.js) +- [sequential/test-net-listen-shared-ports.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-listen-shared-ports.js) +- [sequential/test-net-localport.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-localport.js) +- [sequential/test-net-reconnect-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-reconnect-error.js) +- [sequential/test-net-response-size.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-response-size.js) +- [sequential/test-net-server-address.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-server-address.js) +- [sequential/test-net-server-bind.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-net-server-bind.js) +- [sequential/test-next-tick-error-spin.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-next-tick-error-spin.js) +- [sequential/test-perf-hooks.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-perf-hooks.js) +- [sequential/test-performance-eventloopdelay.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-performance-eventloopdelay.js) +- [sequential/test-pipe.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-pipe.js) +- [sequential/test-process-title.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-process-title.js) +- [sequential/test-process-warnings.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-process-warnings.js) +- [sequential/test-repl-timeout-throw.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-repl-timeout-throw.js) +- [sequential/test-require-cache-without-stat.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-require-cache-without-stat.js) +- [sequential/test-resolution-inspect-brk.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-resolution-inspect-brk.js) +- [sequential/test-stream2-fs.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-stream2-fs.js) +- [sequential/test-stream2-stderr-sync.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-stream2-stderr-sync.js) +- [sequential/test-timers-block-eventloop.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-timers-block-eventloop.js) +- [sequential/test-timers-set-interval-excludes-callback-duration.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-timers-set-interval-excludes-callback-duration.js) +- [sequential/test-tls-connect.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-tls-connect.js) +- [sequential/test-tls-lookup.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-tls-lookup.js) +- [sequential/test-tls-psk-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-tls-psk-client.js) +- [sequential/test-tls-securepair-client.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-tls-securepair-client.js) +- [sequential/test-tls-session-timeout.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-tls-session-timeout.js) +- [sequential/test-util-debug.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-util-debug.js) +- [sequential/test-vm-break-on-sigint.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-vm-break-on-sigint.js) +- [sequential/test-vm-timeout-escape-promise-module-2.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-vm-timeout-escape-promise-module-2.js) +- [sequential/test-vm-timeout-rethrow.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-vm-timeout-rethrow.js) +- [sequential/test-worker-eventlooputil.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-worker-eventlooputil.js) +- [sequential/test-worker-fshandles-error-on-termination.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-worker-fshandles-error-on-termination.js) +- [sequential/test-worker-fshandles-open-close-on-termination.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-worker-fshandles-open-close-on-termination.js) +- [sequential/test-worker-http2-stream-terminate.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-worker-http2-stream-terminate.js) +- [sequential/test-worker-prof.js](https://github.com/nodejs/node/tree/v18.12.1/test/sequential/test-worker-prof.js) diff --git a/tools/node_compat/setup.ts b/tools/node_compat/setup.ts new file mode 100755 index 0000000000..3cac720199 --- /dev/null +++ b/tools/node_compat/setup.ts @@ -0,0 +1,240 @@ +#!/usr/bin/env -S deno run --allow-read=. --allow-write=. --allow-net=nodejs.org +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. + +/** This script downloads Node.js source tarball, extracts it and copies the + * test files according to the config file `cli/tests/node_compat/config.json` + */ + +import { Foras, gunzip } from "https://deno.land/x/denoflate@2.0.2/deno/mod.ts"; +import { Untar } from "../../test_util/std/archive/untar.ts"; +import { walk } from "../../test_util/std/fs/walk.ts"; +import { + dirname, + fromFileUrl, + join, + sep, +} from "../../test_util/std/path/mod.ts"; +import { ensureFile } from "../../test_util/std/fs/ensure_file.ts"; +import { Buffer } from "../../test_util/std/io/buffer.ts"; +import { copy } from "../../test_util/std/streams/copy.ts"; +import { readAll } from "../../test_util/std/streams/read_all.ts"; +import { writeAll } from "../../test_util/std/streams/write_all.ts"; +import { withoutAll } from "../../test_util/std/collections/without_all.ts"; +import { relative } from "../../test_util/std/path/posix.ts"; + +import { config, ignoreList } from "../../cli/tests/node_compat/common.ts"; + +const encoder = new TextEncoder(); + +const NODE_VERSION = config.nodeVersion; +const NODE_NAME = "node-v" + NODE_VERSION; +const NODE_ARCHIVE_NAME = `${NODE_NAME}.tar.gz`; + +const NODE_IGNORED_TEST_DIRS = [ + "addons", + "async-hooks", + "cctest", + "common", + "doctool", + "embedding", + "fixtures", + "fuzzers", + "js-native-api", + "node-api", + "overlapped-checker", + "report", + "testpy", + "tick-processor", + "tools", + "v8-updates", + "wasi", + "wpt", +]; + +const NODE_TARBALL_URL = + `https://nodejs.org/dist/v${NODE_VERSION}/${NODE_ARCHIVE_NAME}`; +const NODE_VERSIONS_ROOT = new URL("versions/", import.meta.url); +const NODE_TARBALL_LOCAL_URL = new URL(NODE_ARCHIVE_NAME, NODE_VERSIONS_ROOT); +// local dir url where we copy the node tests +const NODE_LOCAL_ROOT_URL = new URL(NODE_NAME, NODE_VERSIONS_ROOT); +const NODE_LOCAL_TEST_URL = new URL(NODE_NAME + "/test/", NODE_VERSIONS_ROOT); +const NODE_COMPAT_TEST_DEST_URL = new URL( + "../../cli/tests/node_compat/test/", + import.meta.url, +); + +Foras.initSyncBundledOnce(); + +async function getNodeTests(): Promise { + const paths: string[] = []; + const rootPath = NODE_LOCAL_TEST_URL.href.slice(7); + for await ( + const item of walk(NODE_LOCAL_TEST_URL, { exts: [".js"] }) + ) { + const path = relative(rootPath, item.path); + if (NODE_IGNORED_TEST_DIRS.every((dir) => !path.startsWith(dir))) { + paths.push(path); + } + } + + return paths.sort(); +} + +function getDenoTests() { + return Object.entries(config.tests) + .filter(([testDir]) => !NODE_IGNORED_TEST_DIRS.includes(testDir)) + .flatMap(([testDir, tests]) => tests.map((test) => testDir + "/" + test)); +} + +async function updateToDo() { + const file = await Deno.open(new URL("./TODO.md", import.meta.url), { + write: true, + create: true, + truncate: true, + }); + + const missingTests = withoutAll(await getNodeTests(), await getDenoTests()); + + await file.write(encoder.encode(` +# Remaining Node Tests + +NOTE: This file should not be manually edited. Please edit 'cli/tests/node_compat/config.json' and run 'tools/node_compat/setup.ts' instead. + +Total: ${missingTests.length} + +`)); + for (const test of missingTests) { + await file.write( + encoder.encode( + `- [${test}](https://github.com/nodejs/node/tree/v${NODE_VERSION}/test/${test})\n`, + ), + ); + } + file.close(); +} + +async function clearTests() { + console.log("Cleaning up previous tests"); + for await ( + const file of walk(NODE_COMPAT_TEST_DEST_URL, { + includeDirs: false, + skip: ignoreList, + }) + ) { + await Deno.remove(file.path); + } +} + +async function decompressTests() { + console.log(`Decompressing ${NODE_ARCHIVE_NAME}...`); + + const compressedFile = await Deno.open(NODE_TARBALL_LOCAL_URL); + + const buffer = new Buffer(gunzip(await readAll(compressedFile))); + compressedFile.close(); + + const tar = new Untar(buffer); + const outFolder = dirname(fromFileUrl(NODE_TARBALL_LOCAL_URL)); + const testsFolder = `${NODE_NAME}/test`; + + for await (const entry of tar) { + if (entry.type !== "file") continue; + if (!entry.fileName.startsWith(testsFolder)) continue; + const path = join(outFolder, entry.fileName); + await ensureFile(path); + const file = await Deno.open(path, { + create: true, + truncate: true, + write: true, + }); + await copy(entry, file); + file.close(); + } +} + +/** Checks if file has entry in config.json */ +function hasEntry(file: string, suite: string) { + return Array.isArray(config.tests[suite]) && + config.tests[suite].includes(file); +} + +async function copyTests() { + console.log("Copying test files..."); + + for await (const entry of walk(NODE_LOCAL_TEST_URL, { skip: ignoreList })) { + const fragments = entry.path.split(sep); + // suite is the directory name after test/. For example, if the file is + // "node-v18.12.1/test/fixtures/policy/main.mjs" + // then suite is "fixtures/policy" + const suite = fragments.slice(fragments.indexOf(NODE_NAME) + 2, -1) + .join("/"); + if (!hasEntry(entry.name, suite)) { + continue; + } + + const dest = new URL(`${suite}/${entry.name}`, NODE_COMPAT_TEST_DEST_URL); + await ensureFile(dest); + const destFile = await Deno.open(dest, { + create: true, + truncate: true, + write: true, + }); + const srcFile = await Deno.open( + new URL(`${suite}/${entry.name}`, NODE_LOCAL_TEST_URL), + ); + await writeAll( + destFile, + encoder.encode(`// deno-fmt-ignore-file +// deno-lint-ignore-file + +// Copyright Joyent and Node contributors. All rights reserved. MIT license. +// Taken from Node ${NODE_VERSION} +// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually + +`), + ); + await srcFile.readable.pipeTo(destFile.writable); + } +} + +/** Downloads Node tarball */ +async function downloadFile() { + console.log( + `Downloading ${NODE_TARBALL_URL} in "${NODE_TARBALL_LOCAL_URL}" ...`, + ); + const response = await fetch(NODE_TARBALL_URL); + if (!response.ok) { + throw new Error(`Request failed with status ${response.status}`); + } + await ensureFile(NODE_TARBALL_LOCAL_URL); + const file = await Deno.open(NODE_TARBALL_LOCAL_URL, { + truncate: true, + write: true, + create: true, + }); + await response.body.pipeTo(file.writable); +} + +// main + +try { + Deno.lstatSync(NODE_TARBALL_LOCAL_URL); +} catch (e) { + if (!(e instanceof Deno.errors.NotFound)) { + throw e; + } + await downloadFile(); +} + +try { + Deno.lstatSync(NODE_LOCAL_ROOT_URL); +} catch (e) { + if (!(e instanceof Deno.errors.NotFound)) { + throw e; + } + await decompressTests(); +} + +await clearTests(); +await copyTests(); +await updateToDo();