summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2023-03-21 22:38:07 +0900
committerGitHub <noreply@github.com>2023-03-21 22:38:07 +0900
commitaa729a42b4257b4d58bfcd0270566756c9470d08 (patch)
treead9bcd33f812d753c62250094d416834999fb5a5
parentc34e26a9d56596645ee63b19f99c09cf4aea4b37 (diff)
chore(tools): restore node compat test setup script (#18290)
-rw-r--r--.dprint.json2
-rw-r--r--cli/tests/node_compat/common.ts6
-rw-r--r--cli/tests/node_compat/config.json144
-rw-r--r--cli/tests/node_compat/test.ts6
-rw-r--r--cli/tests/node_compat/test/internet/test-dgram-connect.js26
-rw-r--r--cli/tests/node_compat/test/parallel/test-buffer-sharedarraybuffer.js34
-rw-r--r--cli/tests/node_compat/test/parallel/test-buffer-write.js115
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-address.js88
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-bind-default-address.js60
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-bind.js50
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-bytes-length.js46
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-close-in-listening.js33
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-close-is-not-callback.js28
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-close.js63
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer-length.js30
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-buffer.js27
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-callback-multi-buffer.js36
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-default-host.js55
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-array.js29
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-buffer.js27
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-empty-packet.js35
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-buffer-copy.js36
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect-send-multi-string-array.js24
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-connect.js73
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-createSocket-type.js68
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-error-message-address.js64
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-implicit-bind.js53
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-listen-after-bind.js52
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-msgsize.js46
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-oob-buffer.js52
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-recv-error.js26
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-bad-arguments.js162
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-empty-address.js23
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js28
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer-length.js50
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-buffer.js26
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js34
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-multi-buffer.js34
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-callback-recursive.js50
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-default-host.js79
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-empty-array.js32
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-empty-buffer.js50
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-empty-packet.js36
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-error.js77
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-invalid-msg-type.js43
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-multi-buffer-copy.js35
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-send-multi-string-array.js20
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-udp4.js59
-rw-r--r--cli/tests/node_compat/test/parallel/test-dgram-udp6-send-default-host.js83
-rw-r--r--cli/tests/node_compat/test/parallel/test-diagnostics-channel-net.js32
-rw-r--r--cli/tests/node_compat/test/parallel/test-dns-multi-channel.js59
-rw-r--r--cli/tests/node_compat/test/parallel/test-event-emitter-check-listener-leaks.js110
-rw-r--r--cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-null.js30
-rw-r--r--cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js32
-rw-r--r--cli/tests/node_compat/test/parallel/test-event-emitter-max-listeners-warning.js38
-rw-r--r--cli/tests/node_compat/test/parallel/test-fs-rm.js433
-rw-r--r--cli/tests/node_compat/test/parallel/test-fs-watch.js105
-rw-r--r--cli/tests/node_compat/test/parallel/test-fs-writev.js114
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-outgoing-destroy.js24
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-outgoing-finish-writable.js47
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-after-close.js58
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-allow-half-open.js54
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-better-error-messages-listen.js19
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-bind-twice.js43
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-buffersize.js59
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-bytes-written-large.js74
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-can-reset-timeout.js64
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-connect-call-socket-connect.js46
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-connect-options-ipv6.js74
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-connect-options-port.js237
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-dns-custom-lookup.js61
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-dns-lookup-skip.js26
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-dns-lookup.js47
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-eaddrinuse.js44
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-end-destroyed.js33
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-listen-after-destroying-stdin.js29
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-listen-error.js36
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-local-address-port.js50
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-pause-resume-connecting.js102
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-persistent-ref-unref.js48
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-remote-address-port.js91
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-server-capture-rejection.js34
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-server-close.js52
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-server-max-connections.js114
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-server-pause-on-connect.js79
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-close-after-end.js38
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-connect-without-cb.js33
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-connecting.js28
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-destroy-send.js31
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-end-before-connect.js20
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-end-callback.js29
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-ready-without-cb.js27
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-write-after-close.js49
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-socket-write-error.js29
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-sync-cork.js40
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-writable.js22
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-write-after-end-nt.js39
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-write-fully-async-buffer.js41
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-write-fully-async-hex-string.js39
-rw-r--r--cli/tests/node_compat/test/parallel/test-net-write-slow.js70
-rw-r--r--cli/tests/node_compat/test/parallel/test-punycode.js280
-rw-r--r--cli/tests/node_compat/test/parallel/test-readline-csi.js183
-rw-r--r--cli/tests/node_compat/test/parallel/test-readline-promises-csi.mjs233
-rw-r--r--cli/tests/node_compat/test/parallel/test-readline-promises-interface.js1149
-rw-r--r--cli/tests/node_compat/test/parallel/test-stream-asIndexedPairs.mjs60
-rw-r--r--cli/tests/node_compat/test/parallel/test-stream-catch-rejections.js58
-rw-r--r--cli/tests/node_compat/test/parallel/test-stream-some-find-every.mjs179
-rw-r--r--cli/tests/node_compat/test/parallel/test-tls-connect-simple.js69
-rw-r--r--cli/tests/node_compat/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js58
-rw-r--r--cli/tests/node_compat/test/pummel/test-net-pingpong-delay.js114
-rw-r--r--cli/tests/node_compat/test/pummel/test-net-write-callbacks.js80
-rw-r--r--tools/node_compat/.gitignore1
-rw-r--r--tools/node_compat/TODO.md2931
-rwxr-xr-xtools/node_compat/setup.ts240
114 files changed, 3182 insertions, 7941 deletions
diff --git a/.dprint.json b/.dprint.json
index 422cd41e5..2146de4bd 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 0941e2c8f..e774991f6 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 2f21e0d46..90e4a9a35 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 505a20f08..ad2847f08 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<void> {
) {
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<string[]>) {
- 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 17b52472c..000000000
--- 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 9ec8f1a6d..000000000
--- 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 5ca26c96d..000000000
--- 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 ffcf8485e..000000000
--- 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 9a6e1412c..000000000
--- 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 93d68fd8a..000000000
--- 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 4ce2dabc3..000000000
--- 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 673b145b8..000000000
--- 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 d67bf5aa4..000000000
--- 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 46dfd8014..000000000
--- 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 87f878754..000000000
--- 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 3b1948cc0..000000000
--- 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 365d0c4e7..000000000
--- 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 3b2a579c0..000000000
--- 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 3ca2f930b..000000000
--- 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 07a841305..000000000
--- 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 04bb36ab6..000000000
--- 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 aec62ee51..000000000
--- 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 daf787e25..000000000
--- 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 41d6a6062..000000000
--- 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 afcb54ab2..000000000
--- 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 3bb144a89..000000000
--- 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 34167c95b..000000000
--- 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 3b9fd9771..000000000
--- 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 88587842d..000000000
--- 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 6ab59420c..000000000
--- 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 11b2633d8..000000000
--- 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 a465be098..000000000
--- 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 f04945597..000000000
--- 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 bb7095b59..000000000
--- 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 03bb52a17..000000000
--- 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 c486df86b..000000000
--- 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 33bb8d7f4..000000000
--- 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 3f6e79361..000000000
--- 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 6752cbf4a..000000000
--- 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 694531347..000000000
--- 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 6554cb501..000000000
--- 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 55ed56e5b..000000000
--- 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 78789a71a..000000000
--- 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 409097d08..000000000
--- 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 49d79c46a..000000000
--- 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 437c1dc34..000000000
--- 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 9754c90eb..000000000
--- 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 ebe5c2169..000000000
--- 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 94c9983ea..000000000
--- 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 05405efde..000000000
--- 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 65d0a2f3a..000000000
--- 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 977667abd..000000000
--- 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 0a17f5e71..000000000
--- 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 2bc5832e5..000000000
--- 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 f1a391402..000000000
--- 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 d1b29b623..000000000
--- 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 785d42911..000000000
--- 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 a0f3622cc..000000000
--- 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 52b41d9c3..000000000
--- 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 f87a1130c..000000000
--- 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 9ffa68407..000000000
--- 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 cfc2ec552..000000000
--- 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 14febbcdf..000000000
--- 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 6500f2aef..000000000
--- 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 0831fa526..000000000
--- 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 98df17dca..000000000
--- 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 535a86a10..000000000
--- 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 87412d4ad..000000000
--- 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 af87d5713..000000000
--- 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 6dd10461a..000000000
--- 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 6847dc57e..000000000
--- 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 f0fb49781..000000000
--- 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 57cb90d39..000000000
--- 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 d4b9b234f..000000000
--- 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 fc440844e..000000000
--- 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 aa1c2ec28..000000000
--- 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 25d2cd908..000000000
--- 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 98a63a952..000000000
--- 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 07f325462..000000000
--- 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 06e2c6d0f..000000000
--- 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 c1dc0282c..000000000
--- 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 d8096251e..000000000
--- 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 1be4a9c44..000000000
--- 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 76a609808..000000000
--- 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 9329a306a..000000000
--- 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 8e19e09ab..000000000
--- 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 8f8109380..000000000
--- 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 96883f5e1..000000000
--- 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 47ac7c1ad..000000000
--- 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 be83964be..000000000
--- 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 7b0e48df5..000000000
--- 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 29cf729df..000000000
--- 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 abd30aee1..000000000
--- 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 d38ab30b4..000000000
--- 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 eb4274b74..000000000
--- 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 a7cc5e5be..000000000
--- 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 8f38d3bfd..000000000
--- 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 5e93ad4e2..000000000
--- 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 ff355aa2a..000000000
--- 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 6c00efb1f..000000000
--- 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 cb65954a0..000000000
--- 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: Pro<ccaron>prost<ecaron>nemluv<iacute><ccaron>esky
- {
- 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: Porqu<eacute>nopuedensimplementehablarenEspa<ntilde>ol
- {
- 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: T<adotbelow>isaoh<odotbelow>kh<ocirc>ngth
- // <ecirchookabove>ch<ihookabove>n<oacute>iti<ecircacute>ngVi<ecircdotbelow>t
- {
- 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) 3<nen>B<gumi><kinpachi><sensei>
- {
- encoded: '3B-ww4c5e180e575a65lsy2b',
- decoded: '\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F'
- },
-
- // (M) <amuro><namie>-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-<sorezore><no><basho>
- {
- 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) <hitotsu><yane><no><shita>2
- {
- encoded: '2-u9tlzr9756bt3uc0v',
- decoded: '\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032'
- },
-
- // (P) Maji<de>Koi<suru>5<byou><mae>
- {
- encoded: 'MajiKoi5-783gue6qz075azm5e',
- decoded: '\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059\u308B' +
- '\u0035\u79D2\u524D'
- },
-
- // (Q) <pafii>de<runba>
- {
- encoded: 'de-jg4avhby1noc0d',
- decoded: '\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0'
- },
-
- // (R) <sono><supiido><de>
- {
- 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 e9a87b138..000000000
--- 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 fb61b52d9..000000000
--- 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 fbbfb46ad..000000000
--- 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 f7f8b6d7c..000000000
--- 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 066d68193..000000000
--- 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 61bbce21d..000000000
--- 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 01a688f3f..000000000
--- 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 950fc74ec..000000000
--- 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 50f509b8e..000000000
--- 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 7f6528107..000000000
--- 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 000000000..ff3de762c
--- /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 000000000..42e36cc9b
--- /dev/null
+++ b/tools/node_compat/TODO.md
@@ -0,0 +1,2931 @@
+<!-- deno-fmt-ignore-file -->
+# 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 000000000..3cac72019
--- /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<string[]> {
+ 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(`<!-- deno-fmt-ignore-file -->
+# 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();