diff --git a/0001-Remove-unused-OpenSSL-config.patch b/0001-Remove-unused-OpenSSL-config.patch new file mode 100644 index 0000000000000000000000000000000000000000..5ad738236e3611c4137b102c62d2d1f7dbdc3f5b --- /dev/null +++ b/0001-Remove-unused-OpenSSL-config.patch @@ -0,0 +1,46 @@ +From e93d9b5fdcd8e5744de629461c03a07de2252f8f Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Fri, 17 Apr 2020 12:59:44 +0200 +Subject: [PATCH] Remove unused OpenSSL config + +The build process will try to create these config files, even when +using the system OpenSSL and will thus fail since we strip this path +from the tarball. + +Signed-off-by: Stephen Gallagher +Signed-off-by: rpm-build +--- + node.gyp | 17 ----------------- + 1 file changed, 17 deletions(-) + +diff --git a/node.gyp b/node.gyp +index 1147495..da6ea50 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -822,23 +822,6 @@ + ], + }, + ], +- }, { +- 'variables': { +- 'opensslconfig_internal': '<(obj_dir)/deps/openssl/openssl.cnf', +- 'opensslconfig': './deps/openssl/nodejs-openssl.cnf', +- }, +- 'actions': [ +- { +- 'action_name': 'reset_openssl_cnf', +- 'inputs': [ '<(opensslconfig)', ], +- 'outputs': [ '<(opensslconfig_internal)', ], +- 'action': [ +- '<(python)', 'tools/copyfile.py', +- '<(opensslconfig)', +- '<(opensslconfig_internal)', +- ], +- }, +- ], + }], + ], + }, # node_core_target_name +-- +2.47.0 + diff --git a/0002-Disable-FIPS-options.patch b/0002-Disable-FIPS-options.patch new file mode 100644 index 0000000000000000000000000000000000000000..e6a084f50202d17e6af025341b07cee9bd05845e --- /dev/null +++ b/0002-Disable-FIPS-options.patch @@ -0,0 +1,87 @@ +From 137735c4e8a1b5f9d6c2a0e3f7d8b9a1c4d5e6f7 Mon Sep 17 00:00:00 2001 +From: Jan Stanek +Date: Tue, 15 Aug 2023 14:09:00 +0200 +Subject: [PATCH] src: disable FIPS CLI options when using shared OpenSSL + +With shared OpenSSL >= 3, using --enable-fips or --force-fips can cause +a core dump / assertion failure because the FIPS provider may not be +properly loaded through OpenSSL's configuration. + +When Node.js is built with --shared-openssl, FIPS mode should be +managed at the operating system or OpenSSL configuration level. + +This patch: +- Prints an error and exits early when FIPS CLI options are used with + shared OpenSSL builds +- Makes crypto.setFips() throw ERR_CRYPTO_FIPS_SYSTEM_CONTROLLED when + attempting to change the FIPS state +- Adds a new error code ERR_CRYPTO_FIPS_SYSTEM_CONTROLLED + +Upstream discussion: https://github.com/nodejs/node/pull/48950 +--- + lib/crypto.js | 10 ++++++++++ + lib/internal/errors.js | 6 ++++++ + src/crypto/crypto_util.cc | 2 ++ + 3 files changed, 18 insertions(+) + +diff --git a/lib/crypto.js b/lib/crypto.js +index 4290989..1e647a9 100644 +--- a/lib/crypto.js ++++ b/lib/crypto.js +@@ -36,6 +36,9 @@ const { + assertCrypto(); + + const { ++ // When using shared OpenSSL, FIPS is controlled at the system level ++ ERR_CRYPTO_FIPS_SYSTEM_CONTROLLED, ++ + ERR_CRYPTO_FIPS_FORCED, + ERR_WORKER_UNSUPPORTED_OPERATION, + } = require('internal/errors').codes; +@@ -253,6 +256,13 @@ function getFips() { + } + + function setFips(val) { ++ // When built with shared OpenSSL, FIPS should only be toggled at system level ++ if (getFips() != val) { ++ throw new ERR_CRYPTO_FIPS_SYSTEM_CONTROLLED(); ++ } else { ++ return; ++ } ++ + if (getOptionValue('--force-fips')) { + if (val) return; + throw new ERR_CRYPTO_FIPS_FORCED(); +diff --git a/lib/internal/errors.js b/lib/internal/errors.js +index e6dfbc2..73f3f5a 100644 +--- a/lib/internal/errors.js ++++ b/lib/internal/errors.js +@@ -1113,6 +1113,12 @@ module.exports = { + // + // Note: Node.js specific errors must begin with the prefix ERR_ + ++// When built with --shared-openssl, FIPS must be managed at system level ++E('ERR_CRYPTO_FIPS_SYSTEM_CONTROLLED', ++ 'Cannot set FIPS mode, it is controlled at the system level. ' + ++ 'Configure FIPS via the OpenSSL configuration or the operating system crypto policy.\n', ++ Error); ++ + E('ERR_ACCESS_DENIED', + function(msg, permission = '', resource = '') { + this.permission = permission; +diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc +index 205e248..dcf2bf3 100644 +--- a/src/crypto/crypto_util.cc ++++ b/src/crypto/crypto_util.cc +@@ -86,6 +86,8 @@ bool ProcessFipsOptions() { + /* Override FIPS settings in configuration file, if needed. */ + if (per_process::cli_options->enable_fips_crypto || + per_process::cli_options->force_fips_crypto) { ++ fprintf(stderr, "ERROR: --enable-fips and --force-fips are not supported when Node.js is built with shared OpenSSL. Configure FIPS at the system level instead (e.g. via the operating system crypto policy or OpenSSL configuration).\n"); ++ return false; + #if OPENSSL_VERSION_MAJOR >= 3 + if (!ncrypto::testFipsEnabled()) return false; + return ncrypto::setFipsEnabled(true, nullptr); +-- +2.53.0 + diff --git a/0003-downstream-update-nghttp2-to-1.68.1.patch b/0003-downstream-update-nghttp2-to-1.68.1.patch new file mode 100644 index 0000000000000000000000000000000000000000..e445f8fde9699a33dd4cd3bdf4e284df25bad844 --- /dev/null +++ b/0003-downstream-update-nghttp2-to-1.68.1.patch @@ -0,0 +1,530 @@ +From 205baae16ff43539500a6f168d0d27e226bfc4f2 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Wed, 25 Mar 2026 15:36:44 +0100 +Subject: [PATCH] downstream: update nghttp2 to 1.68.1 + +This is done out of sync with upstream node, +in order to address CVE-2026-27135 in a timely manner. + +Should be dropped once upstream addresses the CVE in their own way. + +Signed-off-by: rpm-build +--- + .../nghttp2/lib/includes/nghttp2/nghttp2ver.h | 4 +- + deps/nghttp2/lib/nghttp2_frame.c | 10 + + deps/nghttp2/lib/nghttp2_int.h | 6 +- + deps/nghttp2/lib/nghttp2_session.c | 206 ++++++++++-------- + 4 files changed, 135 insertions(+), 91 deletions(-) + +diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h +index 8dfe536..95acef2 100644 +--- a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h ++++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h +@@ -29,7 +29,7 @@ + * @macro + * Version number of the nghttp2 library release + */ +-#define NGHTTP2_VERSION "1.68.0" ++#define NGHTTP2_VERSION "1.68.1" + + /** + * @macro +@@ -37,6 +37,6 @@ + * release. This is a 24 bit number with 8 bits for major number, 8 bits + * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. + */ +-#define NGHTTP2_VERSION_NUM 0x014400 ++#define NGHTTP2_VERSION_NUM 0x014401 + + #endif /* NGHTTP2VER_H */ +diff --git a/deps/nghttp2/lib/nghttp2_frame.c b/deps/nghttp2/lib/nghttp2_frame.c +index edc2aaa..264ae9d 100644 +--- a/deps/nghttp2/lib/nghttp2_frame.c ++++ b/deps/nghttp2/lib/nghttp2_frame.c +@@ -750,6 +750,16 @@ void nghttp2_frame_unpack_altsvc_payload(nghttp2_extension *frame, + uint8_t *p; + + altsvc = frame->payload; ++ ++ if (payloadlen == 0) { ++ altsvc->origin = NULL; ++ altsvc->origin_len = 0; ++ altsvc->field_value = NULL; ++ altsvc->field_value_len = 0; ++ ++ return; ++ } ++ + p = payload; + + altsvc->origin = p; +diff --git a/deps/nghttp2/lib/nghttp2_int.h b/deps/nghttp2/lib/nghttp2_int.h +index 4e3b268..d89cf15 100644 +--- a/deps/nghttp2/lib/nghttp2_int.h ++++ b/deps/nghttp2/lib/nghttp2_int.h +@@ -52,7 +52,11 @@ typedef enum { + * Unlike NGHTTP2_ERR_IGN_HTTP_HEADER, this does not invoke + * nghttp2_on_invalid_header_callback. + */ +- NGHTTP2_ERR_REMOVE_HTTP_HEADER = -106 ++ NGHTTP2_ERR_REMOVE_HTTP_HEADER = -106, ++ /* ++ * Cancel pushed stream. ++ */ ++ NGHTTP2_ERR_PUSH_CANCEL = -107, + } nghttp2_internal_error; + + #endif /* !defined(NGHTTP2_INT_H) */ +diff --git a/deps/nghttp2/lib/nghttp2_session.c b/deps/nghttp2/lib/nghttp2_session.c +index 97d7fda..0fbcc93 100644 +--- a/deps/nghttp2/lib/nghttp2_session.c ++++ b/deps/nghttp2/lib/nghttp2_session.c +@@ -3272,7 +3272,9 @@ static int session_call_on_invalid_header(nghttp2_session *session, + session, frame, nv->name->base, nv->name->len, nv->value->base, + nv->value->len, nv->flags, session->user_data); + } else { +- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE; ++ /* If both callbacks are not set, the invalid field nv is ++ ignored. */ ++ return 0; + } + + if (rv == NGHTTP2_ERR_PAUSE || rv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) { +@@ -3357,6 +3359,10 @@ static uint32_t get_error_code_from_lib_error_code(int lib_error_code) { + case NGHTTP2_ERR_HTTP_HEADER: + case NGHTTP2_ERR_HTTP_MESSAGING: + return NGHTTP2_PROTOCOL_ERROR; ++ case NGHTTP2_ERR_INTERNAL: ++ return NGHTTP2_INTERNAL_ERROR; ++ case NGHTTP2_ERR_PUSH_CANCEL: ++ return NGHTTP2_CANCEL; + default: + return NGHTTP2_INTERNAL_ERROR; + } +@@ -3408,7 +3414,7 @@ static int session_handle_invalid_stream2(nghttp2_session *session, + if (rv != 0) { + return rv; + } +- if (session->callbacks.on_invalid_frame_recv_callback) { ++ if (frame && session->callbacks.on_invalid_frame_recv_callback) { + if (session->callbacks.on_invalid_frame_recv_callback( + session, frame, lib_error_code, session->user_data) != 0) { + return NGHTTP2_ERR_CALLBACK_FAILURE; +@@ -3563,7 +3569,29 @@ static int inflate_header_block(nghttp2_session *session, nghttp2_frame *frame, + + rv2 = session_call_on_invalid_header(session, frame, &nv); + if (rv2 == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) { +- rv = NGHTTP2_ERR_HTTP_HEADER; ++ DEBUGF("recv: HTTP error: type=%u, id=%d, header %.*s: %.*s\n", ++ frame->hd.type, frame->hd.stream_id, (int)nv.name->len, ++ nv.name->base, (int)nv.value->len, nv.value->base); ++ ++ rv = session_call_error_callback( ++ session, NGHTTP2_ERR_HTTP_HEADER, ++ "Invalid HTTP header field was received: frame type: " ++ "%u, stream: %d, name: [%.*s], value: [%.*s]", ++ frame->hd.type, frame->hd.stream_id, (int)nv.name->len, ++ nv.name->base, (int)nv.value->len, nv.value->base); ++ ++ if (nghttp2_is_fatal(rv)) { ++ return rv; ++ } ++ ++ rv = session_handle_invalid_stream2( ++ session, subject_stream->stream_id, frame, ++ NGHTTP2_ERR_HTTP_HEADER); ++ if (nghttp2_is_fatal(rv)) { ++ return rv; ++ } ++ ++ return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE; + } else { + if (rv2 != 0) { + return rv2; +@@ -3603,13 +3631,8 @@ static int inflate_header_block(nghttp2_session *session, nghttp2_frame *frame, + return rv; + } + +- rv = +- session_handle_invalid_stream2(session, subject_stream->stream_id, +- frame, NGHTTP2_ERR_HTTP_HEADER); +- if (nghttp2_is_fatal(rv)) { +- return rv; +- } +- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE; ++ return nghttp2_session_terminate_session(session, ++ NGHTTP2_PROTOCOL_ERROR); + } + } + if (rv == 0) { +@@ -3722,27 +3745,7 @@ static int session_after_header_block_received(nghttp2_session *session) { + } + } + if (rv != 0) { +- int32_t stream_id; +- +- if (frame->hd.type == NGHTTP2_PUSH_PROMISE) { +- stream_id = frame->push_promise.promised_stream_id; +- } else { +- stream_id = frame->hd.stream_id; +- } +- +- rv = session_handle_invalid_stream2(session, stream_id, frame, +- NGHTTP2_ERR_HTTP_MESSAGING); +- if (nghttp2_is_fatal(rv)) { +- return rv; +- } +- +- if (frame->hd.type == NGHTTP2_HEADERS && +- (frame->hd.flags & NGHTTP2_FLAG_END_STREAM)) { +- nghttp2_stream_shutdown(stream, NGHTTP2_SHUT_RD); +- /* Don't call nghttp2_session_close_stream_if_shut_rdwr +- because RST_STREAM has been submitted. */ +- } +- return 0; ++ return nghttp2_session_terminate_session(session, NGHTTP2_PROTOCOL_ERROR); + } + } + +@@ -4078,8 +4081,7 @@ static int update_remote_initial_window_size_func(void *entry, void *ptr) { + rv = nghttp2_stream_update_remote_initial_window_size( + stream, arg->new_window_size, arg->old_window_size); + if (rv != 0) { +- return nghttp2_session_add_rst_stream(arg->session, stream->stream_id, +- NGHTTP2_FLOW_CONTROL_ERROR); ++ return NGHTTP2_ERR_FLOW_CONTROL; + } + + /* If window size gets positive, push deferred DATA frame to +@@ -4105,6 +4107,8 @@ static int update_remote_initial_window_size_func(void *entry, void *ptr) { + * + * NGHTTP2_ERR_NOMEM + * Out of memory. ++ * NGHTTP2_ERR_FLOW_CONTROL ++ * Window size gets out of range. + */ + static int + session_update_remote_initial_window_size(nghttp2_session *session, +@@ -4128,8 +4132,7 @@ static int update_local_initial_window_size_func(void *entry, void *ptr) { + rv = nghttp2_stream_update_local_initial_window_size( + stream, arg->new_window_size, arg->old_window_size); + if (rv != 0) { +- return nghttp2_session_add_rst_stream(arg->session, stream->stream_id, +- NGHTTP2_FLOW_CONTROL_ERROR); ++ return NGHTTP2_ERR_FLOW_CONTROL; + } + + if (stream->window_update_queued) { +@@ -4163,6 +4166,8 @@ static int update_local_initial_window_size_func(void *entry, void *ptr) { + * + * NGHTTP2_ERR_NOMEM + * Out of memory. ++ * NGHTTP2_ERR_FLOW_CONTROL ++ * Window size gets out of range. + */ + static int + session_update_local_initial_window_size(nghttp2_session *session, +@@ -4549,9 +4554,9 @@ int nghttp2_session_on_push_promise_received(nghttp2_session *session, + session->max_incoming_reserved_streams) { + /* Currently, client does not retain closed stream, so we don't + check NGHTTP2_SHUT_RD condition here. */ +- +- rv = nghttp2_session_add_rst_stream( +- session, frame->push_promise.promised_stream_id, NGHTTP2_CANCEL); ++ rv = session_handle_invalid_stream2(session, ++ frame->push_promise.promised_stream_id, ++ NULL, NGHTTP2_ERR_PUSH_CANCEL); + if (rv != 0) { + return rv; + } +@@ -4708,8 +4713,9 @@ static int session_on_stream_window_update_received(nghttp2_session *session, + } + if (NGHTTP2_MAX_WINDOW_SIZE - frame->window_update.window_size_increment < + stream->remote_window_size) { +- return session_handle_invalid_stream(session, frame, +- NGHTTP2_ERR_FLOW_CONTROL); ++ return session_handle_invalid_connection( ++ session, frame, NGHTTP2_ERR_FLOW_CONTROL, ++ "WINDOW_UPDATE: window size overflow"); + } + stream->remote_window_size += frame->window_update.window_size_increment; + +@@ -4939,16 +4945,7 @@ int nghttp2_session_on_data_received(nghttp2_session *session, + if (session_enforce_http_messaging(session) && + (frame->hd.flags & NGHTTP2_FLAG_END_STREAM)) { + if (nghttp2_http_on_remote_end_stream(stream) != 0) { +- rv = nghttp2_session_add_rst_stream(session, stream->stream_id, +- NGHTTP2_PROTOCOL_ERROR); +- if (nghttp2_is_fatal(rv)) { +- return rv; +- } +- +- nghttp2_stream_shutdown(stream, NGHTTP2_SHUT_RD); +- /* Don't call nghttp2_session_close_stream_if_shut_rdwr because +- RST_STREAM has been submitted. */ +- return 0; ++ return nghttp2_session_terminate_session(session, NGHTTP2_PROTOCOL_ERROR); + } + } + +@@ -5006,8 +5003,8 @@ int nghttp2_session_update_recv_stream_window_size(nghttp2_session *session, + rv = adjust_recv_window_size(&stream->recv_window_size, delta_size, + stream->local_window_size); + if (rv != 0) { +- return nghttp2_session_add_rst_stream(session, stream->stream_id, +- NGHTTP2_FLOW_CONTROL_ERROR); ++ return nghttp2_session_terminate_session(session, ++ NGHTTP2_FLOW_CONTROL_ERROR); + } + /* We don't have to send WINDOW_UPDATE if the data received is the + last chunk in the incoming stream. */ +@@ -5469,6 +5466,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + busy = 1; + + rv = session_on_data_received_fail_fast(session); ++ if (nghttp2_is_fatal(rv)) { ++ return rv; ++ } ++ + if (iframe->state == NGHTTP2_IB_IGN_ALL) { + return (nghttp2_ssize)inlen; + } +@@ -5489,10 +5490,6 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + break; + } + +- if (nghttp2_is_fatal(rv)) { +- return rv; +- } +- + rv = inbound_frame_handle_pad(iframe, &iframe->frame.hd); + if (rv < 0) { + rv = nghttp2_session_terminate_session_with_reason( +@@ -5576,6 +5573,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + on_begin_frame_called = 1; + + rv = session_process_headers_frame(session); +@@ -5590,8 +5591,8 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + } + + if (rv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) { +- rv = nghttp2_session_add_rst_stream( +- session, iframe->frame.hd.stream_id, NGHTTP2_INTERNAL_ERROR); ++ rv = session_handle_invalid_stream2( ++ session, iframe->frame.hd.stream_id, NULL, NGHTTP2_ERR_INTERNAL); + if (nghttp2_is_fatal(rv)) { + return rv; + } +@@ -6044,6 +6045,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + if (nghttp2_is_fatal(rv)) { + return rv; + } ++ ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } + } + } + +@@ -6107,8 +6112,8 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + } + + if (rv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) { +- rv = nghttp2_session_add_rst_stream( +- session, iframe->frame.hd.stream_id, NGHTTP2_INTERNAL_ERROR); ++ rv = session_handle_invalid_stream2( ++ session, iframe->frame.hd.stream_id, NULL, NGHTTP2_ERR_INTERNAL); + if (nghttp2_is_fatal(rv)) { + return rv; + } +@@ -6191,9 +6196,9 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + } + + if (rv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) { +- rv = nghttp2_session_add_rst_stream( +- session, iframe->frame.push_promise.promised_stream_id, +- NGHTTP2_INTERNAL_ERROR); ++ rv = session_handle_invalid_stream2( ++ session, iframe->frame.push_promise.promised_stream_id, NULL, ++ NGHTTP2_ERR_INTERNAL); + if (nghttp2_is_fatal(rv)) { + return rv; + } +@@ -6296,6 +6301,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + session_inbound_frame_reset(session); + + break; +@@ -6371,12 +6380,12 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + iframe->payloadleft -= hd_proclen; + + /* Use promised stream ID for PUSH_PROMISE */ +- rv = nghttp2_session_add_rst_stream( ++ rv = session_handle_invalid_stream2( + session, + iframe->frame.hd.type == NGHTTP2_PUSH_PROMISE + ? iframe->frame.push_promise.promised_stream_id + : iframe->frame.hd.stream_id, +- NGHTTP2_INTERNAL_ERROR); ++ NULL, NGHTTP2_ERR_INTERNAL); + if (nghttp2_is_fatal(rv)) { + return rv; + } +@@ -6423,6 +6432,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + if (nghttp2_is_fatal(rv)) { + return rv; + } ++ ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } + } + session_inbound_frame_reset(session); + +@@ -6598,6 +6611,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + if (nghttp2_is_fatal(rv)) { + return rv; + } ++ ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } + } else { + iframe->state = NGHTTP2_IB_IGN_HEADER_BLOCK; + } +@@ -6648,6 +6665,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + if (nghttp2_is_fatal(rv)) { + return rv; + } ++ ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } + } + + busy = 1; +@@ -6720,6 +6741,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + data_readlen = + inbound_frame_effective_readlen(iframe, iframe->payloadleft, readlen); + +@@ -6749,41 +6774,30 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + if (data_readlen > 0) { + if (session_enforce_http_messaging(session)) { + if (nghttp2_http_on_data_chunk(stream, (size_t)data_readlen) != 0) { +- if (session->opt_flags & NGHTTP2_OPTMASK_NO_AUTO_WINDOW_UPDATE) { +- /* Consume all data for connection immediately here */ +- rv = session_update_connection_consumed_size( +- session, (size_t)data_readlen); +- +- if (nghttp2_is_fatal(rv)) { +- return rv; +- } +- +- if (iframe->state == NGHTTP2_IB_IGN_DATA) { +- return (nghttp2_ssize)inlen; +- } +- } +- +- rv = nghttp2_session_add_rst_stream( +- session, iframe->frame.hd.stream_id, NGHTTP2_PROTOCOL_ERROR); ++ rv = nghttp2_session_terminate_session(session, ++ NGHTTP2_PROTOCOL_ERROR); + if (nghttp2_is_fatal(rv)) { + return rv; + } +- busy = 1; +- iframe->state = NGHTTP2_IB_IGN_DATA; +- break; ++ ++ return (nghttp2_ssize)inlen; + } + } + if (session->callbacks.on_data_chunk_recv_callback) { + rv = session->callbacks.on_data_chunk_recv_callback( + session, iframe->frame.hd.flags, iframe->frame.hd.stream_id, + in - readlen, (size_t)data_readlen, session->user_data); +- if (rv == NGHTTP2_ERR_PAUSE) { +- return (nghttp2_ssize)(in - first); +- } +- + if (nghttp2_is_fatal(rv)) { + return NGHTTP2_ERR_CALLBACK_FAILURE; + } ++ ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ ++ if (rv == NGHTTP2_ERR_PAUSE) { ++ return (nghttp2_ssize)(in - first); ++ } + } + } + } +@@ -6797,6 +6811,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + session_inbound_frame_reset(session); + + break; +@@ -6863,6 +6881,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + if (rv != 0) { + busy = 1; + +@@ -6881,6 +6903,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + session_inbound_frame_reset(session); + + break; +@@ -6909,6 +6935,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session, + return rv; + } + ++ if (iframe->state == NGHTTP2_IB_IGN_ALL) { ++ return (nghttp2_ssize)inlen; ++ } ++ + session_inbound_frame_reset(session); + + break; +-- +2.53.0 + diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 8b026bb82f1537d476e9266ece01f26f57fd8936..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# nodejs24 - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index d0b257937f8735603bb8cd296236c69901bffeaa..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# nodejs24 - -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/btest402.js b/btest402.js new file mode 100644 index 0000000000000000000000000000000000000000..277319cdccaffc11917b10d338ea3613604fd8c7 --- /dev/null +++ b/btest402.js @@ -0,0 +1,151 @@ +// Copyright (C) 2014 IBM Corporation and Others. All Rights Reserved. +// This file is part of the Node.JS ICU enablement work +// https://github.com/joyent/node/pull/7719 +// and is under the same license. +// +// This is a very, very, very basic test of es402 +// +// URL: https://github.com/srl295/btest402 +// Author: Steven R. Loomis +// +// for a complete test, see http://test262.ecmascript.org +// +// Usage: node btest402.js + +try { + console.log("You have console.log."); +} catch(e) { + // this works on d8 + console = { log: print }; + console.log("Now you have console.log."); +} + +function runbtest() { + var summary = {}; + + try { + var i = Intl; + summary.haveIntl = true; + console.log("+ Congrats, you have the Intl object."); + } catch(e) { + console.log("You don't have the Intl object: " + e); + } + + if(summary.haveIntl) { + var locs = [ "en", "mt", "ja","tlh"]; + var d = new Date(196400000); + for ( var n=0; n 0 ) { + lsummary.haveSlo = true; + } + } catch (e) { + console.log("SLO err: " + e); + } + var dstr = "ERR"; + try { + lsummary.dstr = d.toLocaleString(loc,{month: "long",day:"numeric",weekday:"long",year:"numeric"}); + console.log(" date: (supported:"+sl+") " + lsummary.dstr); + } catch (e) { + console.log(" Date Format err: " + e); + } + try { + new Intl.v8BreakIterator(); + console.log(" Intl.v8BreakIterator:" + + Intl.v8BreakIterator.supportedLocalesOf(loc) + " Supported, first()==" + + new Intl.v8BreakIterator(loc).first() ); + lsummary.brkOk = true; + } catch ( e) { + console.log(" Intl.v8BreakIterator error (NOT part of EcmaScript402): " + e); + } + console.log(); + } + } + + // print summary + console.log(); + console.log("--------- Analysis ---------"); + stxt = ""; + if( summary.haveIntl ) { + console.log("* You have the 'Intl' object. Congratulations! You have the possibility of being EcmaScript 402 compliant."); + stxt += "Have Intl, "; + + if ( !summary.en.haveSlo ) { + stxt += "Date:no EN, "; + console.log("* English isn't a supported language by the date formatter. Perhaps the data isn't installed properly?"); + } + if ( !summary.tlh.haveSlo ) { + stxt += "Date:no 'tlh', "; + console.log("* Klingon isn't a supported language by the date formatter. It is without honor!"); + } + // now, what is it actually saying + if( summary.en.dstr.indexOf("1970") == -1) { + stxt += "Date:bad 'en', "; + console.log("* the English date format text looks bad to me. Doesn't even have the year."); + } else { + if( summary.en.dstr.indexOf("Jan") == -1) { + stxt += "Date:bad 'en', "; + console.log("* The English date format text looks bad to me. Doesn't have the right month."); + } + } + + if( summary.mt.dstr == summary.en.dstr ) { + stxt += "Date:'mt'=='en', "; + console.log("* The English and Maltese look the same to me. Probably a 'small' build."); + } else if( summary.mt.dstr.indexOf("1970") == -1) { + stxt += "Date:bad 'mt', "; + console.log("* the Maltese date format text looks bad to me. Doesn't even have the year. (This data is missing from the Chromium ICU build)"); + } else { + if( summary.mt.dstr.indexOf("Jann") == -1) { + stxt += "Date:bad 'mt', "; + console.log("* The Maltese date format text looks bad to me. Doesn't have the right month. (This data is missing from the Chromium ICU build)"); + } + } + + if ( !summary.ja.haveSlo ) { + stxt += "Date:no 'ja', "; + console.log("* Japanese isn't a supported language by the date formatter. Could be a 'small' build."); + } else { + if( summary.ja.dstr.indexOf("1970") == -1) { + stxt += "Date:bad 'ja', "; + console.log("* the Japanese date format text looks bad to me. Doesn't even have the year."); + } else { + if( summary.ja.dstr.indexOf("日") == -1) { + stxt += "Date:bad 'ja', "; + console.log("* The Japanese date format text looks bad to me."); + } + } + } + if ( summary.en.brkOk ) { + stxt += "FYI: v8Brk:have 'en', "; + console.log("* You have Intl.v8BreakIterator support. (Note: not part of ES402.)"); + } + } else { + console.log("* You don't have the 'Intl' object. You aren't EcmaScript 402 compliant."); + stxt += " NO Intl. "; + } + + // 1-liner. + console.log(); + console.log("----------------"); + console.log( "SUMMARY:" + stxt ); +} + +var dorun = true; + +try { + if(btest402_noautorun) { + dorun = false; + } +} catch(e) {} + +if(dorun) { + console.log("Running btest.."); + runbtest(); +} diff --git a/build-sources.sh b/build-sources.sh new file mode 100755 index 0000000000000000000000000000000000000000..ed184053d7eacea3314bd9d91b4a824694980483 --- /dev/null +++ b/build-sources.sh @@ -0,0 +1,273 @@ +#!/bin/bash +# build-sources.sh – Prepare sources and print bundled dep versions for nodejs24 OCS packaging. +# +# Usage: +# sh build-sources.sh [VERSION] +# +# If VERSION is omitted, it is read from the spec file in the current directory. +# +# What it does: +# 1. Download node-v.tar.gz from nodejs.org and verify its SHA256. +# 2. Strip deps/openssl (cannot be shipped) and repack as node-v-stripped.tar.gz. +# 3. Read ICU version from the source tree and download icu4c-*.zip data files. +# 4. Print all bundled dependency versions for you to verify against nodejs24.spec. +# Then optionally auto-fill the spec. +# +# Dependencies: bash, wget or curl, sha256sum, tar, jq, grep (Perl-regex), sed, python3 +set -euo pipefail + +# --------------------------------------------------------------------------- +# Argument handling +# --------------------------------------------------------------------------- +VERSION="${1:-}" +if [ -z "${VERSION}" ]; then + if compgen -G "nodejs*.spec" > /dev/null; then + VERSION=$(rpm -q --specfile --qf='%{version}\n' nodejs*.spec 2>/dev/null | head -n1 || true) + fi +fi +if [ -z "${VERSION}" ]; then + echo "Usage: $0 " >&2 + echo " Example: $0 24.14.1" >&2 + exit 1 +fi + +BASENAME="node-v${VERSION}" +BASEURL="https://nodejs.org/dist/v${VERSION}" + +log() { printf '\n## %s\n' "$*"; } + +# --------------------------------------------------------------------------- +# Step 1: Download and verify the upstream tarball +# --------------------------------------------------------------------------- +log "Downloading and verifying ${BASENAME}.tar.gz" +if command -v curl &>/dev/null; then + curl -# --remote-name "${BASEURL}/${BASENAME}.tar.gz" + # Download SHASUMS256.txt as a local file first, then verify + # (piping into sha256sum --check is unreliable on some distros) + curl -s -o SHASUMS256.txt "${BASEURL}/SHASUMS256.txt" +else + wget -q -O SHASUMS256.txt "${BASEURL}/SHASUMS256.txt" + wget -c "${BASEURL}/${BASENAME}.tar.gz" +fi +# Verify: grep out just the line for our tarball and check it +EXPECTED_LINE=$(grep " ${BASENAME}.tar.gz$" SHASUMS256.txt || true) +if [ -z "${EXPECTED_LINE}" ]; then + echo "ERROR: ${BASENAME}.tar.gz not found in SHASUMS256.txt" >&2 + echo " (Server may have returned an error page; check the URL: ${BASEURL}/SHASUMS256.txt)" >&2 + exit 1 +fi +echo "${EXPECTED_LINE}" | sha256sum --check - +rm -f SHASUMS256.txt + +# --------------------------------------------------------------------------- +# Step 2: Strip deps/openssl and repack +# --------------------------------------------------------------------------- +log "Repackaging into ${BASENAME}-stripped.tar.gz (removing deps/openssl)" +rm -rf "${BASENAME}" +tar -xzf "${BASENAME}.tar.gz" +rm -f "${BASENAME}.tar.gz" +rm -rf "${BASENAME}/deps/openssl" +tar -czf "${BASENAME}-stripped.tar.gz" "${BASENAME}" +log "Created ${BASENAME}-stripped.tar.gz" + +# --------------------------------------------------------------------------- +# Step 3: Download ICU data files +# +# ICU 78+: URL uses dot separators: release-78.2/icu4c-78.2-data-bin-l.zip +# ICU 77-: URL uses dash/underscore: release-77-1/icu4c-77_1-data-bin-l.zip +# The format is auto-detected from tools/icu/current_ver.dep. +# --------------------------------------------------------------------------- +log "Detecting ICU version" +ICU_URL=$(jq -r '.[0].url' "${BASENAME}/tools/icu/current_ver.dep") + +# Detect format: URLs ending in "release-X.Y/..." use dots; "release-X-Y/..." use dashes +if echo "${ICU_URL}" | grep -qP 'release-\d+\.\d+'; then + # ICU 78+ format: release-78.2 / icu4c-78.2-data-bin-l.zip + ICU_MAJOR=$(echo "${ICU_URL}" | grep -oP '(?<=release-)\d+(?=\.\d+)') + ICU_MINOR=$(echo "${ICU_URL}" | grep -oP '(?<=release-\d\.)\d+' || \ + echo "${ICU_URL}" | grep -oP 'release-\d+\.\K\d+') + ICU_SEP="." +else + # Legacy format: release-77-1 / icu4c-77_1-data-bin-l.zip + ICU_MAJOR=$(echo "${ICU_URL}" | grep -oP '(?<=release-)\d+(?=-\d+)') + ICU_MINOR=$(echo "${ICU_URL}" | grep -oP '(?<=release-\d+-)\d+') + ICU_SEP="_" +fi + +ICU_VER_DOT="${ICU_MAJOR}.${ICU_MINOR}" +ICU_VER_FILE="${ICU_MAJOR}${ICU_SEP}${ICU_MINOR}" +ICU_RELEASE_TAG="release-${ICU_VER_DOT}" + +ICU_BASE="https://github.com/unicode-org/icu/releases/download/${ICU_RELEASE_TAG}" +ICU_B="icu4c-${ICU_VER_FILE}-data-bin-b.zip" +ICU_L="icu4c-${ICU_VER_FILE}-data-bin-l.zip" + +log "Downloading ICU ${ICU_VER_DOT} data files" +for zip in "${ICU_B}" "${ICU_L}"; do + if [ -f "${zip}" ]; then + echo " Already exists: ${zip} (skipping)" + else + if command -v curl &>/dev/null; then + curl -# -L -O "${ICU_BASE}/${zip}" + else + wget "${ICU_BASE}/${zip}" + fi + fi +done +log "ICU data files ready: ${ICU_B} ${ICU_L}" + +# --------------------------------------------------------------------------- +# Step 4: Print all bundled dependency versions +# --------------------------------------------------------------------------- +log "Bundled dependency versions (compare against spec %global macros)" + +SRC="${BASENAME}" + +extract_c_define() { + local file="$1" define="$2" + # Use awk for robustness: handles any whitespace (spaces/tabs) between tokens + awk -v d="${define}" '$1=="#define" && $2==d {gsub(/"/, "", $3); print $3; exit}' "${file}" +} +extract_c_version() { + local file="$1"; shift + local parts=() + for define in "$@"; do + parts+=("$(grep -oP "(?<=#define ${define} )\d+" "${file}" | head -1)") + done + local IFS='.'; echo "${parts[*]}" +} + +echo +echo "nodejs_soversion (NODE_MODULE_VERSION in src/node_version.h):" +# In Node.js 24+, NODE_MODULE_VERSION may be an alias for NODE_EMBEDDER_MODULE_VERSION. +# Resolve: if the value is not a number, follow the indirection. +_soversion=$(extract_c_define "${SRC}/src/node_version.h" "NODE_MODULE_VERSION" || true) +if echo "${_soversion}" | grep -qP '^\d+$'; then + echo "${_soversion}" +else + # Value is a macro reference – resolve it + _soversion2=$(extract_c_define "${SRC}/src/node_version.h" "${_soversion}" || true) + if [ -n "${_soversion2}" ]; then + echo "${_soversion2} (resolved from: ${_soversion})" + else + echo " WARNING: could not resolve soversion; raw value was: ${_soversion}" + fi +fi + +echo +echo "v8 (deps/v8/include/v8-version.h):" +extract_c_version "${SRC}/deps/v8/include/v8-version.h" \ + V8_MAJOR_VERSION V8_MINOR_VERSION V8_BUILD_NUMBER V8_PATCH_LEVEL + +echo +echo "ada (deps/ada/ada.h):" +extract_c_define "${SRC}/deps/ada/ada.h" "ADA_VERSION" + +echo +echo "brotli (deps/brotli/c/common/version.h):" +if [ -f "${SRC}/deps/brotli/c/common/version.h" ]; then + extract_c_version "${SRC}/deps/brotli/c/common/version.h" \ + BROTLI_VERSION_MAJOR BROTLI_VERSION_MINOR BROTLI_VERSION_PATCH +else + echo " (deps/brotli not present – de-vendored / already stripped)" +fi + +echo +echo "c-ares (deps/cares/include/ares_version.h):" +extract_c_define "${SRC}/deps/cares/include/ares_version.h" "ARES_VERSION_STR" + +echo +echo "histogram (deps/histogram/include/hdr/hdr_histogram_version.h):" +extract_c_define "${SRC}/deps/histogram/include/hdr/hdr_histogram_version.h" "HDR_HISTOGRAM_VERSION" + +echo +echo "icu (tools/icu/current_ver.dep):" +echo " ${ICU_VER_DOT}" + +echo +echo "libuv (deps/uv/include/uv/version.h):" +extract_c_version "${SRC}/deps/uv/include/uv/version.h" \ + UV_VERSION_MAJOR UV_VERSION_MINOR UV_VERSION_PATCH + +echo +echo "llhttp (deps/llhttp/include/llhttp.h):" +extract_c_version "${SRC}/deps/llhttp/include/llhttp.h" \ + LLHTTP_VERSION_MAJOR LLHTTP_VERSION_MINOR LLHTTP_VERSION_PATCH + +echo +echo "nghttp2 (deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h) [NOTE: will be patched to 1.68.1 by Patch0003]:" +extract_c_define "${SRC}/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h" "NGHTTP2_VERSION" + +echo +echo "nghttp3 (deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h):" +extract_c_define "${SRC}/deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h" "NGHTTP3_VERSION" + +echo +echo "ngtcp2 (deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h):" +extract_c_define "${SRC}/deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h" "NGTCP2_VERSION" + +echo +echo "merve (deps/merve/merve.h) [replaces cjs-module-lexer in Node.js 24]:" +if [ -f "${SRC}/deps/merve/merve.h" ]; then + extract_c_define "${SRC}/deps/merve/merve.h" "MERVE_VERSION" +else + echo " (file not found – check if dep name changed)" +fi + +echo +echo "punycode (lib/punycode.js):" +grep -oP "'version': '\K[^']+" "${SRC}/lib/punycode.js" | head -1 + +echo +echo "undici (deps/undici/src/package.json):" +jq -r '.version' "${SRC}/deps/undici/src/package.json" + +echo +echo "npm (deps/npm/package.json):" +jq -r '.version' "${SRC}/deps/npm/package.json" + +echo +echo "sqlite (deps/sqlite/sqlite3.h):" +# SQLITE_VERSION "3.x.y" format – use flexible pattern and guard against grep failure +grep -m1 -oP '#define SQLITE_VERSION\s+"\K[^"]+' \ + "${SRC}/deps/sqlite/sqlite3.h" 2>/dev/null || \ +grep -m1 -oP '(?<=#define SQLITE_VERSION )"[^"]+"' \ + "${SRC}/deps/sqlite/sqlite3.h" 2>/dev/null | tr -d '"' || \ +echo " (could not extract – check ${SRC}/deps/sqlite/sqlite3.h manually)" + +echo +echo "uvwasi (deps/uvwasi/include/uvwasi.h):" +extract_c_version "${SRC}/deps/uvwasi/include/uvwasi.h" \ + UVWASI_VERSION_MAJOR UVWASI_VERSION_MINOR UVWASI_VERSION_PATCH || \ +echo " (could not extract)" + +echo +echo "zlib (deps/zlib/zlib.h):" +extract_c_define "${SRC}/deps/zlib/zlib.h" "ZLIB_VERSION" || \ +echo " (could not extract)" + +echo +echo "simdutf:" +if [ -f "${SRC}/deps/simdutf/simdutf.h" ]; then + extract_c_define "${SRC}/deps/simdutf/simdutf.h" "SIMDUTF_VERSION" || echo " (could not extract)" +else + echo " (NOT PRESENT – removed from Node.js 24, no bundled(simdutf) Provides needed)" +fi + +# --------------------------------------------------------------------------- +# Step 5: Optionally auto-fill spec file +# --------------------------------------------------------------------------- +log "Done. Files created:" +echo " ${BASENAME}-stripped.tar.gz" +echo " ${ICU_B}" +echo " ${ICU_L}" + +echo +echo "--------------------------------------------------------------" +echo "Update nodejs24.spec manually with the versions printed above," +echo "then add SHA512 entries to 'sources':" +echo " sha512sum ${BASENAME}-stripped.tar.gz ${ICU_B} ${ICU_L}" +echo "--------------------------------------------------------------" + +# Cleanup extracted source tree +rm -rf "${BASENAME}" diff --git a/fill-versions.sh b/fill-versions.sh new file mode 100755 index 0000000000000000000000000000000000000000..3839e9f7cf35c307582ad449f45da8facab7f634 --- /dev/null +++ b/fill-versions.sh @@ -0,0 +1,184 @@ +#!/bin/bash +set -e + +usage() { + echo "$(basename "$0")" '' '' + echo Fill versions between BEGIN/END automatic-version-macros in the spec file. +} + +# Format version information in unified style +# usage: format_version [macro options…] +format_version() { + local -r component="${1?No component named!}" && shift + local -r srcpath="${1?No version source specified!}" && shift + local -r version="${1?No version specified}" && shift + + printf '# Version from %s\n' "${srcpath}" + printf '%%nodejs_define_version %s %s%s%s\n' "${component}" "${version}" "${*:+ }" "${*}" +} + +# Find concrete path to the requested file within unpacked source tree. +# usage: find_source_path +find_source_path() { + local -r path_tail="${1?No source path specified!}" + + # currently just verify that the expected path exists + if test -r node-v*/"${path_tail}" + then + printf '%s\n' "${_}" + else + printf >&2 'Path does not exist: %s\n' "${_}" + return 1 + fi +} + +# "Meta"-extraction function. +# Finds the actual source file, extracts the version as specified, +# and outputs properly formatted macro on stdout. +# usage: find_version [extractor_fn_opts]… +# arguments: +# component: name of the vendored component +# source_path: path to the version information source, relative to the root of the extracted tree +# macro_opts: options for %nodejs_define_version macro; use empty string ('') if none shall be used +# extractor_fn: name of the function responsible for extraction of the version string. +# expected signature: extractor_fn [options]… +# extractor_fn_opts: additional options to pass to extractor_fn after source_path +find_version() { + local -r component="${1?No component specified!}" && shift + local -r srcpath="${1?No version source path specified!}" && shift + local -r macro_opts="${1?No %nodejs_define_version macro options specified!}" && shift + local -r extract_fn="${1?No extraction function specified!}" && shift + + local full_source_path version_string + full_source_path="$(find_source_path "${srcpath}")" + version_string="$("${extract_fn}" "${full_source_path}" "$@")" + format_version "${component}" "${full_source_path}" "${version_string}" "${macro_opts}" +} + +# The extraction functions (extractor_fn above) follows. Add to them as necessary. + +# Extract version string from a C #define directive. +# If provided more than one define name, it is assumed these define the version components, +# and they will all be concatenated with a dot. +# usage: version_from_c_define
… +version_from_c_define() { + local -r path="${1?No C header provided!}" && shift + + while test "$#" -gt 0; do + local name="${1}"; shift + # grab either a single numeric component (\d+) + # or a single quoted string (".*?") + # after a #define statement + local regexp="(?<=#define ${name})\s+(\d+|\".*?\")" + + grep --only-matching --perl-regexp "${regexp}" "${path}" \ + | sed -E 's|^[[:space:]"]*||;s|"$||' \ + | if test "$#" -gt 0 # not the last part + then tr '\n' '.' # turn line end into separator dot + else cat # leave as is + fi + done +} + +# Extract version from package.json or similar file +# usage: version_from_json [jq_filter] +# jq_filter defaults to .version +version_from_json() { + local -r path="${1?No JSON path provided!}" && shift + local -r filter="${1-.version}" && shift + + jq --raw-output "${filter}" "${path}" +} + +# There always is a special case. Don't be afraid to use one-off extractor functions. +parse_isu_version() { + local -r path="${1?No ICU metadata JSON path provided!}" + + version_from_json "${path}" '.[0].url' \ + | sed -E 's/.*release-([[:digit:]]+).([[:digit:]]+).*/\1.\2/g' +} +parse_punycode_version() { + local -r path="${1?No punycode.js path provided!}" + + # Fragile, but I could come up with nothing better yet. + grep --only-matching --perl-regexp \ + "(?<='version': )'\d+\.\d+\.\d+'" "${path}" \ + | tr -d "'" +} +parse_npm_version() { + # NPM was originally a separate package using epoch; we need to keep it + local -r NPM_EPOCH=1 + # NPM is a subpackage with it's own version. Use always-increasing release macro + local -r NPM_RELEASE='%{nodejs_subpackage_release}' + + local -r path="${1?No path to npm package.json provided!}" + + printf '%d:%s-%s\n' "${NPM_EPOCH}" "$(version_from_json "${path}")" "${NPM_RELEASE}" +} +parse_v8_version() { + # v8 was originally a separate package using epoch; we need to keep it + local -r V8_EPOCH=3 + # v8 is a subpackage with it's own version. Use always-increasing release macro + local -r V8_RELEASE='%{nodejs_subpackage_release}' + + local -r path="${1?No path to v8 version header provided!}" + + printf '%d:%s-%s\n' \ + "${V8_EPOCH}" \ + "$(version_from_c_define "${path}" V8_{MAJOR,MINOR}_VERSION V8_BUILD_NUMBER V8_PATCH_LEVEL)" \ + "${V8_RELEASE}" +} + +# Main script +# =========== + +readonly SPEC="$1" TARBALL="$2" +if test -z "${SPEC}"; then echo 'Missing SPEC path!' >&2; usage >&2; exit 1; fi +if test -z "${TARBALL}"; then echo 'Missing TARBALL path!' >&2; usage >&2; exit 1; fi +readonly NEW_SPEC="${SPEC}.new" + +# Start with a clean source tree +rm -rf node-v*/ && tar -xzf "${TARBALL}" + +# Redirect standard output to working copy of the current spec file +exec 3>&1 1>"${NEW_SPEC}" + +# Copy SPEC file up to the BEGIN marker +sed -E '/^#\s*BEGIN automatic-version-macros/q' "${SPEC}" + +# Output libnode.so soname version +soversion_source="$(find_source_path src/node_version.h)" +printf '# Version from %s\n' "${soversion_source}" +printf '%%global node_soversion %s\n' "$(version_from_c_define "${soversion_source}" NODE_MODULE_VERSION)" + +echo + +# Output all the dependency versions. Try to keep them in alphabetical order + +find_version ada deps/ada/ada.h '' version_from_c_define ADA_VERSION +find_version brotli deps/brotli/c/common/version.h '' version_from_c_define BROTLI_VERSION_{MAJOR,MINOR,PATCH} +find_version c_ares deps/cares/include/ares_version.h '' version_from_c_define ARES_VERSION_STR +find_version histogram deps/histogram/include/hdr/hdr_histogram_version.h '' version_from_c_define HDR_HISTOGRAM_VERSION +find_version icu tools/icu/current_ver.dep -p parse_isu_version +find_version libuv deps/uv/include/uv/version.h '' version_from_c_define UV_VERSION_{MAJOR,MINOR,PATCH} +find_version llhttp deps/llhttp/include/llhttp.h '' version_from_c_define LLHTTP_VERSION_{MAJOR,MINOR,PATCH} +find_version nghttp2 deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h '' version_from_c_define NGHTTP2_VERSION +find_version nghttp3 deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h '' version_from_c_define NGHTTP3_VERSION +find_version ngtcp2 deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h '' version_from_c_define NGTCP2_VERSION +find_version merve deps/merve/merve.h '' version_from_c_define MERVE_VERSION +find_version nodejs-punycode lib/punycode.js '' parse_punycode_version +find_version nodejs-undici deps/undici/src/package.json '' version_from_json +find_version npm deps/npm/package.json '' parse_npm_version +find_version sqlite deps/sqlite/sqlite3.h '' version_from_c_define SQLITE_VERSION +find_version uvwasi deps/uvwasi/include/uvwasi.h '' version_from_c_define UVWASI_VERSION_{MAJOR,MINOR,PATCH} +find_version v8 deps/v8/include/v8-version.h -p parse_v8_version +find_version zlib deps/zlib/zlib.h '' version_from_c_define ZLIB_VERSION + +# Copy rest of the spec file from the END marker till the end +sed -nE '/^#\s*END automatic-version-macros/,$p' "${SPEC}" + +# Restore standard output +exec 1>&3 3>&- + +# Replace the old spec with the updated one +mv "${NEW_SPEC}" "${SPEC}" diff --git a/nodejs.pc.in b/nodejs.pc.in new file mode 100644 index 0000000000000000000000000000000000000000..a699363223ba6614c6d8d8ee646794492c55cc00 --- /dev/null +++ b/nodejs.pc.in @@ -0,0 +1,9 @@ +prefix=@PREFIX@ +includedir=@INCLUDEDIR@ +libdir=@LIBDIR@ + +Name: @PKGCONFNAME@ +Description: JavaScript Runtime +Version: @NODEJS_VERSION@ +Libs: -L${libdir} -lnodejs +Cflags: -I${includedir}/node diff --git a/nodejs24.spec b/nodejs24.spec new file mode 100644 index 0000000000000000000000000000000000000000..1a1b9fe65ba82e94c05440a8766e35edc0e574fb --- /dev/null +++ b/nodejs24.spec @@ -0,0 +1,607 @@ +%bcond_without bootstrap +%bcond_without bundled_merve +%bcond_without bundled_undici +%bcond_with bundled_zlib +%if %{with bootstrap} +%bcond_without bundled_sqlite +%else +%bcond_with bundled_sqlite +%endif +%if %{with bootstrap} +%bcond_without bundled +%else +%bcond_with bundled +%endif + +# LTO is currently broken on Node.js builds +%define _lto_cflags %{nil} + +# Heavy-handed approach to avoiding issues with python +# bytecompiling files in the node_modules/ directory +%global __python %{python3} + +%global nodejs_default_sitelib %{_prefix}/lib/node_modules +%global nodejs_private_sitelib %{nodejs_default_sitelib}_%{nodejs_major} + +%{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} + + +%global nodejs_major 24 +%global nodejs_minor 14 +%global nodejs_patch 0 +# nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h +%global nodejs_soversion 137 +%global nodejs_abi %{nodejs_soversion} +%global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} +%global nodejs_datadir %{_datarootdir}/node-%{nodejs_major} +%global pkgname nodejs24 + +# v8 - from deps/v8/include/v8-version.h +%global v8_major 13 +%global v8_minor 6 +%global v8_build 233 +%global v8_patch 17 +%global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} + +# zlib - from deps/zlib/zlib.h +%global zlib_version 1.3.1 + +# c-ares - from deps/cares/include/ares_version.h +%global c_ares_version 1.34.6 + +# llhttp - from deps/llhttp/include/llhttp.h +%global llhttp_version 9.3.0 + +# libuv - from deps/uv/include/uv/version.h +%global libuv_version 1.51.0 + +# nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h (post downstream patch) +%global nghttp2_version 1.68.1 + +# nghttp3 - from deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h +%global nghttp3_version 1.6.0 + +# ngtcp2 from deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h +%global ngtcp2_version 1.11.0 + +# ICU - from tools/icu/current_ver.dep +%global icu_major 78 +%global icu_minor 2 +%global icu_version %{icu_major}.%{icu_minor} + +%global icudatadir %{nodejs_datadir}/icudata +%{!?little_endian: %global little_endian %(%{python3} -c "import sys;print (0 if sys.byteorder=='big' else 1)")} +# " this line just fixes syntax highlighting for vim that is confused by the above and continues literal + +# ada - from deps/ada/ada.h +%global ada_version 3.4.2 + +# OpenSSL minimum version +%global openssl30_minimum 3.0.2 + +%global openssl_fips_configure --openssl-is-fips +%global ssl_configure --shared-openssl --openssl-conf-name=openssl_conf %{openssl_fips_configure} + +# dtrace is not supported on Node.js 19+ +%global dtrace_configure %{nil} + +# punycode - from lib/punycode.js +%global punycode_version 2.1.0 + +# npm - from deps/npm/package.json +%global npm_version 11.9.0 + +# merve - replaces cjs-module-lexer in Node.js 24 +%global merve_version 1.0.0 + +# undici - from deps/undici/src/package.json +%global undici_version 7.21.0 + +# uvwasi - from deps/uvwasi/include/uvwasi.h +%global uvwasi_version 0.0.23 + +# histogram_c - from deps/histogram/include/hdr/hdr_histogram_version.h +%global histogram_version 0.11.9 + +# sqlite – from deps/sqlite/sqlite3.h +%global sqlite_version 3.51.2 + +Summary: JavaScript runtime +Name: nodejs%{nodejs_major} +Version: %{nodejs_version} +Release: 1%{?dist} +%global nodejs_release %{release} +%global nodejs_envr %{nodejs_version}-%{nodejs_release} +%global npm_release %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release} +%global npm_envr %{npm_version}-%{npm_release} +%global v8_release %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release} + +License: Apache-2.0 AND Artistic-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BlueOak-1.0.0 AND CC-BY-3.0 AND CC0-1.0 AND ISC AND MIT +Group: Development/Languages +URL: http://nodejs.org/ +Source0: node-v%{nodejs_version}-stripped.tar.gz +Source2: btest402.js +# The binary data that icu-small can use to get icu-full capability +Source3: https://github.com/unicode-org/icu/releases/download/release-%{icu_version}/icu4c-%{icu_version}-data-bin-b.zip +Source4: https://github.com/unicode-org/icu/releases/download/release-%{icu_version}/icu4c-%{icu_version}-data-bin-l.zip +# remove openssl bundle from the tarball +Source200: build-sources.sh +Source201: npmrc.in +Source202: nodejs.pc.in +Source203: v8.pc.in +Source204: nodejs_abi.req.in +Source205: nodejs_abi.attr.in +Patch3000: 0001-Remove-unused-OpenSSL-config.patch +Patch3001: 0002-Disable-FIPS-options.patch +Patch3002: 0003-downstream-update-nghttp2-to-1.68.1.patch + +ExclusiveArch: %{nodejs_arches} + +BuildRequires: make gcc >= 10.0 gcc-c++ >= 10.0 +BuildRequires: pkgconf +BuildRequires: jq +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-jinja2 +BuildRequires: brotli-devel +BuildRequires: nodejs-packaging +BuildRequires: chrpath +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: unzip +BuildRequires: openssl >= %{openssl30_minimum} +BuildRequires: openssl-devel >= %{openssl30_minimum} + +Requires: ca-certificates +Requires: %{pkgname}-libs = %{nodejs_envr} + +Provides: bundled(nghttp2) = %{nghttp2_version} +Provides: bundled(nghttp3) = %{nghttp3_version} +Provides: bundled(ngtcp2) = %{ngtcp2_version} +Provides: bundled(llhttp) = %{llhttp_version} +Provides: nodejs(abi) = %{nodejs_abi} +Provides: nodejs(abi%{nodejs_major}) = %{nodejs_abi} +Provides: nodejs(engine) = %{nodejs_version} +Provides: nodejs-punycode = %{punycode_version} +Provides: npm(punycode) = %{punycode_version} +# Node.js has forked c-ares from upstream in an incompatible way +Provides: bundled(c-ares) = %{c_ares_version} +Provides: bundled(v8) = %{v8_version} +Provides: bundled(icu) = %{icu_version} +Provides: bundled(uvwasi) = %{uvwasi_version} +Provides: bundled(histogram) = %{histogram_version} +Provides: bundled(ada) = %{ada_version} + +Recommends: %{pkgname}-docs = %{nodejs_envr} +Recommends: %{pkgname}-full-i18n = %{nodejs_envr} +Recommends: %{pkgname}-npm >= %{npm_envr} + +# Node.js currently has a conflict with the 'node' package from ham-radio group +Conflicts: node <= 0.3.2-12 + +%if %{with bundled_zlib} +Provides: bundled(zlib) = %{zlib_version} +%else +BuildRequires: zlib-devel +%endif + +%if %{with bundled_sqlite} +Provides: bundled(sqlite) = %{sqlite_version} +%else +BuildRequires: pkgconfig(sqlite3) >= 3.45.0 +%endif + +%if %{with bundled} +Provides: bundled(libuv) = %{libuv_version} +%else +BuildRequires: libuv-devel >= %{libuv_version} +Requires: libuv >= %{libuv_version} +%endif + +%if %{with bundled_merve} +Provides: bundled(nodejs-merve) = %{merve_version} +%else +BuildRequires: nodejs-merve +Requires: nodejs-merve +%endif + +%if %{with bundled_undici} +Provides: bundled(nodejs-undici) = %{undici_version} +%else +BuildRequires: nodejs-undici +Requires: nodejs-undici +%endif + +%description +Node.js is a platform built on Chrome's JavaScript runtime \ +for easily building fast, scalable network applications. \ +Node.js uses an event-driven, non-blocking I/O model that \ +makes it lightweight and efficient, perfect for data-intensive \ +real-time applications that run across distributed devices. + + +%package -n %{pkgname}-devel +Summary: JavaScript runtime - development headers +Group: Development/Languages +Requires: %{pkgname} = %{nodejs_envr} +Requires: %{pkgname}-libs = %{nodejs_envr} +Requires: openssl-devel +Requires: brotli-devel +Requires: nodejs-packaging +%if !%{with bundled_zlib} +Requires: zlib-devel +%endif +%if %{without bundled} +Requires: libuv-devel +%endif +Provides: alternative-for(nodejs-devel) = %{nodejs_envr} +Conflicts: alternative-for(nodejs-devel) +Conflicts: nodejs-devel-pkg + +%description -n %{pkgname}-devel +Development headers for the Node.js JavaScript runtime. + +%package -n %{pkgname}-libs +Summary: Node.js and v8 libraries + +Provides: libv8.so.%{v8_major}()(64bit) = %{v8_version} +Provides: libv8_libbase.so.%{v8_major}()(64bit) = %{v8_version} +Provides: libv8_libplatform.so.%{v8_major}()(64bit) = %{v8_version} +Provides: v8 = %{v8_version}-%{nodejs_release} +Provides: nodejs-libs = %{nodejs_envr} + +%description -n %{pkgname}-libs +Libraries to support Node.js and provide stable v8 interfaces. + +%package -n %{pkgname}-full-i18n +Summary: Non-English locale data for Node.js +Requires: %{pkgname} = %{nodejs_envr} + +%description -n %{pkgname}-full-i18n +Optional data files to provide full-icu support for Node.js. Remove this +package to save space if non-English locales are not needed. + + +%package -n v8-%{v8_major}.%{v8_minor}-devel +Summary: v8 - development headers +Version: %{v8_version} +Release: %{v8_release} + +Requires: %{pkgname}-devel = %{nodejs_envr} +Requires: %{pkgname}-libs = %{nodejs_envr} +Provides: v8-devel = %{v8_version}-%{v8_release} +Conflicts: v8-devel +Conflicts: v8-314-devel + +%description -n v8-%{v8_major}.%{v8_minor}-devel +Development headers for the v8 runtime. + + +%package -n %{pkgname}-npm +Summary: Node.js Package Manager +Version: %{npm_version} +Release: %{npm_release} + +Requires: %{pkgname} = %{nodejs_envr} +Recommends: %{pkgname}-docs = %{nodejs_envr} +Provides: npm(npm) = %{npm_version} +Provides: nodejs%{nodejs_major}-npm = %{npm_envr} + +%description -n %{pkgname}-npm +npm is a package manager for node.js. You can use it to install and publish +your node programs. It manages dependencies and does other cool stuff. + + +%package -n %{pkgname}-docs +Summary: Node.js API documentation +Group: Documentation + +BuildArch: noarch + +Requires: %{pkgname} = %{nodejs_envr} +Provides: nodejs-docs = %{nodejs_envr} + +%description -n %{pkgname}-docs +The API documentation for the Node.js JavaScript runtime. + + +%prep +%autosetup -p1 -n node-v%{nodejs_version} + +# remove bundled dependencies that we aren't building +%if !%{with bundled_zlib} +rm -rf deps/zlib +%endif + +rm -rf deps/brotli +rm -rf deps/v8/third_party/jinja2 +rm -rf tools/inspector_protocol/jinja2 + +%if %{without bundled_merve} +rm -rf deps/merve +%endif + +%if %{without bundled_undici} +rm -rf deps/undici +%endif + +%if %{without bundled_sqlite} +rm -rf deps/sqlite +%endif + +# Replace any instances of unversioned python with python3 +pfiles=( $(grep -rl python) ) +%py3_shebang_fix ${pfiles[@]} + + +%build + +# Decrease debuginfo verbosity to reduce memory consumption during final +# library linking +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') + +# V8 compilation requires up to ~2 GB RAM per g++ process; cap parallelism on +# memory-constrained architectures to avoid OOM in koji builders. +%ifarch aarch64 +%global _smp_mflags -j1 +%endif +%ifarch loongarch64 +%global _smp_mflags -j2 +%endif + +export CC='%{__cc}' +export CXX='%{__cxx}' +export NODE_GYP_FORCE_PYTHON=%{python3} +extra_cflags=( + -D_LARGEFILE_SOURCE + -D_FILE_OFFSET_BITS=64 + -DOPENSSL_NO_ENGINE + -DZLIB_CONST + -O3 + -fno-ipa-icf +) +# Highway library treats GCC < 16 as broken and falls back to HWY_SCALAR +# (1 lane), but v8 src/json/json-stringifier.cc requires 16-lane SIMD. +# Force HWY_EMU128 (scalar-based 16-lane emulation). See nodejs/build#4099. +extra_cxxflags=( + "${extra_cflags[@]}" + -DHWY_BROKEN_EMU128=0 +) +export CFLAGS="%{optflags} ${extra_cflags[*]}" CXXFLAGS="%{optflags} ${extra_cxxflags[*]}" +export LDFLAGS="%{build_ldflags}" + +# Fake up the unversioned python executable because gyp calls it from the PATH +mkdir .bin +cwd=$(pwd) +ln -srf /usr/bin/python3 ./.bin/python +export PATH="${cwd}/.bin:$PATH" + +%{python3} configure.py \ + --verbose \ + --ninja \ + --prefix=%{_prefix} \ + --use-prefix-to-find-headers \ + --shared \ + --libdir=%{_lib} \ + %{ssl_configure} \ + %{dtrace_configure} \ + %{!?with_bundled_zlib:--shared-zlib} \ + %{!?with_bundled_merve:--shared-builtin-merve/lexer-path %{nodejs_private_sitelib}/merve/lexer.js} \ + %{!?with_bundled_merve:--shared-builtin-merve/dist/lexer-path %{nodejs_private_sitelib}/merve/dist/lexer.js} \ + %{!?with_bundled_undici:--shared-builtin-undici/undici-path %{nodejs_private_sitelib}/undici/loader.js} \ + %{!?with_bundled_sqlite:--shared-sqlite} \ + --shared-brotli \ + %{!?with_bundled:--shared-libuv} \ + --with-intl=small-icu \ + --with-icu-default-data-dir=%{icudatadir} \ + --without-corepack \ + --openssl-use-def-ca-store + +%ninja_build -C out/Release + + +%install + +# The ninja build does not put the shared library in the expected location, so +# we will move it. +mv out/Release/lib/libnode.so.%{nodejs_soversion} out/Release/ + +./tools/install.py install --dest-dir %{buildroot} --prefix %{_prefix} + +mv %{buildroot}%{nodejs_default_sitelib} \ + %{buildroot}%{nodejs_private_sitelib} + +rm -f %{buildroot}%{_datadir}/systemtap/tapset/node.stp + +chmod 0755 %{buildroot}/%{_bindir}/node +chrpath --delete %{buildroot}%{_bindir}/node + +mv %{buildroot}%{_bindir}/node %{buildroot}%{_bindir}/node-%{nodejs_major} + +readonly NPM_DIR="%{buildroot}%{nodejs_private_sitelib}/npm" +readonly SHEBANG_ERE='^#!/usr/bin/(env\s+)?node\b' +readonly SHEBANG_FIX='#!%{_bindir}/node-%{nodejs_major}' +readonly -a npm_bin_dirs=("${NPM_DIR}/bin" "${NPM_DIR}/node_modules") + +find "${npm_bin_dirs[@]}" -type f \ +| xargs grep --extended-regexp --files-with-matches "${SHEBANG_ERE}" \ +| xargs sed --regexp-extended --in-place "s;${SHEBANG_ERE};${SHEBANG_FIX};" + +for bin in npm npx; do + ln -srf "%{buildroot}%{nodejs_private_sitelib}/npm/bin/${bin}-cli.js" \ + "%{buildroot}%{_bindir}/${bin}-%{nodejs_major}" + rm -f "%{buildroot}%{_bindir}/${bin}" +done + +# Fix shell scripts that call 'node' as command +readonly -a known_shell_scripts=( + "${NPM_DIR}/bin/node-gyp-bin/node-gyp" + "${NPM_DIR}/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp" +) +sed --regexp-extended --in-place 's;\bnode(\s);%{_bindir}/node-%{nodejs_major}\1;' "${known_shell_scripts[@]}" + +# Install library symlink +ln -srf %{buildroot}%{_libdir}/libnode.so.%{nodejs_soversion} \ + %{buildroot}%{_libdir}/libnode.so + +# Install v8 compatibility symlinks +for header in %{buildroot}%{_includedir}/node/libplatform %{buildroot}%{_includedir}/node/v8*.h; do + header=$(basename ${header}) + ln -sf ./node/${header} %{buildroot}%{_includedir}/${header} +done +ln -s ./node/cppgc %{buildroot}%{_includedir}/cppgc + +for soname in libv8 libv8_libbase libv8_libplatform; do + ln -srf %{buildroot}%{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major}.%{v8_minor} + ln -srf %{buildroot}%{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so +done + +mkdir -p %{buildroot}%{_pkgdocdir}/html +cp -pr doc/* %{buildroot}%{_pkgdocdir}/html +rm -f %{buildroot}%{_pkgdocdir}/html/nodejs.1 + +mkdir -p %{buildroot}%{nodejs_datadir} +cp -p common.gypi %{buildroot}%{nodejs_datadir} + +mv %{buildroot}%{_includedir}/node/config.gypi \ + %{buildroot}%{_includedir}/node/config-%{_arch}.gypi + +mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit + +mkdir -p %{buildroot}%{_mandir}/nodejs-%{nodejs_major}/man1 \ + %{buildroot}%{_mandir}/nodejs-%{nodejs_major}/man5 \ + %{buildroot}%{_mandir}/nodejs-%{nodejs_major}/man7 \ + %{buildroot}%{nodejs_default_sitelib}/npm/man \ + %{buildroot}%{nodejs_private_sitelib}/npm/man \ + %{buildroot}%{_pkgdocdir}/npm + +cp -pr deps/npm/man/* \ + %{buildroot}%{_mandir}/nodejs-%{nodejs_major}/ +rm -rf %{buildroot}%{nodejs_private_sitelib}/npm/man +ln -srf %{buildroot}%{_mandir}/nodejs-%{nodejs_major} \ + %{buildroot}%{nodejs_private_sitelib}/npm/man + +mv %{buildroot}%{_mandir}/man1/node.1 \ + %{buildroot}%{_mandir}/nodejs-%{nodejs_major}/man1/ + +cp -pr deps/npm/docs %{buildroot}%{_pkgdocdir}/npm/ +rm -rf %{buildroot}%{nodejs_private_sitelib}/npm/docs +ln -srf %{buildroot}%{_pkgdocdir}/npm %{buildroot}%{nodejs_private_sitelib}/npm/docs + +rm -f %{buildroot}/%{_defaultdocdir}/node/lldb_commands.py \ + %{buildroot}/%{_defaultdocdir}/node/lldbinit + +find %{buildroot}%{nodejs_private_sitelib}/npm \ + -not -path "%{buildroot}%{nodejs_private_sitelib}/npm/bin/*" \ + -executable -type f \ + -exec chmod -x {} \; + +chmod 0755 %{buildroot}%{nodejs_private_sitelib}/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp +chmod 0755 %{buildroot}%{nodejs_private_sitelib}/npm/node_modules/node-gyp/bin/node-gyp.js + +sed -e 's#@SYSCONFDIR@#%{_sysconfdir}#g' \ + %{SOURCE201} > %{buildroot}%{nodejs_private_sitelib}/npm/npmrc + +mkdir -p %{buildroot}%{icudatadir} +%if 0%{?little_endian} +unzip -d %{buildroot}%{icudatadir} %{SOURCE4} icudt%{icu_major}l.dat +%else +unzip -d %{buildroot}%{icudatadir} %{SOURCE3} icudt%{icu_major}b.dat +%endif + +mkdir -p %{buildroot}%{_libdir}/pkgconfig +sed -e 's#@PREFIX@#%{_prefix}#g' \ + -e 's#@INCLUDEDIR@#%{_includedir}#g' \ + -e 's#@LIBDIR@#%{_libdir}#g' \ + -e 's#@PKGCONFNAME@#nodejs-%{nodejs_major}#g' \ + -e 's#@NODEJS_VERSION@#%{nodejs_version}#g' \ + %{SOURCE202} > %{buildroot}%{_libdir}/pkgconfig/nodejs-%{nodejs_major}.pc + +sed -e 's#@PREFIX@#%{_prefix}#g' \ + -e 's#@INCLUDEDIR@#%{_includedir}#g' \ + -e 's#@LIBDIR@#%{_libdir}#g' \ + -e 's#@PKGCONFVERSION@#v8-%{v8_major}.%{v8_minor}#g' \ + -e 's#@V8_VERSION@#%{v8_version}#g' \ + %{SOURCE203} > %{buildroot}%{_libdir}/pkgconfig/v8-%{v8_major}.%{v8_minor}.pc + +install -Dpm0755 %{SOURCE204} %{buildroot}%{_rpmconfigdir}/nodejs%{nodejs_major}_abi.req +install -Dpm0644 %{SOURCE205} %{buildroot}%{_rpmconfigdir}/fileattrs/nodejs%{nodejs_major}_abi.attr + + +%check +LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node-%{nodejs_major} -e "require('assert').equal(process.versions.node, '%{nodejs_version}')" +LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node-%{nodejs_major} -e "require('assert').equal(process.versions.v8.replace(/-node\.\d+$/, ''), '%{v8_version}')" +LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node-%{nodejs_major} -e "require('assert').equal(process.versions.ares.replace(/-DEV$/, ''), '%{c_ares_version}')" +LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node-%{nodejs_major} --no-deprecation -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')" +LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/node-%{nodejs_major} %{buildroot}%{_bindir}/npm-%{nodejs_major} version --json |jq -e '.npm == "%{npm_version}"' + +NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{nodejs_private_sitelib}/npm/node_modules LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node-%{nodejs_major} --icu-data-dir=%{buildroot}%{icudatadir} %{SOURCE2} + +%pretrans -n %{pkgname} -p +path = "/usr/lib/node_modules" +st = posix.stat(path) +if st and st.type == "link" then + os.remove(path) +end + + +%files -n %{pkgname} +%doc CHANGELOG.md onboarding.md GOVERNANCE.md README.md +%{_bindir}/node-%{nodejs_major} +%dir %{nodejs_private_sitelib} +%doc %{_mandir}/nodejs-%{nodejs_major}/man1/node.1* + + +%files -n %{pkgname}-devel +%{_includedir}/node +%{_libdir}/libnode.so +%{nodejs_datadir}/common.gypi +%{_pkgdocdir}/gdbinit +%{_libdir}/pkgconfig/nodejs-%{nodejs_major}.pc +%{_rpmconfigdir}/fileattrs/nodejs%{nodejs_major}*.attr +%{_rpmconfigdir}/nodejs%{nodejs_major}* + + +%files -n %{pkgname}-full-i18n +%dir %{icudatadir} +%{icudatadir}/icudt%{icu_major}*.dat + + +%files -n %{pkgname}-libs +%license LICENSE +%{_libdir}/libnode.so.%{nodejs_soversion} +%{_libdir}/libv8.so.%{v8_major}.%{v8_minor} +%{_libdir}/libv8_libbase.so.%{v8_major}.%{v8_minor} +%{_libdir}/libv8_libplatform.so.%{v8_major}.%{v8_minor} +%dir %{nodejs_datadir}/ + +%files -n v8-%{v8_major}.%{v8_minor}-devel +%{_includedir}/libplatform +%{_includedir}/v8*.h +%{_includedir}/cppgc +%{_libdir}/libv8.so +%{_libdir}/libv8_libbase.so +%{_libdir}/libv8_libplatform.so +%{_libdir}/pkgconfig/v8-%{v8_major}.%{v8_minor}.pc + + +%files -n %{pkgname}-npm +%{_bindir}/npm-%{nodejs_major} +%{_bindir}/npx-%{nodejs_major} +%{nodejs_private_sitelib}/npm + +%doc %{_mandir}/nodejs-%{nodejs_major}/ +%exclude %doc %{_mandir}/nodejs-%{nodejs_major}/man1/node.1* + + +%files -n %{pkgname}-docs +%doc doc +%dir %{_pkgdocdir} +%{_pkgdocdir}/html +%{_pkgdocdir}/npm/docs + +%changelog +* Sun Apr 19 2026 dorsoli - 24.14.0-1 +- [Type] enhancement +- [DESC] initial build for Node.js 24 LTS +- addresses CVE-2026-27135 via downstream nghttp2 1.68.1 patch diff --git a/nodejs_abi.attr.in b/nodejs_abi.attr.in new file mode 100644 index 0000000000000000000000000000000000000000..aaea0893a43be387f83b0d40255eb3aa33ac033a --- /dev/null +++ b/nodejs_abi.attr.in @@ -0,0 +1,2 @@ +%__nodejs24_native_requires %{_rpmconfigdir}/nodejs24_abi.req +%__nodejs24_native_path ^/usr/lib.*/node_modules_24/.*\\.node$ diff --git a/nodejs_abi.req.in b/nodejs_abi.req.in new file mode 100755 index 0000000000000000000000000000000000000000..d236b036d3f92ebfce0ec74c01f42210c0dded39 --- /dev/null +++ b/nodejs_abi.req.in @@ -0,0 +1,4 @@ +#!/bin/sh + +# Require ABI version of the current interpreter +printf 'nodejs(abi) = %s\n' "$(/usr/bin/node-24 -p 'process.versions.modules')" diff --git a/npmrc.in b/npmrc.in new file mode 100644 index 0000000000000000000000000000000000000000..28381f85a4122f1822760bfb98b44a0cd7eb1cc3 --- /dev/null +++ b/npmrc.in @@ -0,0 +1,7 @@ +# This is the distribution-level configuration file for npm. +# To configure npm on a system level, use the globalconfig below (defaults to @SYSCONFDIR@/npmrc). +# vim:set filetype=dosini: + +globalconfig=@SYSCONFDIR@/npmrc +prefix=/usr/local +update-notifier=false diff --git a/sources b/sources new file mode 100644 index 0000000000000000000000000000000000000000..49d0b003d6f78e80aff01d7d376c5d5870c3f998 --- /dev/null +++ b/sources @@ -0,0 +1,3 @@ +SHA512 (node-v24.14.0-stripped.tar.gz) = 76995f86994525a76e542b43f31a6acb21be55ef1cf744f0fd8b91d4edd42295906506bc6f7a27a98ee24a9e8c8b9118788d04c957c28a3c89bdccfc47983f26 +SHA512 (icu4c-78.2-data-bin-b.zip) = 032a1e519bf92dfa7936ef85ebed697550dbcb4e32c6ecd28ffecb158a403eeff6c0a3545b2551eba73f288e31693be6880e202a38cd86c129dffa395e8ab625 +SHA512 (icu4c-78.2-data-bin-l.zip) = c0b46de115332940d3276763904caa6257eb516edce4382632f4b96a5b010fee4cb06a5e10ef5eee2f881515c1ee8277d9ae59015f6de6fe1d175b9d00dbb1ca diff --git a/test-runner.sh b/test-runner.sh new file mode 100755 index 0000000000000000000000000000000000000000..f8d43fd7ecfcca795f511284e58d2ef9398cba08 --- /dev/null +++ b/test-runner.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +NODE_BIN="$1" +PARENT_TEST_FOLDER="$2" +TEST_LIST_FILE="$3" + +# At most 10 min per test +TIMEOUT_DURATION=600 +# Exit code +FINAL_RESULT=0 +ARCH=$(uname -m) +PARALLEL_TEST_RERUN="" +echo "Started test run:" +# Run the list of test +while IFS= read -r test_line; do + # ignore commented lines + if [[ "$test_line" =~ ^# ]]; then + continue + fi + # If test has specified ARCH which it should be skipped + # Extract it + TEST_PATH=$(echo "$test_line" | awk '{print $1}') + IGNORE_ARCHES=$(echo "$test_line" |\ + awk '{for (i=2; i<=NF; i++) printf "%s ", $i; print ""}') + + # Skip test for specified ARCH + for ARCH_IGNORE in $IGNORE_ARCHES; do + if [[ "$ARCH_IGNORE" == "$ARCH" ]]; then + echo "Skipping test, current arch is in ignore: $TEST_PATH ($ARCH_IGNORE)" + continue 2 + fi + done + + # Construct test path + TEST_SCRIPT="$PARENT_TEST_FOLDER/$TEST_PATH" + + if [ ! -f "$TEST_SCRIPT" ]; then + echo "Test script not found: $TEST_SCRIPT" + continue + fi + + TEST_OUTPUT=$(timeout "$TIMEOUT_DURATION" "$NODE_BIN" "$TEST_SCRIPT" 2>&1) + TEST_RESULT=$? + + # Handle test result + if [ $TEST_RESULT -ne 0 ]; then + if [[ "$TEST_PATH" == */parallel/* ]]; then + PARALLEL_TEST_RERUN+="$TEST_SCRIPT " + echo "Parallel test failed, marking for rerun: $TEST_SCRIPT" + continue + elif [ $TEST_RESULT -eq 124 ]; then + echo "Test timed out: $TEST_SCRIPT" + else + echo "Test failed: $TEST_SCRIPT" + fi + FINAL_RESULT=1 + echo "Test failure message:" + echo "$TEST_OUTPUT" + fi +done < "$TEST_LIST_FILE" + +if [ -n "$PARALLEL_TEST_RERUN" ]; then + echo "Started rerun for parallel tests:" + for RERUN_SCRIPT in $PARALLEL_TEST_RERUN; do + TEST_OUTPUT=$(timeout "$TIMEOUT_DURATION" "$NODE_BIN" "$RERUN_SCRIPT" 2>&1) + TEST_RESULT=$? + if [ "$TEST_RESULT" -ne 0 ]; then + if [ "$TEST_RESULT" -eq 124 ]; then + echo "Rerun timed out: $RERUN_SCRIPT" + else + echo "Rerun failed: $RERUN_SCRIPT" + fi + FINAL_RESULT=1 + echo "Rerun failure message:" + echo "$TEST_OUTPUT" + echo "---" + else + echo "Rerun successful: $RERUN_SCRIPT" + fi + done +fi + +if [ $FINAL_RESULT -eq 0 ]; then + echo "All tests succesfully passed." +fi +exit $FINAL_RESULT diff --git a/test-should-pass.txt b/test-should-pass.txt new file mode 100644 index 0000000000000000000000000000000000000000..a638dc5357f73bbf422b5049c457f53254fa45ae --- /dev/null +++ b/test-should-pass.txt @@ -0,0 +1,3840 @@ +# List of supported tests +# +# Architectures which are to be ignored are listed after the test +# for example: abort/test-abort-fatal-error.js i686 +# won't be runned for i686 architecture +# +# Each exception should be explained with a comment +# containing date and a short description of the problem +# +abort/test-abort-fatal-error.js +abort/test-abort-uncaught-exception.js +abort/test-addon-register-signal-handler.js +abort/test-addon-uv-handle-leak.js +abort/test-http-parser-consume.js +abort/test-process-abort-exitcode.js +abort/test-signal-handler.js +abort/test-worker-abort-uncaught-exception.js +abort/test-zlib-invalid-internals-usage.js +async-hooks/hook-checks.js +async-hooks/init-hooks.js +async-hooks/test-async-await.js +async-hooks/test-async-exec-resource-http-32060.js +async-hooks/test-async-exec-resource-http-agent.js +async-hooks/test-async-exec-resource-http.js +async-hooks/test-async-exec-resource-match.js +async-hooks/test-async-local-storage-args.js +async-hooks/test-async-local-storage-async-await.js +async-hooks/test-async-local-storage-async-functions.js +async-hooks/test-async-local-storage-dgram.js +async-hooks/test-async-local-storage-enable-disable.js +async-hooks/test-async-local-storage-enter-with.js +async-hooks/test-async-local-storage-errors.js +async-hooks/test-async-local-storage-gcable.js +async-hooks/test-async-local-storage-http-agent.js +async-hooks/test-async-local-storage-http.js +async-hooks/test-async-local-storage-misc-stores.js +async-hooks/test-async-local-storage-nested.js +async-hooks/test-async-local-storage-no-mix-contexts.js +async-hooks/test-async-local-storage-promises.js +async-hooks/test-async-local-storage-socket.js +async-hooks/test-async-local-storage-thenable.js +async-hooks/test-async-local-storage-tlssocket.js +async-hooks/test-async-wrap-providers.js +async-hooks/test-callback-error.js +async-hooks/test-crypto-pbkdf2.js +async-hooks/test-crypto-randomBytes.js +async-hooks/test-destroy-not-blocked.js +async-hooks/test-disable-in-init.js +async-hooks/test-embedder.api.async-resource.js +async-hooks/test-embedder.api.async-resource-no-type.js +async-hooks/test-embedder.api.async-resource.runInAsyncScope.js +async-hooks/test-emit-after-on-destroyed.js +async-hooks/test-emit-before-after.js +async-hooks/test-emit-before-on-destroyed.js +async-hooks/test-emit-init.js +async-hooks/test-enable-disable.js +async-hooks/test-enable-in-init.js +async-hooks/test-filehandle-no-reuse.js +async-hooks/test-fseventwrap.js +async-hooks/test-fsreqcallback-access.js +async-hooks/test-fsreqcallback-readFile.js +async-hooks/test-getaddrinforeqwrap.js +async-hooks/test-getnameinforeqwrap.js +async-hooks/test-graph.fsreq-readFile.js +async-hooks/test-graph.http.js +async-hooks/test-graph.intervals.js +async-hooks/test-graph.pipeconnect.js +async-hooks/test-graph.pipe.js +async-hooks/test-graph.shutdown.js +async-hooks/test-graph.statwatcher.js +async-hooks/test-graph.tcp.js +async-hooks/test-graph.timeouts.js +async-hooks/test-graph.tls-write-12.js +async-hooks/test-graph.tls-write.js +async-hooks/test-http-agent-handle-reuse-parallel.js +async-hooks/test-http-agent-handle-reuse-serial.js +async-hooks/test-httpparser.request.js +async-hooks/test-httpparser.response.js +async-hooks/test-httpparser-reuse.js +async-hooks/test-immediate.js +async-hooks/test-improper-order.js +async-hooks/test-improper-unwind.js +async-hooks/test-late-hook-enable.js +async-hooks/test-net-get-connections.js +async-hooks/test-nexttick-default-trigger.js +async-hooks/test-no-assert-when-disabled.js +async-hooks/test-pipeconnectwrap.js +async-hooks/test-pipewrap.js +async-hooks/test-promise.chain-promise-before-init-hooks.js +async-hooks/test-promise.js +async-hooks/test-promise.promise-before-init-hooks.js +async-hooks/test-querywrap.js +async-hooks/test-queue-microtask.js +async-hooks/test-shutdownwrap.js +async-hooks/test-signalwrap.js +async-hooks/test-statwatcher.js +async-hooks/test-tcpwrap.js +async-hooks/test-timers.setInterval.js +async-hooks/test-timers.setTimeout.js +async-hooks/test-tlswrap.js +async-hooks/test-ttywrap.readstream.js +async-hooks/test-udpsendwrap.js +async-hooks/test-udpwrap.js +async-hooks/test-unhandled-exception-valid-ids.js +async-hooks/test-unhandled-rejection-context.js +async-hooks/test-writewrap.js +async-hooks/test-zlib.zlib-binding.deflate.js +async-hooks/verify-graph.js +benchmark/test-bechmark-readline.js +benchmark/test-benchmark-assert.js +benchmark/test-benchmark-async-hooks.js +benchmark/test-benchmark-blob.js +benchmark/test-benchmark-buffer.js +benchmark/test-benchmark-child-process.js +benchmark/test-benchmark-cluster.js +benchmark/test-benchmark-dgram.js +benchmark/test-benchmark-dns.js +benchmark/test-benchmark-domain.js +benchmark/test-benchmark-es.js +benchmark/test-benchmark-esm.js +benchmark/test-benchmark-events.js +benchmark/test-benchmark-http2.js +benchmark/test-benchmark-http.js +benchmark/test-benchmark-mime.js +benchmark/test-benchmark-misc.js +benchmark/test-benchmark-module.js +benchmark/test-benchmark-net.js +benchmark/test-benchmark-os.js +benchmark/test-benchmark-path.js +benchmark/test-benchmark-process.js +benchmark/test-benchmark-querystring.js +benchmark/test-benchmark-streams.js +benchmark/test-benchmark-string_decoder.js +benchmark/test-benchmark-timers.js +benchmark/test-benchmark-tls.js +benchmark/test-benchmark-url.js +benchmark/test-benchmark-util.js +benchmark/test-benchmark-v8.js +benchmark/test-benchmark-validators.js +benchmark/test-benchmark-vm.js +benchmark/test-benchmark-websocket.js +benchmark/test-benchmark-webstreams.js +benchmark/test-benchmark-worker.js +benchmark/test-benchmark-zlib.js +common/arraystream.js +common/assertSnapshot.js +common/benchmark.js +common/child_process.js +common/countdown.js +common/cpu-prof.js +common/crypto.js +common/debugger.js +common/dns.js +common/fixtures.js +common/gc.js +common/globals.js +common/hijackstdio.js +common/http2.js +common/index.js +common/inspector-helper.js +common/internet.js +common/measure-memory.js +common/net.js +common/process-exit-code-cases.js +common/prof.js +common/report.js +common/sea.js +common/shared-lib-util.js +common/snapshot.js +common/test-error-reporter.js +common/tick.js +common/tls.js +common/tmpdir.js +common/udp.js +common/v8.js +common/wasi.js +common/wpt.js +es-module/test-cjs-esm-warn.js +es-module/test-cjs-legacyMainResolve.js +es-module/test-cjs-legacyMainResolve-permission.js +es-module/test-cjs-prototype-pollution.js +es-module/test-disable-require-module-with-detection.js +es-module/test-dynamic-import-script-lifetime.js +es-module/test-esm-cjs-builtins.js +es-module/test-esm-cjs-exports.js +es-module/test-esm-cjs-main.js +es-module/test-esm-data-urls.js +es-module/test-esm-dynamic-import-attribute.js +es-module/test-esm-dynamic-import-commonjs.js +es-module/test-esm-dynamic-import.js +es-module/test-esm-dynamic-import-mutating-fs.js +es-module/test-esm-encoded-path-native.js +es-module/test-esm-error-cache.js +es-module/test-esm-import-attributes-errors.js +es-module/test-esm-import-attributes-validation.js +es-module/test-esm-invalid-data-urls.js +es-module/test-esm-invalid-pjson.js +es-module/test-esm-loader-cache-clearing.js +es-module/test-esm-loader-modulemap.js +es-module/test-esm-loader-search.js +es-module/test-esm-long-path-win.js +es-module/test-esm-preserve-symlinks.js +es-module/test-esm-preserve-symlinks-main.js +es-module/test-esm-repl-imports.js +es-module/test-esm-repl.js +es-module/test-esm-symlink.js +es-module/test-esm-symlink-main.js +es-module/test-esm-symlink-type.js +es-module/test-esm-type-field-errors-2.js +es-module/test-esm-type-field-errors.js +es-module/test-esm-undefined-cjs-global-like-variables.js +es-module/test-esm-unknown-extension.js +es-module/test-esm-url-extname.js +es-module/test-esm-windows.js +es-module/test-loaders-hidden-from-users.js +es-module/test-require-module-cached-tla.js +es-module/test-require-module-conditional-exports.js +es-module/test-require-module-conditional-exports-module.js +es-module/test-require-module-cycle-cjs-esm-esm.js +es-module/test-require-module-cycle-esm-cjs-esm-esm.js +es-module/test-require-module-cycle-esm-cjs-esm.js +es-module/test-require-module-cycle-esm-esm-cjs-esm-esm.js +es-module/test-require-module-cycle-esm-esm-cjs-esm.js +es-module/test-require-module-default-extension.js +es-module/test-require-module-defined-esmodule.js +es-module/test-require-module-detect-entry-point-aou.js +es-module/test-require-module-detect-entry-point.js +es-module/test-require-module-dont-detect-cjs.js +es-module/test-require-module-dynamic-import-1.js +es-module/test-require-module-dynamic-import-2.js +es-module/test-require-module-dynamic-import-3.js +es-module/test-require-module-dynamic-import-4.js +es-module/test-require-module-error-catching.js +es-module/test-require-module-errors.js +es-module/test-require-module-feature-detect.js +es-module/test-require-module-implicit.js +es-module/test-require-module.js +es-module/test-require-module-preload.js +es-module/test-require-module-retry-import-errored.js +es-module/test-require-module-retry-import-evaluating.js +es-module/test-require-module-synchronous-rejection-handling.js +es-module/test-require-module-tla.js +es-module/test-require-module-tla-retry-import-2.js +es-module/test-require-module-tla-retry-import.js +es-module/test-require-module-tla-retry-require.js +es-module/test-require-module-transpiled.js +es-module/test-require-module-twice.js +es-module/test-require-module-warning.js +es-module/test-require-module-with-detection.js +es-module/test-require-node-modules-warning.js +es-module/test-vm-compile-function-leak.js +es-module/test-vm-compile-function-lineoffset.js +es-module/test-vm-contextified-script-leak.js +es-module/test-vm-main-context-default-loader.js +es-module/test-vm-source-text-module-leak.js +es-module/test-vm-synthetic-module-leak.js +es-module/test-wasm-memory-out-of-bound.js +es-module/test-wasm-simple.js +es-module/test-wasm-web-api.js +fixtures/aead-vectors.js +fixtures/a.js +fixtures/async-error.js +fixtures/baz.js +fixtures/cjs-module-wrap.js +fixtures/cjs-module-wrapper.js +fixtures/compile-cache-wrapper.js +fixtures/debugger-repeat-last.js +fixtures/debugger-util-regression-fixture.js +fixtures/deep-exit.js +fixtures/define-global.js +fixtures/deprecated.js +fixtures/deprecated-userland-class.js +fixtures/deprecated-userland-function.js +fixtures/deprecated-userland-subclass.js +fixtures/destroy-stdin.js +fixtures/disable-warning.js +fixtures/disable-warning-worker.js +fixtures/empty.js +fixtures/exports-function-with-param.js +fixtures/external-repl-module.js +fixtures/get-call-sites.js +fixtures/GH-1899-output.js +fixtures/inspector-open.js +fixtures/intrinsic-mutation.js +fixtures/is-object.js +fixtures/klass-with-fields.js +fixtures/linux-perf.js +fixtures/linux-perf-logger.js +fixtures/loader-is-internal-thread.js +fixtures/mime-whatwg-generated.js +fixtures/mime-whatwg.js +fixtures/monkey-patch-run-main.js +fixtures/no-wrapper.js +fixtures/overwrite-config-preload-module.js +fixtures/parent-process-nonpersistent.js +fixtures/path.js +fixtures/print-10-lines.js +fixtures/print +fixtures/printA.js +fixtures/printB.js +fixtures/print-chars.js +fixtures/printC.js +fixtures/print-delayed.js +fixtures/print-error-message.js +fixtures/repl-load-multiline.js +fixtures/repl-load-multiline-no-trailing-newline.js +fixtures/require-resolve.js +fixtures/semicolon.js +fixtures/spawn-worker-with-trace-exit.js +fixtures/test-nodetiming-uvmetricsinfo.js +fixtures/test-resolution-inspect-brk-resolver.js +fixtures/tls-connect.js +fixtures/url-idna.js +fixtures/url-searchparams.js +fixtures/url-setter-tests-additional.js +fixtures/url-tests-additional.js +fixtures/utf8-bom.js +fixtures/utf8-shebang-bom.js +fixtures/warnings.js +fixtures/worker-preload.js +internet/test-dgram-connect.js +# Disabled on 04.12.2025 +# As it failed on Konflux +# Basic UDP multicast test +# has issues with adjusting interfaces in certain environments +# internet/test-dgram-membership.js +internet/test-dns-cares-domains.js +internet/test-dns-regress-6244.js +internet/test-dns-setserver-in-callback-of-resolve4.js +internet/test-https-issue-43963.js +internet/test-trace-events-dns.js +message/console_assert.js +message/max_tick_depth.js +message/node_run_non_existent.js +message/util-inspect-error-cause.js +message/util_inspect_error.js +parallel/test-abortcontroller-internal.js +parallel/test-abortcontroller.js +parallel/test-aborted-util.js +parallel/test-abortsignal-cloneable.js +parallel/test-accessor-properties.js +parallel/test-arm-math-illegal-instruction.js +parallel/test-assert-async.js +parallel/test-assert-builtins-not-read-from-filesystem.js +parallel/test-assert-calltracker-calls.js +parallel/test-assert-calltracker-getCalls.js +parallel/test-assert-calltracker-report.js +parallel/test-assert-calltracker-verify.js +parallel/test-assert-checktag.js +parallel/test-assert-deep.js +parallel/test-assert-deep-with-error.js +parallel/test-assert-esm-cjs-message-verify.js +parallel/test-assert-fail-deprecation.js +parallel/test-assert-fail.js +parallel/test-assert-first-line.js +parallel/test-assert-if-error.js +parallel/test-assert.js +parallel/test-assert-objects.js +parallel/test-assert-typedarray-deepequal.js +parallel/test-async-hooks-async-await.js +parallel/test-async-hooks-asyncresource-constructor.js +parallel/test-async-hooks-close-during-destroy.js +parallel/test-async-hooks-constructor.js +parallel/test-async-hooks-correctly-switch-promise-hook.js +parallel/test-async-hooks-destroy-on-gc.js +parallel/test-async-hooks-disable-during-promise.js +parallel/test-async-hooks-disable-gc-tracking.js +parallel/test-async-hooks-enable-before-promise-resolve.js +parallel/test-async-hooks-enable-disable-enable.js +parallel/test-async-hooks-enable-disable.js +parallel/test-async-hooks-enable-during-promise.js +parallel/test-async-hooks-enable-recursive.js +parallel/test-async-hooks-execution-async-resource-await.js +parallel/test-async-hooks-execution-async-resource.js +parallel/test-async-hooks-fatal-error.js +parallel/test-async-hooks-http-agent-destroy.js +parallel/test-async-hooks-http-agent.js +parallel/test-async-hooks-http-parser-destroy.js +parallel/test-async-hooks-prevent-double-destroy.js +parallel/test-async-hooks-promise-enable-disable.js +parallel/test-async-hooks-promise.js +parallel/test-async-hooks-promise-triggerid.js +parallel/test-async-hooks-recursive-stack-runInAsyncScope.js +parallel/test-async-hooks-run-in-async-scope-caught-exception.js +parallel/test-async-hooks-run-in-async-scope-this-arg.js +parallel/test-async-hooks-top-level-clearimmediate.js +parallel/test-async-hooks-vm-gc.js +parallel/test-async-hooks-worker-asyncfn-terminate-1.js +parallel/test-async-hooks-worker-asyncfn-terminate-2.js +parallel/test-async-hooks-worker-asyncfn-terminate-3.js +parallel/test-async-hooks-worker-asyncfn-terminate-4.js +parallel/test-async-local-storage-bind.js +parallel/test-async-local-storage-contexts.js +parallel/test-async-local-storage-deep-stack.js +parallel/test-async-local-storage-exit-does-not-leak.js +parallel/test-async-local-storage-http-multiclients.js +parallel/test-async-local-storage-snapshot.js +parallel/test-asyncresource-bind.js +parallel/test-async-wrap-constructor.js +parallel/test-async-wrap-destroyid.js +parallel/test-async-wrap-pop-id-during-load.js +parallel/test-async-wrap-promise-after-enabled.js +parallel/test-async-wrap-tlssocket-asyncreset.js +parallel/test-async-wrap-trigger-id.js +parallel/test-async-wrap-uncaughtexception.js +parallel/test-atomics-wake.js +parallel/test-bad-unicode.js +parallel/test-bash-completion.js +parallel/test-beforeexit-event-exit.js +parallel/test-benchmark-cli.js +parallel/test-binding-constants.js +parallel/test-blob-createobjecturl.js +parallel/test-blob-file-backed.js +parallel/test-blob.js +parallel/test-blocklist-clone.js +parallel/test-blocklist.js +parallel/test-bootstrap-modules.js +parallel/test-broadcastchannel-custom-inspect.js +parallel/test-btoa-atob.js +parallel/test-buffer-alloc.js +parallel/test-buffer-arraybuffer.js +parallel/test-buffer-ascii.js +parallel/test-buffer-backing-arraybuffer.js +parallel/test-buffer-badhex.js +parallel/test-buffer-bigint64.js +parallel/test-buffer-bytelength.js +parallel/test-buffer-compare.js +parallel/test-buffer-compare-offset.js +parallel/test-buffer-concat.js +parallel/test-buffer-constants.js +parallel/test-buffer-constructor-deprecation-error.js +parallel/test-buffer-constructor-node-modules.js +parallel/test-buffer-constructor-node-modules-paths.js +parallel/test-buffer-constructor-outside-node-modules.js +parallel/test-buffer-copy.js +parallel/test-buffer-equals.js +parallel/test-buffer-failed-alloc-typed-arrays.js +parallel/test-buffer-fakes.js +parallel/test-buffer-fill.js +parallel/test-buffer-from.js +parallel/test-buffer-includes.js +parallel/test-buffer-indexof.js +parallel/test-buffer-inheritance.js +parallel/test-buffer-inspect.js +parallel/test-buffer-isascii.js +parallel/test-buffer-isencoding.js +parallel/test-buffer-isutf8.js +parallel/test-buffer-iterator.js +parallel/test-buffer-new.js +parallel/test-buffer-no-negative-allocation.js +parallel/test-buffer-nopendingdep-map.js +parallel/test-buffer-of-no-deprecation.js +parallel/test-buffer-over-max-length.js +parallel/test-buffer-parent-property.js +parallel/test-buffer-pending-deprecation.js +parallel/test-buffer-pool-untransferable.js +parallel/test-buffer-prototype-inspect.js +parallel/test-buffer-readdouble.js +parallel/test-buffer-readfloat.js +parallel/test-buffer-readint.js +parallel/test-buffer-read.js +parallel/test-buffer-readuint.js +parallel/test-buffer-resizable.js +parallel/test-buffer-safe-unsafe.js +parallel/test-buffer-set-inspect-max-bytes.js +parallel/test-buffer-sharedarraybuffer.js +parallel/test-buffer-slice.js +parallel/test-buffer-slow.js +parallel/test-buffer-swap.js +parallel/test-buffer-tojson.js +parallel/test-buffer-tostring.js +parallel/test-buffer-tostring-rangeerror.js +parallel/test-buffer-tostring-range.js +parallel/test-buffer-writedouble.js +parallel/test-buffer-write-fast.js +parallel/test-buffer-writefloat.js +parallel/test-buffer-writeint.js +parallel/test-buffer-write.js +parallel/test-buffer-writeuint.js +parallel/test-buffer-zero-fill-cli.js +parallel/test-buffer-zero-fill.js +parallel/test-buffer-zero-fill-reset.js +parallel/test-c-ares.js +parallel/test-child-process-advanced-serialization.js +parallel/test-child-process-advanced-serialization-largebuffer.js +parallel/test-child-process-advanced-serialization-splitted-length-field.js +parallel/test-child-process-bad-stdio.js +parallel/test-child-process-can-write-to-stdout.js +parallel/test-child-process-constructor.js +parallel/test-child-process-cwd.js +parallel/test-child-process-default-options.js +parallel/test-child-process-destroy.js +parallel/test-child-process-detached.js +parallel/test-child-process-dgram-reuseport.js +parallel/test-child-process-disconnect.js +parallel/test-child-process-double-pipe.js +parallel/test-child-process-env.js +parallel/test-child-process-exec-abortcontroller-promisified.js +parallel/test-child-process-exec-any-shells-windows.js +parallel/test-child-process-exec-cwd.js +parallel/test-child-process-exec-encoding.js +parallel/test-child-process-exec-env.js +parallel/test-child-process-exec-error.js +parallel/test-child-process-execfile.js +parallel/test-child-process-execfile-maxbuf.js +parallel/test-child-process-execFile-promisified-abortController.js +parallel/test-child-process-execfilesync-maxbuf.js +parallel/test-child-process-exec-kill-throws.js +parallel/test-child-process-exec-maxbuf.js +parallel/test-child-process-exec-std-encoding.js +parallel/test-child-process-exec-stdout-stderr-data-string.js +parallel/test-child-process-execsync-maxbuf.js +parallel/test-child-process-exec-timeout-expire.js +parallel/test-child-process-exec-timeout-kill.js +parallel/test-child-process-exec-timeout-not-expired.js +parallel/test-child-process-exit-code.js +parallel/test-child-process-flush-stdio.js +parallel/test-child-process-fork3.js +parallel/test-child-process-fork-abort-signal.js +parallel/test-child-process-fork-and-spawn.js +parallel/test-child-process-fork-args.js +parallel/test-child-process-fork-closed-channel-segfault.js +parallel/test-child-process-fork-close.js +parallel/test-child-process-fork-detached.js +parallel/test-child-process-fork-dgram.js +parallel/test-child-process-fork-exec-argv.js +parallel/test-child-process-fork-exec-path.js +parallel/test-child-process-fork-getconnections.js +parallel/test-child-process-fork.js +parallel/test-child-process-fork-net.js +parallel/test-child-process-fork-net-server.js +parallel/test-child-process-fork-net-socket.js +parallel/test-child-process-fork-no-shell.js +parallel/test-child-process-fork-ref2.js +parallel/test-child-process-fork-ref.js +parallel/test-child-process-fork-stdio.js +parallel/test-child-process-fork-stdio-string-variant.js +parallel/test-child-process-fork-timeout-kill-signal.js +parallel/test-child-process-http-socket-leak.js +parallel/test-child-process-internal.js +parallel/test-child-process-ipc.js +parallel/test-child-process-ipc-next-tick.js +parallel/test-child-process-kill.js +parallel/test-child-process-net-reuseport.js +parallel/test-child-process-no-deprecation.js +parallel/test-child-process-pipe-dataflow.js +parallel/test-child-process-promisified.js +parallel/test-child-process-recv-handle.js +parallel/test-child-process-reject-null-bytes.js +parallel/test-child-process-send-after-close.js +parallel/test-child-process-send-cb.js +parallel/test-child-process-send-keep-open.js +parallel/test-child-process-send-returns-boolean.js +parallel/test-child-process-send-type-error.js +parallel/test-child-process-send-utf8.js +parallel/test-child-process-server-close.js +parallel/test-child-process-set-blocking.js +parallel/test-child-process-silent.js +parallel/test-child-process-spawn-args.js +parallel/test-child-process-spawn-argv0.js +parallel/test-child-process-spawn-controller.js +parallel/test-child-process-spawn-error.js +parallel/test-child-process-spawn-event.js +parallel/test-child-process-spawn-shell.js +parallel/test-child-process-spawnsync-args.js +parallel/test-child-process-spawnsync-env.js +parallel/test-child-process-spawnsync-input.js +parallel/test-child-process-spawnsync.js +parallel/test-child-process-spawnsync-kill-signal.js +parallel/test-child-process-spawnsync-maxbuf.js +parallel/test-child-process-spawnsync-shell.js +parallel/test-child-process-spawnsync-timeout.js +parallel/test-child-process-spawnsync-validation-errors.js +parallel/test-child-process-spawn-timeout-kill-signal.js +parallel/test-child-process-spawn-typeerror.js +parallel/test-child-process-spawn-windows-batch-file.js +parallel/test-child-process-stdin-ipc.js +parallel/test-child-process-stdin.js +parallel/test-child-process-stdio-big-write-end.js +parallel/test-child-process-stdio-inherit.js +parallel/test-child-process-stdio.js +parallel/test-child-process-stdio-merge-stdouts-into-cat.js +parallel/test-child-process-stdio-overlapped.js +parallel/test-child-process-stdio-reuse-readable-stdio.js +parallel/test-child-process-stdout-flush-exit.js +parallel/test-child-process-stdout-flush.js +parallel/test-child-process-stdout-ipc.js +parallel/test-child-process-uid-gid.js +parallel/test-child-process-validate-stdio.js +parallel/test-child-process-windows-hide.js +parallel/test-cli-bad-options.js +parallel/test-client-request-destroy.js +parallel/test-cli-eval-event.js +parallel/test-cli-eval.js +parallel/test-cli-node-options-disallowed.js +parallel/test-cli-node-options-docs.js +parallel/test-cli-node-options.js +parallel/test-cli-node-print-help.js +parallel/test-cli-options-negation.js +parallel/test-cli-options-precedence.js +parallel/test-cli-permission-deny-fs.js +parallel/test-cli-permission-multiple-allow.js +parallel/test-cli-syntax-eval.js +parallel/test-cli-syntax-piped-bad.js +parallel/test-cli-syntax-piped-good.js +parallel/test-cluster-accept-fail.js +parallel/test-cluster-advanced-serialization.js +parallel/test-cluster-basic.js +parallel/test-cluster-bind-privileged-port.js +parallel/test-cluster-bind-twice.js +parallel/test-cluster-call-and-destroy.js +parallel/test-cluster-child-index-dgram.js +parallel/test-cluster-child-index-net.js +parallel/test-cluster-concurrent-disconnect.js +parallel/test-cluster-cwd.js +parallel/test-cluster-dgram-1.js +parallel/test-cluster-dgram-2.js +parallel/test-cluster-dgram-bind-fd.js +parallel/test-cluster-dgram-ipv6only.js +parallel/test-cluster-dgram-reuse.js +parallel/test-cluster-dgram-reuseport.js +parallel/test-cluster-disconnect-before-exit.js +parallel/test-cluster-disconnect-exitedAfterDisconnect-race.js +parallel/test-cluster-disconnect-idle-worker.js +parallel/test-cluster-disconnect.js +parallel/test-cluster-disconnect-leak.js +parallel/test-cluster-disconnect-race.js +parallel/test-cluster-disconnect-unshared-tcp.js +parallel/test-cluster-disconnect-unshared-udp.js +parallel/test-cluster-disconnect-with-no-workers.js +parallel/test-cluster-eaccess.js +parallel/test-cluster-eaddrinuse.js +parallel/test-cluster-fork-env.js +parallel/test-cluster-fork-stdio.js +parallel/test-cluster-fork-windowsHide.js +parallel/test-cluster-http-pipe.js +parallel/test-cluster-invalid-message.js +parallel/test-cluster-ipc-throw.js +parallel/test-cluster-kill-disconnect.js +parallel/test-cluster-kill-infinite-loop.js +parallel/test-cluster-listening-port.js +parallel/test-cluster-listen-pipe-readable-writable.js +parallel/test-cluster-message.js +parallel/test-cluster-net-listen-backlog.js +parallel/test-cluster-net-listen-ipv6only-false.js +parallel/test-cluster-net-listen.js +parallel/test-cluster-net-listen-relative-path.js +parallel/test-cluster-net-reuseport.js +parallel/test-cluster-net-send.js +parallel/test-cluster-net-server-drop-connection.js +parallel/test-cluster-primary-error.js +parallel/test-cluster-primary-kill.js +parallel/test-cluster-process-disconnect.js +parallel/test-cluster-rr-domain-listen.js +parallel/test-cluster-rr-handle-close.js +parallel/test-cluster-rr-handle-keep-loop-alive.js +parallel/test-cluster-rr-handle-ref-unref.js +parallel/test-cluster-rr-ref.js +parallel/test-cluster-send-deadlock.js +parallel/test-cluster-send-handle-twice.js +parallel/test-cluster-send-socket-to-worker-http-server.js +parallel/test-cluster-server-restart-none.js +parallel/test-cluster-server-restart-rr.js +parallel/test-cluster-setup-primary-argv.js +parallel/test-cluster-setup-primary-cumulative.js +parallel/test-cluster-setup-primary-emit.js +parallel/test-cluster-setup-primary.js +parallel/test-cluster-setup-primary-multiple.js +parallel/test-cluster-shared-handle-bind-error.js +parallel/test-cluster-shared-handle-bind-privileged-port.js +parallel/test-cluster-shared-leak.js +parallel/test-cluster-uncaught-exception.js +parallel/test-cluster-worker-constructor.js +parallel/test-cluster-worker-death.js +parallel/test-cluster-worker-destroy.js +parallel/test-cluster-worker-disconnect.js +parallel/test-cluster-worker-disconnect-on-error.js +parallel/test-cluster-worker-events.js +parallel/test-cluster-worker-exit.js +parallel/test-cluster-worker-forced-exit.js +parallel/test-cluster-worker-handle-close.js +parallel/test-cluster-worker-init.js +parallel/test-cluster-worker-isconnected.js +parallel/test-cluster-worker-isdead.js +parallel/test-cluster-worker-kill.js +parallel/test-cluster-worker-kill-signal.js +parallel/test-cluster-worker-no-exit.js +parallel/test-cluster-worker-wait-server-close.js +parallel/test-code-cache.js +parallel/test-common-countdown.js +parallel/test-common-expect-warning.js +parallel/test-common-gc.js +parallel/test-common.js +parallel/test-common-must-not-call.js +parallel/test-compile-cache-api-env.js +parallel/test-compile-cache-api-error.js +parallel/test-compile-cache-api-flush.js +parallel/test-compile-cache-api-permission.js +parallel/test-compile-cache-api-success.js +parallel/test-compile-cache-api-tmpdir.js +parallel/test-compile-cache-bad-syntax.js +parallel/test-compile-cache-disable.js +parallel/test-compile-cache-dynamic-import.js +parallel/test-compile-cache-esm.js +parallel/test-compile-cache-existing-directory.js +parallel/test-compile-cache-permission-allowed.js +parallel/test-compile-cache-permission-disallowed.js +parallel/test-compile-cache-success.js +parallel/test-compile-cache-updated-file.js +parallel/test-compression-decompression-stream.js +parallel/test-console-assign-undefined.js +parallel/test-console-async-write-error.js +parallel/test-console-clear.js +parallel/test-console-count.js +parallel/test-console-diagnostics-channels.js +parallel/test-console-formatTime.js +parallel/test-console-group.js +parallel/test-console-instance.js +parallel/test-console-issue-43095.js +parallel/test-console.js +parallel/test-console-log-stdio-broken-dest.js +parallel/test-console-log-throw-primitive.js +parallel/test-console-methods.js +parallel/test-console-no-swallow-stack-overflow.js +parallel/test-console-not-call-toString.js +parallel/test-console-self-assign.js +parallel/test-console-stdio-setters.js +parallel/test-console-sync-write-error.js +parallel/test-console-table.js +parallel/test-console-tty-colors.js +parallel/test-console-with-frozen-intrinsics.js +parallel/test-constants.js +parallel/test-corepack-version.js +parallel/test-coverage-with-inspector-disabled.js +parallel/test-crypto-aes-wrap.js +parallel/test-crypto-async-sign-verify.js +parallel/test-crypto-authenticated.js +parallel/test-crypto-authenticated-stream.js +parallel/test-crypto-cipheriv-decipheriv.js +parallel/test-crypto-classes.js +parallel/test-crypto-des3-wrap.js +parallel/test-crypto-dh-constructor.js +parallel/test-crypto-dh-curves.js +parallel/test-crypto-dh-errors.js +parallel/test-crypto-dh-generate-keys.js +parallel/test-crypto-dh-group-setters.js +parallel/test-crypto-dh.js +parallel/test-crypto-dh-leak.js +parallel/test-crypto-dh-modp2.js +parallel/test-crypto-dh-modp2-views.js +parallel/test-crypto-dh-odd-key.js +parallel/test-crypto-dh-padding.js +parallel/test-crypto-dh-shared.js +parallel/test-crypto-dh-stateless.js +parallel/test-crypto-domain.js +parallel/test-crypto-domains.js +parallel/test-crypto-ecb.js +parallel/test-crypto-ecdh-convert-key.js +parallel/test-crypto-encoding-validation-error.js +parallel/test-crypto-from-binary.js +parallel/test-crypto-gcm-explicit-short-tag.js +parallel/test-crypto-gcm-implicit-short-tag.js +parallel/test-crypto-getcipherinfo.js +parallel/test-crypto-hash.js +parallel/test-crypto-hash-stream-pipe.js +parallel/test-crypto-hkdf.js +parallel/test-crypto-hmac.js +# Test disabled on 19.5.2025 as: +# There have been changes to the available cipher suite in RHEL 10 +# And test required cipher aes-256 is no longer present. +# parallel/test-crypto.js +parallel/test-crypto-keygen-async-dsa.js +parallel/test-crypto-keygen-async-dsa-key-object.js +parallel/test-crypto-keygen-async-elliptic-curve-jwk-ec.js +parallel/test-crypto-keygen-async-elliptic-curve-jwk.js +parallel/test-crypto-keygen-async-elliptic-curve-jwk-rsa.js +parallel/test-crypto-keygen-async-encrypted-private-key-der.js +parallel/test-crypto-keygen-async-encrypted-private-key.js +parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted.js.js +parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted-p256.js +parallel/test-crypto-keygen-async-explicit-elliptic-curve.js +parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted.js +parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted-p256.js +parallel/test-crypto-keygen-async-named-elliptic-curve.js +parallel/test-crypto-keygen-async-rsa.js +parallel/test-crypto-keygen-bit-length.js +parallel/test-crypto-keygen-deprecation.js +parallel/test-crypto-keygen-dh-classic.js +parallel/test-crypto-keygen-duplicate-deprecated-option.js +parallel/test-crypto-keygen-eddsa.js +parallel/test-crypto-keygen-empty-passphrase-no-error.js +parallel/test-crypto-keygen-empty-passphrase-no-prompt.js +parallel/test-crypto-keygen-invalid-parameter-encoding-dsa.js +parallel/test-crypto-keygen-invalid-parameter-encoding-ec.js +parallel/test-crypto-keygen.js +parallel/test-crypto-keygen-key-objects.js +parallel/test-crypto-keygen-key-object-without-encoding.js +parallel/test-crypto-keygen-missing-oid.js +parallel/test-crypto-keygen-non-standard-public-exponent.js +parallel/test-crypto-keygen-no-rsassa-pss-params.js +parallel/test-crypto-keygen-promisify.js +parallel/test-crypto-keygen-rfc8017-9-1.js +parallel/test-crypto-keygen-rfc8017-a-2-3.js +parallel/test-crypto-keygen-rsa-pss.js +parallel/test-crypto-keygen-sync.js +parallel/test-crypto-key-objects-messageport.js +parallel/test-crypto-key-objects-to-crypto-key.js +parallel/test-crypto-lazy-transform-writable.js +parallel/test-crypto-oneshot-hash.js +parallel/test-crypto-op-during-process-exit.js +parallel/test-crypto-padding-aes256.js +parallel/test-crypto-padding.js +parallel/test-crypto-pbkdf2.js +parallel/test-crypto-prime.js +parallel/test-crypto-private-decrypt-gh32240.js +parallel/test-crypto-psychic-signatures.js +parallel/test-crypto-publicDecrypt-fails-first-time.js +parallel/test-crypto-randomfillsync-regression.js +parallel/test-crypto-random.js +parallel/test-crypto-randomuuid.js +parallel/test-crypto-scrypt.js +parallel/test-crypto-secret-keygen.js +parallel/test-crypto-secure-heap.js +parallel/test-crypto-stream.js +parallel/test-crypto-subtle-zero-length.js +parallel/test-crypto-update-encoding.js +parallel/test-crypto-verify-failure.js +parallel/test-crypto-webcrypto-aes-decrypt-tag-too-small.js +parallel/test-crypto-worker-thread.js +parallel/test-crypto-x509.js +parallel/test-cwd-enoent.js +parallel/test-cwd-enoent-preload.js +parallel/test-cwd-enoent-repl.js +parallel/test-data-url.js +parallel/test-datetime-change-notify.js +parallel/test-debugger-backtrace.js +parallel/test-debugger-break.js +parallel/test-debugger-breakpoint-exists.js +parallel/test-debugger-clear-breakpoints.js +parallel/test-debugger-exceptions.js +parallel/test-debugger-exec.js +parallel/test-debugger-heap-profiler.js +parallel/test-debugger-list.js +parallel/test-debugger-low-level.js +parallel/test-debugger-object-type-remote-object.js +parallel/test-debugger-pid.js +parallel/test-debugger-preserve-breaks.js +parallel/test-debugger-profile.js +parallel/test-debugger-random-port.js +parallel/test-debugger-random-port-with-inspect-port.js +parallel/test-debugger-repeat-last.js +parallel/test-debugger-restart-message.js +parallel/test-debugger-run-after-quit-restart.js +parallel/test-debugger-sb-before-load.js +parallel/test-debugger-scripts.js +parallel/test-debugger-unavailable-port.js +parallel/test-debugger-use-strict.js +parallel/test-debugger-watch-validation.js +parallel/test-debugger-websocket-secret-mismatch.js +parallel/test-debug-process.js +parallel/test-debug-v8-fast-api.js +parallel/test-delayed-require.js +parallel/test-destroy-socket-in-lookup.js +parallel/test-dgram-abort-closed.js +parallel/test-dgram-address.js +parallel/test-dgram-bind-default-address.js +parallel/test-dgram-bind-error-repeat.js +parallel/test-dgram-bind-fd-error.js +parallel/test-dgram-bind-fd.js +parallel/test-dgram-bind.js +parallel/test-dgram-bind-socket-close-before-cluster-reply.js +parallel/test-dgram-bind-socket-close-before-lookup.js +parallel/test-dgram-blocklist.js +parallel/test-dgram-bytes-length.js +parallel/test-dgram-close-during-bind.js +parallel/test-dgram-close-in-listening.js +parallel/test-dgram-close-is-not-callback.js +parallel/test-dgram-close.js +parallel/test-dgram-close-signal.js +parallel/test-dgram-cluster-bind-error.js +parallel/test-dgram-cluster-close-during-bind.js +parallel/test-dgram-cluster-close-in-listening.js +parallel/test-dgram-connect.js +parallel/test-dgram-connect-send-callback-buffer.js +parallel/test-dgram-connect-send-callback-buffer-length.js +parallel/test-dgram-connect-send-callback-multi-buffer.js +parallel/test-dgram-connect-send-default-host.js +parallel/test-dgram-connect-send-empty-array.js +parallel/test-dgram-connect-send-empty-buffer.js +parallel/test-dgram-connect-send-empty-packet.js +parallel/test-dgram-connect-send-multi-buffer-copy.js +parallel/test-dgram-connect-send-multi-string-array.js +parallel/test-dgram-create-socket-handle-fd.js +parallel/test-dgram-create-socket-handle.js +parallel/test-dgram-createSocket-type.js +parallel/test-dgram-custom-lookup.js +parallel/test-dgram-deprecation-error.js +parallel/test-dgram-error-message-address.js +parallel/test-dgram-exclusive-implicit-bind.js +parallel/test-dgram-implicit-bind.js +parallel/test-dgram-ipv6only.js +parallel/test-dgram-listen-after-bind.js +parallel/test-dgram-membership.js +parallel/test-dgram-msgsize.js +parallel/test-dgram-multicast-loopback.js +parallel/test-dgram-multicast-set-interface.js +parallel/test-dgram-multicast-setTTL.js +parallel/test-dgram-oob-buffer.js +parallel/test-dgram-recv-error.js +parallel/test-dgram-ref.js +parallel/test-dgram-reuseport.js +parallel/test-dgram-send-address-types.js +parallel/test-dgram-send-bad-arguments.js +parallel/test-dgram-send-callback-buffer-empty-address.js +parallel/test-dgram-send-callback-buffer.js +parallel/test-dgram-send-callback-buffer-length-empty-address.js +parallel/test-dgram-send-callback-buffer-length.js +parallel/test-dgram-send-callback-multi-buffer-empty-address.js +parallel/test-dgram-send-callback-multi-buffer.js +parallel/test-dgram-send-callback-recursive.js +parallel/test-dgram-send-cb-quelches-error.js +parallel/test-dgram-send-default-host.js +parallel/test-dgram-send-empty-array.js +parallel/test-dgram-send-empty-buffer.js +parallel/test-dgram-send-empty-packet.js +parallel/test-dgram-send-error.js +parallel/test-dgram-send-invalid-msg-type.js +parallel/test-dgram-send-multi-buffer-copy.js +parallel/test-dgram-send-multi-string-array.js +parallel/test-dgram-send-queue-info.js +parallel/test-dgram-sendto.js +parallel/test-dgram-setBroadcast.js +parallel/test-dgram-setTTL.js +parallel/test-dgram-socket-buffer-size.js +parallel/test-dgram-udp4.js +parallel/test-dgram-udp6-link-local-address.js +parallel/test-dgram-udp6-send-default-host.js +parallel/test-dgram-unref-in-cluster.js +parallel/test-dgram-unref.js +parallel/test-diagnostic-channel-http-request-created.js +parallel/test-diagnostic-channel-http-response-created.js +parallel/test-diagnostics-channel-bind-store.js +parallel/test-diagnostics-channel-has-subscribers.js +parallel/test-diagnostics-channel-http.js +parallel/test-diagnostics-channel-http-server-start.js +parallel/test-diagnostics-channel-memory-leak.js +parallel/test-diagnostics-channel-module-import-error.js +parallel/test-diagnostics-channel-module-import.js +parallel/test-diagnostics-channel-module-require-error.js +parallel/test-diagnostics-channel-module-require.js +parallel/test-diagnostics-channel-net.js +parallel/test-diagnostics-channel-object-channel-pub-sub.js +parallel/test-diagnostics-channel-process.js +parallel/test-diagnostics-channel-pub-sub.js +parallel/test-diagnostics-channel-safe-subscriber-errors.js +parallel/test-diagnostics-channel-symbol-named.js +parallel/test-diagnostics-channel-sync-unsubscribe.js +parallel/test-diagnostics-channel-tracing-channel-args-types.js +parallel/test-diagnostics-channel-tracing-channel-callback-early-exit.js +parallel/test-diagnostics-channel-tracing-channel-callback-error.js +parallel/test-diagnostics-channel-tracing-channel-callback.js +parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js +parallel/test-diagnostics-channel-tracing-channel-has-subscribers.js +parallel/test-diagnostics-channel-tracing-channel-promise-early-exit.js +parallel/test-diagnostics-channel-tracing-channel-promise-error.js +parallel/test-diagnostics-channel-tracing-channel-promise.js +parallel/test-diagnostics-channel-tracing-channel-promise-run-stores.js +parallel/test-diagnostics-channel-tracing-channel-sync-early-exit.js +parallel/test-diagnostics-channel-tracing-channel-sync-error.js +parallel/test-diagnostics-channel-tracing-channel-sync.js +parallel/test-diagnostics-channel-tracing-channel-sync-run-stores.js +parallel/test-diagnostics-channel-udp.js +parallel/test-diagnostics-channel-worker-threads.js +parallel/test-directory-import.js +parallel/test-disable-proto-delete.js +parallel/test-disable-proto-throw.js +parallel/test-disable-sigusr1.js +parallel/test-dns-cancel-reverse-lookup.js +parallel/test-dns-channel-cancel.js +parallel/test-dns-channel-cancel-promise.js +parallel/test-dns-channel-timeout.js +parallel/test-dns-default-order-ipv4.js +parallel/test-dns-default-order-ipv6.js +parallel/test-dns-default-order-verbatim.js +parallel/test-dns-get-server.js +parallel/test-dns.js +parallel/test-dns-lookup.js +parallel/test-dns-lookup-promises.js +parallel/test-dns-lookup-promises-options-deprecated.js +parallel/test-dns-lookupService.js +parallel/test-dns-lookupService-promises.js +parallel/test-dns-memory-error.js +parallel/test-dns-multi-channel.js +parallel/test-dns-perf_hooks.js +parallel/test-dns-promises-exists.js +parallel/test-dns-resolveany-bad-ancount.js +parallel/test-dns-resolveany.js +parallel/test-dns-resolvens-typeerror.js +parallel/test-dns-resolve-promises.js +parallel/test-dns-set-default-order.js +parallel/test-dns-setlocaladdress.js +parallel/test-dns-setservers-type-check.js +parallel/test-dns-setserver-when-querying.js +parallel/test-domain-abort-on-uncaught.js +parallel/test-domain-add-remove.js +parallel/test-domain-async-id-map-leak.js +parallel/test-domain-bind-timeout.js +parallel/test-domain-crypto.js +parallel/test-domain-dep0097.js +parallel/test-domain-ee-error-listener.js +parallel/test-domain-ee-implicit.js +parallel/test-domain-ee.js +parallel/test-domain-emit-error-handler-stack.js +parallel/test-domain-enter-exit.js +parallel/test-domain-error-types.js +parallel/test-domain-from-timer.js +parallel/test-domain-fs-enoent-stream.js +parallel/test-domain-http-server.js +parallel/test-domain-implicit-binding.js +parallel/test-domain-implicit-fs.js +parallel/test-domain-intercept.js +parallel/test-domain-load-after-set-uncaught-exception-capture.js +parallel/test-domain-multi.js +parallel/test-domain-multiple-errors.js +parallel/test-domain-nested.js +parallel/test-domain-nested-throw.js +parallel/test-domain-nexttick.js +parallel/test-domain-no-error-handler-abort-on-uncaught-0.js +parallel/test-domain-no-error-handler-abort-on-uncaught-1.js +parallel/test-domain-no-error-handler-abort-on-uncaught-2.js +parallel/test-domain-no-error-handler-abort-on-uncaught-3.js +parallel/test-domain-no-error-handler-abort-on-uncaught-4.js +parallel/test-domain-no-error-handler-abort-on-uncaught-5.js +parallel/test-domain-no-error-handler-abort-on-uncaught-6.js +parallel/test-domain-no-error-handler-abort-on-uncaught-7.js +parallel/test-domain-no-error-handler-abort-on-uncaught-8.js +parallel/test-domain-no-error-handler-abort-on-uncaught-9.js +parallel/test-domain-promise.js +parallel/test-domain-run.js +parallel/test-domain-safe-exit.js +parallel/test-domain-set-uncaught-exception-capture-after-load.js +parallel/test-domain-stack-empty-in-process-uncaughtexception.js +parallel/test-domain-stack.js +parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js +parallel/test-domain-thrown-error-handler-stack.js +parallel/test-domain-timer.js +parallel/test-domain-timers.js +parallel/test-domain-timers-uncaught-exception.js +parallel/test-domain-top-level-error-handler-clears-stack.js +parallel/test-domain-top-level-error-handler-throw.js +parallel/test-domain-uncaught-exception.js +parallel/test-domain-vm-promise-isolation.js +parallel/test-domain-with-abort-on-uncaught-exception.js +parallel/test-domexception-cause.js +parallel/test-dotenv-edge-cases.js +parallel/test-dotenv-node-options.js +parallel/test-double-tls-client.js +parallel/test-double-tls-server.js +parallel/test-dsa-fips-invalid-key.js +parallel/test-dummy-stdio.js +parallel/test-emit-after-uncaught-exception.js +parallel/test-env-newprotomethod-remove-unnecessary-prototypes.js +parallel/test-env-var-no-warnings.js +parallel/test-err-name-deprecation.js +parallel/test-error-aggregateTwoErrors.js +parallel/test-error-format-list.js +parallel/test-error-prepare-stack-trace.js +parallel/test-error-reporting.js +parallel/test-errors-aborterror.js +parallel/test-errors-hide-stack-frames.js +parallel/test-errors-systemerror-frozen-intrinsics.js +parallel/test-errors-systemerror.js +parallel/test-errors-systemerror-stackTraceLimit-custom-setter.js +parallel/test-errors-systemerror-stackTraceLimit-deleted-and-Error-sealed.js +parallel/test-errors-systemerror-stackTraceLimit-deleted.js +parallel/test-errors-systemerror-stackTraceLimit-has-only-a-getter.js +parallel/test-errors-systemerror-stackTraceLimit-not-writable.js +parallel/test-eslint-alphabetize-errors.js +parallel/test-eslint-alphabetize-primordials.js +parallel/test-eslint-async-iife-no-unused-result.js +parallel/test-eslint-avoid-prototype-pollution.js +parallel/test-eslint-crypto-check.js +parallel/test-eslint-documented-deprecation-codes.js +parallel/test-eslint-documented-errors.js +parallel/test-eslint-duplicate-requires.js +parallel/test-eslint-eslint-check.js +parallel/test-eslint-inspector-check.js +parallel/test-eslint-lowercase-name-for-primitive.js +parallel/test-eslint-no-array-destructuring.js +parallel/test-eslint-non-ascii-character.js +parallel/test-eslint-no-unescaped-regexp-dot.js +parallel/test-eslint-prefer-assert-iferror.js +parallel/test-eslint-prefer-assert-methods.js +parallel/test-eslint-prefer-common-mustnotcall.js +parallel/test-eslint-prefer-common-mustsucceed.js +parallel/test-eslint-prefer-optional-chaining.js +parallel/test-eslint-prefer-primordials.js +parallel/test-eslint-prefer-proto.js +parallel/test-eslint-prefer-util-format-errors.js +parallel/test-eslint-require-common-first.js +parallel/test-eslint-required-modules.js +parallel/test-esm-loader-hooks-inspect-brk.js +parallel/test-esm-loader-hooks-inspect-wait.js +parallel/test-eval-disallow-code-generation-from-strings.js +parallel/test-eval.js +parallel/test-eval-strict-referenceerror.js +parallel/test-event-capture-rejections.js +parallel/test-event-emitter-add-listeners.js +parallel/test-eventemitter-asyncresource.js +parallel/test-event-emitter-check-listener-leaks.js +parallel/test-event-emitter-emit-context.js +parallel/test-event-emitter-error-monitor.js +parallel/test-event-emitter-errors.js +parallel/test-event-emitter-get-max-listeners.js +parallel/test-event-emitter-invalid-listener.js +parallel/test-event-emitter-listener-count.js +parallel/test-event-emitter-listeners.js +parallel/test-event-emitter-listeners-side-effects.js +parallel/test-event-emitter-max-listeners.js +parallel/test-event-emitter-max-listeners-warning-for-null.js +parallel/test-event-emitter-max-listeners-warning-for-symbol.js +parallel/test-event-emitter-max-listeners-warning.js +parallel/test-event-emitter-method-names.js +parallel/test-event-emitter-modify-in-emit.js +parallel/test-event-emitter-no-error-provided-to-error-event.js +parallel/test-event-emitter-num-args.js +parallel/test-event-emitter-once.js +parallel/test-event-emitter-prepend.js +parallel/test-event-emitter-remove-all-listeners.js +parallel/test-event-emitter-remove-listeners.js +parallel/test-event-emitter-set-max-listeners-side-effects.js +parallel/test-event-emitter-special-event-names.js +parallel/test-event-emitter-subclass.js +parallel/test-event-emitter-symbols.js +parallel/test-events-customevent.js +parallel/test-events-getmaxlisteners.js +parallel/test-events-listener-count-with-listener.js +parallel/test-events-list.js +parallel/test-events-on-async-iterator.js +parallel/test-events-once.js +parallel/test-eventsource-disabled.js +parallel/test-eventsource.js +parallel/test-events-static-geteventlisteners.js +parallel/test-events-uncaught-exception-stack.js +parallel/test-eventtarget-brandcheck.js +parallel/test-event-target.js +parallel/test-eventtarget.js +parallel/test-eventtarget-memoryleakwarning.js +parallel/test-eventtarget-once-twice.js +parallel/test-exception-handler2.js +parallel/test-exception-handler.js +parallel/test-experimental-shared-value-conveyor.js +parallel/test-fetch-mock.js +parallel/test-filehandle-close.js +parallel/test-filehandle-readablestream.js +parallel/test-file.js +parallel/test-file-read-noexist.js +parallel/test-file-validate-mode-flag.js +parallel/test-file-write-stream2.js +parallel/test-file-write-stream3.js +parallel/test-file-write-stream4.js +parallel/test-file-write-stream5.js +parallel/test-file-write-stream.js +parallel/test-finalization-registry-shutdown.js +parallel/test-find-package-json.js +parallel/test-fixed-queue.js +parallel/test-force-repl.js +parallel/test-force-repl-with-eval.js +parallel/test-freelist.js +parallel/test-freeze-intrinsics.js +parallel/test-fs-access.js +parallel/test-fs-append-file-flush.js +parallel/test-fs-append-file.js +parallel/test-fs-append-file-sync.js +parallel/test-fs-assert-encoding-error.js +parallel/test-fs-buffer.js +parallel/test-fs-buffertype-writesync.js +parallel/test-fs-chmod.js +parallel/test-fs-chmod-mask.js +parallel/test-fs-chown-type-check.js +parallel/test-fs-close-errors.js +parallel/test-fs-close.js +parallel/test-fs-constants.js +parallel/test-fs-copyfile.js +parallel/test-fs-copyfile-respect-permissions.js +parallel/test-fs-empty-readStream.js +parallel/test-fs-error-messages.js +parallel/test-fs-exists.js +parallel/test-fs-existssync-false.js +parallel/test-fs-fchmod.js +parallel/test-fs-fchown.js +parallel/test-fs-filehandle.js +parallel/test-fs-filehandle-use-after-close.js +parallel/test-fs-fmap.js +parallel/test-fs-fsync.js +parallel/test-fs-lchmod.js +parallel/test-fs-lchown.js +parallel/test-fs-link.js +parallel/test-fs-long-path.js +parallel/test-fs-make-callback.js +parallel/test-fs-makeStatsCallback.js +parallel/test-fs-mkdir.js +parallel/test-fs-mkdir-mode-mask.js +parallel/test-fs-mkdir-recursive-eaccess.js +parallel/test-fs-mkdir-rmdir.js +parallel/test-fs-mkdtemp.js +parallel/test-fs-mkdtemp-prefix-check.js +parallel/test-fs-non-number-arguments-throw.js +parallel/test-fs-null-bytes.js +parallel/test-fs-opendir.js +parallel/test-fs-open-flags.js +parallel/test-fs-open.js +parallel/test-fs-open-mode-mask.js +parallel/test-fs-open-no-close.js +parallel/test-fs-open-numeric-flags.js +parallel/test-fs-operations-with-surrogate-pairs.js +parallel/test-fs-options-immutable.js +parallel/test-fs-promises-exists.js +parallel/test-fs-promises-file-handle-aggregate-errors.js +parallel/test-fs-promises-file-handle-append-file.js +parallel/test-fs-promises-file-handle-chmod.js +parallel/test-fs-promises-file-handle-close-errors.js +parallel/test-fs-promises-file-handle-close.js +parallel/test-fs-promises-file-handle-dispose.js +parallel/test-fs-promises-file-handle-op-errors.js +parallel/test-fs-promises-file-handle-readFile.js +parallel/test-fs-promises-file-handle-read.js +parallel/test-fs-promises-file-handle-read-worker.js +parallel/test-fs-promises-file-handle-stat.js +parallel/test-fs-promises-file-handle-stream.js +parallel/test-fs-promises-file-handle-sync.js +parallel/test-fs-promises-file-handle-truncate.js +parallel/test-fs-promises-file-handle-writeFile.js +parallel/test-fs-promises-file-handle-write.js +parallel/test-fs-promises.js +parallel/test-fs-promises-readfile-empty.js +parallel/test-fs-promises-readfile.js +parallel/test-fs-promises-readfile-with-fd.js +parallel/test-fs-promises-watch.js +parallel/test-fs-promises-writefile.js +parallel/test-fs-promises-writefile-typedarray.js +parallel/test-fs-promises-writefile-with-fd.js +parallel/test-fs-promises-write-optional-params.js +parallel/test-fs-promisified.js +parallel/test-fs-readdir-buffer.js +parallel/test-fs-readdir.js +parallel/test-fs-readdir-pipe.js +parallel/test-fs-readdir-recursive.js +parallel/test-fs-readdir-stack-overflow.js +parallel/test-fs-readdir-types.js +parallel/test-fs-readdir-types-symlinks.js +parallel/test-fs-readdir-ucs2.js +parallel/test-fs-read-empty-buffer.js +parallel/test-fs-read-file-assert-encoding.js +parallel/test-fs-readfile-empty.js +parallel/test-fs-readfile-eof.js +parallel/test-fs-readfile-error.js +parallel/test-fs-readfile-fd.js +parallel/test-fs-readfile-flags.js +parallel/test-fs-readfile.js +parallel/test-fs-readfile-pipe.js +parallel/test-fs-readfile-pipe-large.js +parallel/test-fs-readfilesync-enoent.js +parallel/test-fs-read-file-sync-hostname.js +parallel/test-fs-read-file-sync.js +parallel/test-fs-readfilesync-pipe-large.js +parallel/test-fs-readfile-unlink.js +parallel/test-fs-readfile-zero-byte-liar.js +parallel/test-fs-read.js +parallel/test-fs-readlink-type-check.js +parallel/test-fs-read-offset-null.js +parallel/test-fs-read-optional-params.js +parallel/test-fs-read-promises-optional-params.js +parallel/test-fs-read-stream-autoClose.js +parallel/test-fs-read-stream-concurrent-reads.js +parallel/test-fs-read-stream-double-close.js +parallel/test-fs-read-stream-encoding.js +parallel/test-fs-read-stream-err.js +parallel/test-fs-read-stream-fd.js +parallel/test-fs-read-stream-fd-leak.js +parallel/test-fs-read-stream-file-handle.js +parallel/test-fs-read-stream-inherit.js +parallel/test-fs-read-stream.js +parallel/test-fs-read-stream-patch-open.js +parallel/test-fs-read-stream-pos.js +parallel/test-fs-read-stream-resume.js +parallel/test-fs-read-stream-throw-type-error.js +parallel/test-fs-readSync-optional-params.js +parallel/test-fs-read-type.js +parallel/test-fs-readv.js +parallel/test-fs-readv-promises.js +parallel/test-fs-readv-promisify.js +parallel/test-fs-readv-sync.js +parallel/test-fs-ready-event-stream.js +parallel/test-fs-read-zero-length.js +parallel/test-fs-realpath-buffer-encoding.js +parallel/test-fs-realpath.js +parallel/test-fs-realpath-on-substed-drive.js +parallel/test-fs-realpath-pipe.js +parallel/test-fs-rename-type-check.js +parallel/test-fs-rmdir-recursive.js +parallel/test-fs-rmdir-recursive-sync-warns-not-found.js +parallel/test-fs-rmdir-recursive-sync-warns-on-file.js +parallel/test-fs-rmdir-recursive-throws-not-found.js +parallel/test-fs-rmdir-recursive-throws-on-file.js +parallel/test-fs-rmdir-recursive-warns-not-found.js +parallel/test-fs-rmdir-recursive-warns-on-file.js +parallel/test-fs-rmdir-type-check.js +parallel/test-fs-rm.js +parallel/test-fs-sir-writes-alot.js +parallel/test-fs-stat-bigint.js +parallel/test-fs-statfs.js +parallel/test-fs-stat.js +parallel/test-fs-stream-construct-compat-error-read.js +parallel/test-fs-stream-construct-compat-error-write.js +parallel/test-fs-stream-construct-compat-graceful-fs.js +parallel/test-fs-stream-construct-compat-old-node.js +parallel/test-fs-stream-destroy-emit-error.js +parallel/test-fs-stream-double-close.js +parallel/test-fs-stream-fs-options.js +parallel/test-fs-stream-options.js +parallel/test-fs-symlink-buffer-path.js +parallel/test-fs-symlink-dir.js +parallel/test-fs-symlink-dir-junction.js +parallel/test-fs-symlink-dir-junction-relative.js +parallel/test-fs-symlink.js +parallel/test-fs-symlink-longpath.js +parallel/test-fs-sync-fd-leak.js +parallel/test-fs-syncwritestream.js +parallel/test-fs-timestamp-parsing-error.js +parallel/test-fs-truncate-clear-file-zero.js +parallel/test-fs-truncate-fd.js +parallel/test-fs-truncate.js +parallel/test-fs-truncate-sync.js +parallel/test-fs-unlink-type-check.js +parallel/test-fs-utils-get-dirents.js +parallel/test-fs-util-validateoffsetlength.js +parallel/test-fs-utimes.js +# Test disabled on 3.18.2025 as: +# utime-y2K38 has issues because i686 can't handle dates past 2038 +# and the support for this arch is no longer required +parallel/test-fs-utimes-y2K38.js i686 +parallel/test-fs-watch-abort-signal.js +parallel/test-fs-watch-close-when-destroyed.js +parallel/test-fs-watch-encoding.js +parallel/test-fs-watch-enoent.js +parallel/test-fs-watchfile-bigint.js +parallel/test-fs-watch-file-enoent-after-deletion.js +parallel/test-fs-watchfile.js +parallel/test-fs-watchfile-ref-unref.js +parallel/test-fs-watch.js +parallel/test-fs-watch-recursive-add-file.js +parallel/test-fs-watch-recursive-add-file-to-existing-subfolder.js +parallel/test-fs-watch-recursive-add-file-to-new-folder.js +parallel/test-fs-watch-recursive-add-file-with-url.js +parallel/test-fs-watch-recursive-add-folder.js +parallel/test-fs-watch-recursive-assert-leaks.js +parallel/test-fs-watch-recursive-delete.js +parallel/test-fs-watch-recursive-linux-parallel-remove.js +parallel/test-fs-watch-recursive-promise.js +parallel/test-fs-watch-recursive-symlink.js +parallel/test-fs-watch-recursive-sync-write.js +parallel/test-fs-watch-recursive-update-file.js +parallel/test-fs-watch-recursive-validate.js +parallel/test-fs-watch-recursive-watch-file.js +parallel/test-fs-watch-ref-unref.js +parallel/test-fs-watch-stop-async.js +parallel/test-fs-watch-stop-sync.js +parallel/test-fs-whatwg-url.js +parallel/test-fs-write-buffer.js +parallel/test-fs-write-buffer-large.js +parallel/test-fs-write-file-buffer.js +parallel/test-fs-write-file-flush.js +parallel/test-fs-write-file-invalid-path.js +parallel/test-fs-write-file.js +parallel/test-fs-write-file-sync.js +parallel/test-fs-write-file-typedarrays.js +parallel/test-fs-writefile-with-fd.js +parallel/test-fs-write.js +parallel/test-fs-write-negativeoffset.js +parallel/test-fs-write-no-fd.js +parallel/test-fs-write-optional-params.js +parallel/test-fs-write-reuse-callback.js +parallel/test-fs-write-sigxfsz.js +parallel/test-fs-write-stream-autoclose-option.js +parallel/test-fs-write-stream-change-open.js +parallel/test-fs-write-stream-close-without-callback.js +parallel/test-fs-write-stream-double-close.js +parallel/test-fs-write-stream-encoding.js +parallel/test-fs-write-stream-end.js +parallel/test-fs-write-stream-err.js +parallel/test-fs-write-stream-file-handle-2.js +parallel/test-fs-write-stream-file-handle.js +parallel/test-fs-write-stream-flush.js +parallel/test-fs-write-stream-fs.js +parallel/test-fs-write-stream.js +parallel/test-fs-writestream-open-write.js +parallel/test-fs-write-stream-patch-open.js +parallel/test-fs-write-stream-throw-type-error.js +parallel/test-fs-write-sync.js +parallel/test-fs-write-sync-optional-params.js +parallel/test-fs-writev.js +parallel/test-fs-writev-promises.js +parallel/test-fs-writev-sync.js +parallel/test-gc-http-client-connaborted.js +parallel/test-gc-net-timeout.js +parallel/test-gc-tls-external-memory.js +parallel/test-global-console-exists.js +parallel/test-global-customevent-disabled.js +parallel/test-global-customevent.js +parallel/test-global-domexception.js +parallel/test-global-encoder.js +parallel/test-global.js +parallel/test-global-setters.js +parallel/test-global-webcrypto-classes.js +parallel/test-global-webcrypto-disbled.js +parallel/test-global-webcrypto.js +parallel/test-global-webstreams.js +parallel/test-h2-large-header-cause-client-to-hangup.js +parallel/test-h2leak-destroy-session-on-socket-ended.js +parallel/test-handle-wrap-close-abort.js +parallel/test-handle-wrap-hasref.js +parallel/test-heapdump-async-hooks-init-promise.js +parallel/test-heap-prof-basic.js +parallel/test-heap-prof-dir-absolute.js +parallel/test-heap-prof-dir-name.js +parallel/test-heap-prof-dir-relative.js +parallel/test-heap-prof-exec-argv.js +parallel/test-heap-prof-exit.js +parallel/test-heap-prof-interval.js +parallel/test-heap-prof-invalid-args.js +parallel/test-heap-prof-loop-drained.js +parallel/test-heap-prof-name.js +parallel/test-heap-prof-sigint.js +parallel/test-heapsnapshot-near-heap-limit-by-api-in-worker.js +parallel/test-heapsnapshot-near-heap-limit-worker.js +parallel/test-http-1.0.js +parallel/test-http-1.0-keep-alive.js +parallel/test-http2-allow-http1.js +parallel/test-http2-alpn.js +parallel/test-http2-altsvc.js +parallel/test-http2-async-local-storage.js +parallel/test-http2-autoselect-protocol.js +parallel/test-http2-backpressure.js +parallel/test-http2-binding.js +parallel/test-http2-buffersize.js +parallel/test-http2-byteswritten-server.js +parallel/test-http2-cancel-while-client-reading.js +parallel/test-http2-capture-rejection.js +parallel/test-http2-clean-output.js +parallel/test-http2-client-connection-tunnelling.js +parallel/test-http2-client-data-end.js +parallel/test-http2-client-destroy.js +parallel/test-http2-client-http1-server.js +parallel/test-http2-client-jsstream-destroy.js +parallel/test-http2-client-onconnect-errors.js +parallel/test-http2-client-port-80.js +parallel/test-http2-client-priority-before-connect.js +parallel/test-http2-client-promisify-connect-error.js +parallel/test-http2-client-promisify-connect.js +parallel/test-http2-client-proxy-over-http2.js +parallel/test-http2-client-request-listeners-warning.js +parallel/test-http2-client-request-options-errors.js +parallel/test-http2-client-rststream-before-connect.js +parallel/test-http2-client-setLocalWindowSize.js +parallel/test-http2-client-setNextStreamID-errors.js +parallel/test-http2-client-set-priority.js +parallel/test-http2-client-settings-before-connect.js +parallel/test-http2-client-shutdown-before-connect.js +parallel/test-http2-client-socket-destroy.js +parallel/test-http2-client-stream-destroy-before-connect.js +parallel/test-http2-client-unescaped-path.js +parallel/test-http2-client-upload.js +parallel/test-http2-client-upload-reject.js +parallel/test-http2-client-write-before-connect.js +parallel/test-http2-client-write-empty-string.js +parallel/test-http2-close-while-writing.js +parallel/test-http2-compat-aborted.js +parallel/test-http2-compat-client-upload-reject.js +parallel/test-http2-compat-errors.js +parallel/test-http2-compat-expect-continue-check.js +parallel/test-http2-compat-expect-continue.js +parallel/test-http2-compat-expect-handling.js +parallel/test-http2-compat-method-connect.js +parallel/test-http2-compat-serverrequest-end.js +parallel/test-http2-compat-serverrequest-headers.js +parallel/test-http2-compat-serverrequest-host.js +parallel/test-http2-compat-serverrequest.js +parallel/test-http2-compat-serverrequest-pause.js +parallel/test-http2-compat-serverrequest-pipe.js +parallel/test-http2-compat-serverrequest-settimeout.js +parallel/test-http2-compat-serverrequest-trailers.js +parallel/test-http2-compat-serverresponse-close.js +parallel/test-http2-compat-serverresponse-createpushresponse.js +parallel/test-http2-compat-serverresponse-destroy.js +parallel/test-http2-compat-serverresponse-drain.js +parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js +parallel/test-http2-compat-serverresponse-end.js +parallel/test-http2-compat-serverresponse-finished.js +parallel/test-http2-compat-serverresponse-flushheaders.js +parallel/test-http2-compat-serverresponse-headers-after-destroy.js +parallel/test-http2-compat-serverresponse-headers.js +parallel/test-http2-compat-serverresponse-headers-send-date.js +parallel/test-http2-compat-serverresponse.js +parallel/test-http2-compat-serverresponse-settimeout.js +parallel/test-http2-compat-serverresponse-statuscode.js +parallel/test-http2-compat-serverresponse-statusmessage.js +parallel/test-http2-compat-serverresponse-statusmessage-property.js +parallel/test-http2-compat-serverresponse-statusmessage-property-set.js +parallel/test-http2-compat-serverresponse-trailers.js +parallel/test-http2-compat-serverresponse-writehead-array.js +parallel/test-http2-compat-serverresponse-writehead.js +parallel/test-http2-compat-serverresponse-write.js +parallel/test-http2-compat-short-stream-client-server.js +parallel/test-http2-compat-socket-destroy-delayed.js +parallel/test-http2-compat-socket.js +parallel/test-http2-compat-socket-set.js +parallel/test-http2-compat-write-early-hints-invalid-argument-type.js +parallel/test-http2-compat-write-early-hints-invalid-argument-value.js +parallel/test-http2-compat-write-early-hints.js +parallel/test-http2-compat-write-head-destroyed.js +parallel/test-http2-connect.js +parallel/test-http2-connect-method-extended-cant-turn-off.js +parallel/test-http2-connect-method-extended.js +parallel/test-http2-connect-method.js +parallel/test-http2-connect-options.js +parallel/test-http2-connect-tls-with-delay.js +parallel/test-http2-cookies.js +parallel/test-http2-create-client-connect.js +parallel/test-http2-create-client-secure-session.js +parallel/test-http2-create-client-session.js +parallel/test-http2-createsecureserver-options.js +parallel/test-http2-createserver-options.js +parallel/test-http2-createwritereq.js +parallel/test-http2-date-header.js +parallel/test-http2-debug.js +parallel/test-http2-destroy-after-write.js +parallel/test-http2-dont-lose-data.js +parallel/test-http2-dont-override.js +parallel/test-http2-empty-frame-without-eof.js +parallel/test-http2-endafterheaders.js +parallel/test-http2-error-order.js +parallel/test-http2-exceeds-server-trailer-size.js +parallel/test-http2-forget-closed-streams.js +parallel/test-http2-generic-streams.js +parallel/test-http2-generic-streams-sendfile.js +parallel/test-http2-getpackedsettings.js +parallel/test-http2-goaway-delayed-request.js +parallel/test-http2-goaway-opaquedata.js +parallel/test-http2-head-request.js +parallel/test-http2-https-fallback-http-server-options.js +parallel/test-http2-https-fallback.js +parallel/test-http2-info-headers-errors.js +parallel/test-http2-info-headers.js +parallel/test-http2-invalidargtypes-errors.js +parallel/test-http2-invalidheaderfield.js +parallel/test-http2-invalidheaderfields-client.js +parallel/test-http2-ip-address-host.js +parallel/test-http2-large-write-close.js +parallel/test-http2-large-write-destroy.js +parallel/test-http2-large-write-multiple-requests.js +parallel/test-http2-large-writes-session-memory-leak.js +parallel/test-http2-malformed-altsvc.js +parallel/test-http2-many-writes-and-destroy.js +parallel/test-http2-max-concurrent-streams.js +parallel/test-http2-max-invalid-frames.js +parallel/test-http2-max-session-memory-leak.js +parallel/test-http2-max-settings.js +parallel/test-http2-methods.js +parallel/test-http2-misbehaving-flow-control.js +parallel/test-http2-misbehaving-flow-control-paused.js +parallel/test-http2-misbehaving-multiplex.js +parallel/test-http2-misc-util.js +parallel/test-http2-misused-pseudoheaders.js +parallel/test-http2-multi-content-length.js +parallel/test-http2-multiheaders.js +parallel/test-http2-multiheaders-raw.js +parallel/test-http2-multiplex.js +parallel/test-http2-multistream-destroy-on-read-tls.js +parallel/test-http2-no-more-streams.js +parallel/test-http2-no-wanttrailers-listener.js +parallel/test-http2-onping.js +parallel/test-http2-options-max-headers-block-length.js +parallel/test-http2-options-max-headers-exceeds-nghttp2.js +parallel/test-http2-options-max-reserved-streams.js +parallel/test-http2-options-server-request.js +parallel/test-http2-options-server-response.js +parallel/test-http2-origin.js +parallel/test-http2-pack-end-stream-flag.js +parallel/test-http2-padding-aligned.js +parallel/test-http2-perf_hooks.js +parallel/test-http2-perform-server-handshake.js +parallel/test-http2-ping.js +parallel/test-http2-ping-settings-heapdump.js +parallel/test-http2-ping-unsolicited-ack.js +parallel/test-http2-pipe.js +parallel/test-http2-pipe-named-pipe.js +parallel/test-http2-priority-cycle-.js +parallel/test-http2-priority-event.js +parallel/test-http2-propagate-session-destroy-code.js +parallel/test-http2-removed-header-stays-removed.js +parallel/test-http2-request-remove-connect-listener.js +parallel/test-http2-request-response-proto.js +parallel/test-http2-res-corked.js +parallel/test-http2-reset-flood.js +parallel/test-http2-respond-errors.js +parallel/test-http2-respond-file-204.js +parallel/test-http2-respond-file-304.js +parallel/test-http2-respond-file-404.js +parallel/test-http2-respond-file-compat.js +parallel/test-http2-respond-file-error-dir.js +parallel/test-http2-respond-file-error-pipe-offset.js +parallel/test-http2-respond-file-errors.js +parallel/test-http2-respond-file-fd-errors.js +parallel/test-http2-respond-file-fd-invalid.js +parallel/test-http2-respond-file-fd.js +parallel/test-http2-respond-file-fd-range.js +parallel/test-http2-respond-file-filehandle.js +parallel/test-http2-respond-file.js +parallel/test-http2-respond-file-push.js +parallel/test-http2-respond-file-range.js +parallel/test-http2-respond-file-with-pipe.js +parallel/test-http2-respond-nghttperrors.js +parallel/test-http2-respond-no-data.js +parallel/test-http2-respond-with-fd-errors.js +parallel/test-http2-respond-with-file-connection-abort.js +parallel/test-http2-response-splitting.js +parallel/test-http2-res-writable-properties.js +parallel/test-http2-sensitive-headers.js +parallel/test-http2-sent-headers.js +parallel/test-http2-serve-file.js +parallel/test-http2-server-async-dispose.js +parallel/test-http2-server-close-callback.js +parallel/test-http2-server-errors.js +parallel/test-http2-server-http1-client.js +parallel/test-http2-server-push-disabled.js +parallel/test-http2-server-push-stream-errors-args.js +parallel/test-http2-server-push-stream-errors.js +parallel/test-http2-server-push-stream-head.js +parallel/test-http2-server-push-stream.js +parallel/test-http2-server-rst-before-respond.js +parallel/test-http2-server-rst-stream.js +parallel/test-http2-server-session-destroy.js +parallel/test-http2-server-sessionerror.js +parallel/test-http2-server-set-header.js +parallel/test-http2-server-setLocalWindowSize.js +parallel/test-http2-server-settimeout-no-callback.js +parallel/test-http2-server-shutdown-before-respond.js +parallel/test-http2-server-shutdown-options-errors.js +parallel/test-http2-server-shutdown-redundant.js +parallel/test-http2-server-socket-destroy.js +parallel/test-http2-server-startup.js +parallel/test-http2-server-stream-session-destroy.js +parallel/test-http2-server-timeout.js +parallel/test-http2-server-unknown-protocol.js +parallel/test-http2-session-gc-while-write-scheduled.js +parallel/test-http2-session-settings.js +parallel/test-http2-session-stream-state.js +parallel/test-http2-session-timeout.js +parallel/test-http2-session-unref.js +parallel/test-http2-settings-unsolicited-ack.js +parallel/test-http2-short-stream-client-server.js +parallel/test-http2-single-headers.js +parallel/test-http2-socket-close.js +parallel/test-http2-socket-proxy-handler-for-has.js +parallel/test-http2-socket-proxy.js +parallel/test-http2-status-code-invalid.js +parallel/test-http2-status-code.js +parallel/test-http2-stream-client.js +parallel/test-http2-stream-destroy-event-order.js +parallel/test-http2-stream-removelisteners-after-close.js +parallel/test-http2-timeouts.js +parallel/test-http2-tls-disconnect.js +parallel/test-http2-too-large-headers.js +parallel/test-http2-too-many-headers.js +parallel/test-http2-too-many-settings.js +parallel/test-http2-too-many-streams.js +parallel/test-http2-trailers-after-session-close.js +parallel/test-http2-trailers.js +parallel/test-http2-unbound-socket-proxy.js +parallel/test-http2-update-settings.js +parallel/test-http2-util-asserts.js +parallel/test-http2-util-assert-valid-pseudoheader.js +parallel/test-http2-util-headers-list.js +parallel/test-http2-util-nghttp2error.js +parallel/test-http2-util-update-options-buffer.js +parallel/test-http2-window-size.js +parallel/test-http2-write-callbacks.js +parallel/test-http2-write-empty-string.js +parallel/test-http2-write-finishes-after-stream-destroy.js +parallel/test-http2-zero-length-header.js +parallel/test-http2-zero-length-write.js +parallel/test-http-abort-before-end.js +parallel/test-http-abort-client.js +parallel/test-http-aborted.js +parallel/test-http-abort-queued.js +parallel/test-http-abort-stream-end.js +parallel/test-http-addrequest-localaddress.js +parallel/test-http-after-connect.js +parallel/test-http-agent-abort-controller.js +parallel/test-http-agent-close.js +parallel/test-http-agent-destroyed-socket.js +parallel/test-http-agent-domain-reused-gc.js +parallel/test-http-agent-error-on-idle.js +parallel/test-http-agent-false.js +parallel/test-http-agent-getname.js +parallel/test-http-agent.js +parallel/test-http-agent-keepalive-delay.js +parallel/test-http-agent-keepalive.js +parallel/test-http-agent-maxsockets.js +parallel/test-http-agent-maxsockets-respected.js +parallel/test-http-agent-maxtotalsockets.js +parallel/test-http-agent-no-protocol.js +parallel/test-http-agent-null.js +parallel/test-http-agent-remove.js +parallel/test-http-agent-reuse-drained-socket-only.js +parallel/test-http-agent-scheduling.js +parallel/test-http-agent-timeout.js +parallel/test-http-agent-timeout-option.js +parallel/test-http-agent-uninitialized.js +parallel/test-http-agent-uninitialized-with-handle.js +parallel/test-http-allow-content-length-304.js +parallel/test-http-allow-req-after-204-res.js +parallel/test-http-automatic-headers.js +parallel/test-http-autoselectfamily.js +parallel/test-http-bind-twice.js +parallel/test-http-blank-header.js +parallel/test-http-buffer-sanity.js +parallel/test-http-byteswritten.js +parallel/test-http-catch-uncaughtexception.js +parallel/test-http-chunked-304.js +parallel/test-http-chunked.js +parallel/test-http-chunked-smuggling.js +parallel/test-http-chunk-extensions-limit.js +parallel/test-http-chunk-problem.js +parallel/test-http-client-abort2.js +parallel/test-http-client-abort3.js +parallel/test-http-client-abort-destroy.js +parallel/test-http-client-aborted-event.js +parallel/test-http-client-abort-event.js +parallel/test-http-client-abort.js +parallel/test-http-client-abort-keep-alive-destroy-res.js +parallel/test-http-client-abort-keep-alive-queued-tcp-socket.js +parallel/test-http-client-abort-keep-alive-queued-unix-socket.js +parallel/test-http-client-abort-no-agent.js +parallel/test-http-client-abort-response-event.js +parallel/test-http-client-abort-unix-socket.js +parallel/test-http-client-agent-abort-close-event.js +parallel/test-http-client-agent-end-close-event.js +parallel/test-http-client-agent.js +parallel/test-http-client-check-http-token.js +parallel/test-http-client-close-event.js +parallel/test-http-client-close-with-default-agent.js +parallel/test-http-client-default-headers-exist.js +parallel/test-http-client-defaults.js +parallel/test-http-client-encoding.js +parallel/test-http-client-error-rawbytes.js +parallel/test-http-client-finished.js +parallel/test-http-client-get-url.js +parallel/test-http-client-headers-array.js +parallel/test-http-client-headers-host-array.js +parallel/test-http-client-immediate-error.js +parallel/test-http-client-incomingmessage-destroy.js +parallel/test-http-client-input-function.js +parallel/test-http-client-insecure-http-parser-error.js +parallel/test-http-client-invalid-path.js +parallel/test-http-client-keep-alive-hint.js +parallel/test-http-client-keep-alive-release-before-finish.js +parallel/test-http-client-override-global-agent.js +parallel/test-http-client-parse-error.js +parallel/test-http-client-pipe-end.js +parallel/test-http-client-race-2.js +parallel/test-http-client-race.js +parallel/test-http-client-readable.js +parallel/test-http-client-read-in-error.js +parallel/test-http-client-reject-chunked-with-content-length.js +parallel/test-http-client-reject-cr-no-lf.js +parallel/test-http-client-reject-unexpected-agent.js +parallel/test-http-client-req-error-dont-double-fire.js +parallel/test-http-client-request-options.js +parallel/test-http-client-res-destroyed.js +parallel/test-http-client-response-domain.js +parallel/test-http-client-response-timeout.js +parallel/test-http-client-set-timeout-after-end.js +parallel/test-http-client-set-timeout.js +parallel/test-http-client-spurious-aborted.js +parallel/test-http-client-timeout-agent.js +parallel/test-http-client-timeout-connect-listener.js +parallel/test-http-client-timeout-event.js +parallel/test-http-client-timeout.js +parallel/test-http-client-timeout-on-connect.js +parallel/test-http-client-timeout-option.js +parallel/test-http-client-timeout-option-listeners.js +parallel/test-http-client-timeout-option-with-agent.js +parallel/test-http-client-timeout-with-data.js +parallel/test-http-client-unescaped-path.js +parallel/test-http-client-upload-buf.js +parallel/test-http-client-upload.js +parallel/test-http-client-with-create-connection.js +parallel/test-http-common.js +parallel/test-http-connect.js +parallel/test-http-connect-req-res.js +parallel/test-http-conn-reset.js +parallel/test-http-contentLength0.js +parallel/test-http-content-length.js +parallel/test-http-content-length-mismatch.js +parallel/test-http-correct-hostname.js +parallel/test-http-createConnection.js +parallel/test-http-date-header.js +parallel/test-http-debug.js +parallel/test-http-decoded-auth.js +parallel/test-http-default-encoding.js +parallel/test-http-default-port.js +parallel/test-http-destroyed-socket-write2.js +parallel/test-http-dns-error.js +parallel/test-http-dont-set-default-headers.js +parallel/test-http-dont-set-default-headers-with-set-header.js +parallel/test-http-dont-set-default-headers-with-setHost.js +parallel/test-http-double-content-length.js +parallel/test-http-dummy-characters-smuggling.js +parallel/test-http-dump-req-when-res-ends.js +parallel/test-http-early-hints-invalid-argument.js +parallel/test-http-early-hints.js +parallel/test-http-end-throw-socket-handling.js +parallel/test-http-eof-on-connect.js +parallel/test-http-exceptions.js +parallel/test-http-expect-continue.js +parallel/test-http-expect-handling.js +parallel/test-http-extra-response.js +parallel/test-http-flush-headers.js +parallel/test-http-flush-response-headers.js +parallel/test-http-full-response.js +parallel/test-http-generic-streams.js +parallel/test-http-get-pipeline-problem.js +parallel/test-http-header-badrequest.js +parallel/test-http-header-obstext.js +parallel/test-http-header-overflow.js +parallel/test-http-header-owstext.js +parallel/test-http-header-read.js +parallel/test-http-header-validators.js +parallel/test-http-head-request.js +parallel/test-http-head-response-has-no-body-end-implicit-headers.js +parallel/test-http-head-response-has-no-body-end.js +parallel/test-http-head-response-has-no-body.js +parallel/test-http-head-throw-on-response-body-write.js +parallel/test-http-hex-write.js +parallel/test-http-highwatermark.js +parallel/test-http-host-header-ipv6-fail.js +parallel/test-http-host-headers.js +parallel/test-http-hostname-typechecking.js +parallel/test-http-import-websocket.js +parallel/test-http-incoming-matchKnownFields.js +parallel/test-http-incoming-message-connection-setter.js +parallel/test-http-incoming-message-destroy.js +parallel/test-http-incoming-message-options.js +parallel/test-http-incoming-pipelined-socket-destroy.js +parallel/test-http-information-headers.js +parallel/test-http-information-processing.js +parallel/test-http-insecure-parser.js +parallel/test-http-insecure-parser-per-stream.js +parallel/test-http-invalidheaderfield2.js +parallel/test-http-invalidheaderfield.js +parallel/test-http-invalid-path-chars.js +parallel/test-http-invalid-te.js +parallel/test-http-invalid-urls.js +parallel/test-http.js +parallel/test-http-keepalive-client.js +parallel/test-http-keep-alive-close-on-header.js +parallel/test-http-keep-alive-drop-requests.js +parallel/test-http-keepalive-free.js +parallel/test-http-keep-alive.js +parallel/test-http-keep-alive-max-requests.js +parallel/test-http-keepalive-override.js +parallel/test-http-keep-alive-pipeline-max-requests.js +parallel/test-http-keepalive-request.js +parallel/test-http-keep-alive-timeout-custom.js +parallel/test-http-keep-alive-timeout.js +parallel/test-http-keep-alive-timeout-race-condition.js +parallel/test-http-listening.js +parallel/test-http-localaddress-bind-error.js +parallel/test-http-localaddress.js +parallel/test-http-malformed-request.js +parallel/test-http-many-ended-pipelines.js +parallel/test-http-max-headers-count.js +parallel/test-http-max-header-size.js +parallel/test-http-max-header-size-per-stream.js +parallel/test-http-max-http-headers.js +parallel/test-http-max-sockets.js +parallel/test-http-methods.js +parallel/test-http-missing-header-separator-cr.js +parallel/test-http-missing-header-separator-lf.js +parallel/test-http-multi-line-headers.js +parallel/test-http-multiple-headers.js +parallel/test-http-mutable-headers.js +parallel/test-http-no-content-length.js +parallel/test-http-nodelay.js +parallel/test-http-no-read-no-dump.js +parallel/test-http-outgoing-buffer.js +parallel/test-http-outgoing-destroyed.js +parallel/test-http-outgoing-destroy.js +parallel/test-http-outgoing-end-cork.js +parallel/test-http-outgoing-end-multiple.js +parallel/test-http-outgoing-end-types.js +parallel/test-http-outgoing-finished.js +parallel/test-http-outgoing-finish.js +parallel/test-http-outgoing-finish-writable.js +parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js +parallel/test-http-outgoing-internal-headernames-getter.js +parallel/test-http-outgoing-internal-headernames-setter.js +parallel/test-http-outgoing-internal-headers.js +parallel/test-http-outgoing-message-capture-rejection.js +parallel/test-http-outgoing-message-inheritance.js +parallel/test-http-outgoing-message-write-callback.js +parallel/test-http-outgoing-properties.js +parallel/test-http-outgoing-proto.js +parallel/test-http-outgoing-renderHeaders.js +parallel/test-http-outgoing-settimeout.js +parallel/test-http-outgoing-writableFinished.js +parallel/test-http-outgoing-write-types.js +parallel/test-http-parser-bad-ref.js +parallel/test-http-parser-finish-error.js +parallel/test-http-parser-freed-before-upgrade.js +parallel/test-http-parser-free.js +parallel/test-http-parser.js +parallel/test-http-parser-lazy-loaded.js +parallel/test-http-parser-memory-retention.js +parallel/test-http-parser-multiple-execute.js +parallel/test-http-parser-timeout-reset.js +parallel/test-http-pause.js +parallel/test-http-pause-no-dump.js +parallel/test-http-pause-resume-one-end.js +parallel/test-http-perf_hooks.js +parallel/test-http-pipe-fs.js +parallel/test-http-pipeline-assertionerror-finish.js +parallel/test-http-pipeline-flood.js +parallel/test-http-pipeline-requests-connection-leak.js +parallel/test-http-pipeline-socket-parser-typeerror.js +parallel/test-http-proxy.js +parallel/test-http-raw-headers.js +parallel/test-http-readable-data-event.js +parallel/test-http-remove-connection-header-persists-connection.js +parallel/test-http-remove-header-stays-removed.js +parallel/test-http-req-close-robust-from-tampering.js +parallel/test-http-req-res-close.js +parallel/test-http-request-agent.js +parallel/test-http-request-arguments.js +parallel/test-http-request-dont-override-options.js +parallel/test-http-request-end.js +parallel/test-http-request-end-twice.js +parallel/test-http-request-host-header.js +parallel/test-http-request-invalid-method-error.js +parallel/test-http-request-join-authorization-headers.js +parallel/test-http-request-large-payload.js +parallel/test-http-request-method-delete-payload.js +parallel/test-http-request-methods.js +parallel/test-http-request-smuggling-content-length.js +parallel/test-http-response-add-header-after-sent.js +parallel/test-http-response-close.js +parallel/test-http-response-cork.js +parallel/test-http-response-multi-content-length.js +parallel/test-http-response-multiheaders.js +parallel/test-http-response-no-headers.js +parallel/test-http-response-readable.js +parallel/test-http-response-remove-header-after-sent.js +parallel/test-http-response-setheaders.js +parallel/test-http-response-splitting.js +parallel/test-http-response-statuscode.js +parallel/test-http-response-status-message.js +parallel/test-http-response-writehead-returns-this.js +parallel/test-http-res-write-after-end.js +parallel/test-http-res-write-end-dont-take-array.js +parallel/test-https-abortcontroller.js +parallel/test-https-agent-abort-controller.js +parallel/test-https-agent-constructor.js +parallel/test-https-agent-create-connection.js +parallel/test-https-agent-disable-session-reuse.js +parallel/test-https-agent-getname.js +parallel/test-https-agent.js +parallel/test-https-agent-keylog.js +parallel/test-https-agent-servername.js +parallel/test-https-agent-session-eviction.js +parallel/test-https-agent-session-injection.js +parallel/test-https-agent-session-reuse.js +parallel/test-https-agent-sni.js +parallel/test-https-agent-sockets-leak.js +parallel/test-https-agent-unref-socket.js +parallel/test-http-same-map.js +parallel/test-https-argument-of-creating.js +parallel/test-https-autoselectfamily.js +parallel/test-https-byteswritten.js +parallel/test-https-client-checkServerIdentity.js +parallel/test-https-client-get-url.js +parallel/test-https-client-override-global-agent.js +parallel/test-https-client-reject.js +parallel/test-https-client-renegotiation-limit.js +parallel/test-https-client-resume.js +parallel/test-https-close.js +parallel/test-https-connect-address-family.js +parallel/test-https-connecting-to-http.js +parallel/test-https-drain.js +parallel/test-https-eof-for-eom.js +parallel/test-http-server-async-dispose.js +parallel/test-http-server-capture-rejections.js +parallel/test-http-server-clear-timer.js +parallel/test-http-server-client-error.js +parallel/test-http-server-close-all.js +parallel/test-http-server-close-destroy-timeout.js +parallel/test-http-server-close-idle.js +parallel/test-http-server-close-idle-wait-response.js +parallel/test-http-server-connection-list-when-close.js +parallel/test-http-server-connections-checking-leak.js +parallel/test-http-server-consumed-timeout.js +parallel/test-http-server-de-chunked-trailer.js +parallel/test-http-server-delete-parser.js +parallel/test-http-server-destroy-socket-on-client-error.js +parallel/test-http-server-headers-timeout-delayed-headers.js +parallel/test-http-server-headers-timeout-interrupted-headers.js +parallel/test-http-server-headers-timeout-keepalive.js +parallel/test-http-server-headers-timeout-pipelining.js +parallel/test-http-server-incomingmessage-destroy.js +parallel/test-http-server.js +parallel/test-http-server-keep-alive-defaults.js +parallel/test-http-server-keepalive-end.js +parallel/test-http-server-keep-alive-max-requests-null.js +parallel/test-http-server-keepalive-req-gc.js +parallel/test-http-server-keep-alive-timeout.js +parallel/test-http-server-method.query.js +parallel/test-http-server-multiheaders2.js +parallel/test-http-server-multiheaders.js +parallel/test-http-server-multiple-client-error.js +parallel/test-http-server-non-utf8-header.js +parallel/test-http-server-options-highwatermark.js +parallel/test-http-server-options-incoming-message.js +parallel/test-http-server-options-server-response.js +parallel/test-http-server-reject-chunked-with-content-length.js +parallel/test-http-server-reject-cr-no-lf.js +parallel/test-http-server-request-timeout-delayed-body.js +parallel/test-http-server-request-timeout-delayed-headers.js +parallel/test-http-server-request-timeout-interrupted-body.js +parallel/test-http-server-request-timeout-interrupted-headers.js +parallel/test-http-server-request-timeout-keepalive.js +parallel/test-http-server-request-timeout-pipelining.js +parallel/test-http-server-request-timeout-upgrade.js +parallel/test-http-server-response-standalone.js +parallel/test-http-server-stale-close.js +parallel/test-http-server-timeouts-validation.js +parallel/test-http-server-unconsume-consume.js +parallel/test-http-server-unconsume.js +parallel/test-http-server-write-after-end.js +parallel/test-http-server-write-end-after-end.js +parallel/test-http-set-cookies.js +parallel/test-http-set-header-chain.js +parallel/test-http-set-max-idle-http-parser.js +parallel/test-http-set-timeout.js +parallel/test-http-set-timeout-server.js +parallel/test-http-set-trailers.js +parallel/test-https-foafssl.js +parallel/test-https-host-headers.js +parallel/test-http-should-keep-alive.js +parallel/test-https-hwm.js +parallel/test-https-insecure-parse-per-stream.js +parallel/test-https-keep-alive-drop-requests.js +parallel/test-https-localaddress-bind-error.js +parallel/test-https-localaddress.js +parallel/test-https-max-headers-count.js +parallel/test-https-max-header-size-per-stream.js +parallel/test-http-socket-encoding-error.js +parallel/test-http-socket-error-listeners.js +parallel/test-https-options-boolean-check.js +parallel/test-https-pfx.js +parallel/test-https-request-arguments.js +parallel/test-https-resume-after-renew.js +parallel/test-https-selfsigned-no-keycertsign-no-crash.js +parallel/test-https-server-async-dispose.js +parallel/test-https-server-close-all.js +parallel/test-https-server-close-destroy-timeout.js +parallel/test-https-server-close-idle.js +parallel/test-https-server-connections-checking-leak.js +parallel/test-https-server-headers-timeout.js +parallel/test-https-server-options-incoming-message.js +parallel/test-https-server-options-server-response.js +parallel/test-https-server-request-timeout.js +parallel/test-https-set-timeout-server.js +parallel/test-https-simple.js +parallel/test-https-socket-options.js +parallel/test-https-strict.js +parallel/test-http-status-code.js +parallel/test-http-status-message.js +parallel/test-http-status-reason-invalid-chars.js +parallel/test-https-timeout.js +parallel/test-https-timeout-server-2.js +parallel/test-https-timeout-server.js +parallel/test-https-truncate.js +parallel/test-https-unix-socket-self-signed.js +parallel/test-http-sync-write-error-during-continue.js +parallel/test-http-timeout-client-warning.js +parallel/test-http-timeout.js +parallel/test-http-timeout-overflow.js +parallel/test-http-transfer-encoding-repeated-chunked.js +parallel/test-http-transfer-encoding-smuggling.js +parallel/test-http-uncaught-from-request-callback.js +parallel/test-http-unix-socket.js +parallel/test-http-unix-socket-keep-alive.js +parallel/test-http-upgrade-advertise.js +parallel/test-http-upgrade-agent.js +parallel/test-http-upgrade-binary.js +parallel/test-http-upgrade-client2.js +parallel/test-http-upgrade-client.js +parallel/test-http-upgrade-reconsume-stream.js +parallel/test-http-upgrade-server2.js +parallel/test-http-upgrade-server.js +parallel/test-http-url.parse-auth.js +parallel/test-http-url.parse-auth-with-header-in-request.js +parallel/test-http-url.parse-basic.js +parallel/test-http-url.parse-https.request.js +parallel/test-http-url.parse-only-support-http-https-protocol.js +parallel/test-http-url.parse-path.js +parallel/test-http-url.parse-post.js +parallel/test-http-url.parse-search.js +parallel/test-http-wget.js +parallel/test-http-writable-true-after-close.js +parallel/test-http-write-callbacks.js +parallel/test-http-write-empty-string.js +parallel/test-http-write-head-2.js +parallel/test-http-write-head-after-set-header.js +parallel/test-http-write-head.js +parallel/test-http-zerolengthbuffer.js +parallel/test-http-zero-length-write.js +parallel/test-icu-data-dir.js +parallel/test-icu-env.js +parallel/test-icu-minimum-version.js +parallel/test-icu-stringwidth.js +parallel/test-icu-transcode.js +parallel/test-inspect-address-in-use.js +parallel/test-inspect-async-hook-setup-at-inspect.js +parallel/test-inspector-already-activated-cli.js +parallel/test-inspector-async-call-stack-abort.js +parallel/test-inspector-async-call-stack.js +parallel/test-inspector-async-context-brk.js +parallel/test-inspector-async-hook-after-done.js +parallel/test-inspector-async-hook-setup-at-inspect-brk.js +parallel/test-inspector-async-hook-setup-at-signal.js +parallel/test-inspector-async-stack-traces-promise-then.js +parallel/test-inspector-async-stack-traces-set-interval.js +parallel/test-inspector-bindings.js +parallel/test-inspector-break-e.js +parallel/test-inspector-break-when-eval.js +parallel/test-inspector-close-worker.js +parallel/test-inspector-connect-main-thread.js +parallel/test-inspector-connect-to-main-thread.js +parallel/test-inspector-console.js +parallel/test-inspector-console-top-frame.js +parallel/test-inspector-contexts.js +parallel/test-inspector-debug-brk-flag.js +parallel/test-inspector-debug-end.js +parallel/test-inspector-emit-protocol-event.js +parallel/test-inspector-enabled.js +parallel/test-inspector-esm.js +parallel/test-inspector-exception.js +parallel/test-inspector-exit-worker-in-wait-for-connection2.js +parallel/test-inspector-exit-worker-in-wait-for-connection.js +parallel/test-inspector-has-idle.js +parallel/test-inspector-has-inspector-false.js +parallel/test-inspector-heap-allocation-tracker.js +parallel/test-inspector-heapdump.js +parallel/test-inspector-inspect-brk-node.js +parallel/test-inspector-invalid-args.js +parallel/test-inspector-ip-detection.js +parallel/test-inspector.js +parallel/test-inspector-module.js +parallel/test-inspector-multisession-js.js +parallel/test-inspector-multisession-ws.js +parallel/test-inspector-network-fetch.js +parallel/test-inspector-network-http.js +parallel/test-inspector-not-blocked-on-idle.js +parallel/test-inspector-open-coverage.js +parallel/test-inspector-open.js +parallel/test-inspector-open-port-integer-overflow.js +parallel/test-inspector-port-zero-cluster.js +parallel/test-inspector-port-zero.js +parallel/test-inspector-promises.js +parallel/test-inspector-reported-host.js +parallel/test-inspector-resource-name-to-url.js +parallel/test-inspector-runtime-evaluate-with-timeout.js +parallel/test-inspector-scriptparsed-context.js +parallel/test-inspector-stop-profile-after-done.js +parallel/test-inspector-stops-no-file.js +parallel/test-inspector-stress-http.js +parallel/test-inspector-strip-types.js +parallel/test-inspector-tracing-domain.js +parallel/test-inspector-vm-global-accessors-getter-sideeffect.js +parallel/test-inspector-vm-global-accessors-sideeffects.js +parallel/test-inspector-wait-for-connection.js +parallel/test-inspector-waiting-for-disconnect.js +parallel/test-inspector-workers-flat-list.js +parallel/test-inspect-publish-uid.js +parallel/test-inspect-support-for-node_options.js +parallel/test-instanceof.js +parallel/test-internal-assert.js +parallel/test-internal-error-original-names.js +parallel/test-internal-errors.js +parallel/test-internal-fs.js +parallel/test-internal-fs-syncwritestream.js +parallel/test-internal-module-require.js +parallel/test-internal-modules.js +parallel/test-internal-module-wrap.js +parallel/test-internal-only-binding.js +parallel/test-internal-process-binding.js +parallel/test-internal-socket-list-receive.js +parallel/test-internal-socket-list-send.js +parallel/test-internal-util-assertCrypto.js +parallel/test-internal-util-classwrapper.js +parallel/test-internal-util-decorate-error-stack.js +parallel/test-internal-util-helpers.js +parallel/test-internal-util-normalizeencoding.js +parallel/test-internal-util-objects.js +parallel/test-internal-util-weakreference.js +parallel/test-internal-validators-validateoneof.js +parallel/test-internal-validators-validateport.js +parallel/test-internal-webidl-converttoint.js +parallel/test-intl.js +parallel/test-intl-v8BreakIterator.js +parallel/test-js-stream-call-properties.js +parallel/test-kill-segfault-freebsd.js +parallel/test-listen-fd-cluster.js +parallel/test-listen-fd-detached-inherit.js +parallel/test-listen-fd-detached.js +parallel/test-listen-fd-server.js +parallel/test-macos-app-sandbox.js +parallel/test-math-random.js +parallel/test-memory-usage-emfile.js +parallel/test-memory-usage.js +parallel/test-messagechannel.js +parallel/test-messageevent-brandcheck.js +parallel/test-messageport-hasref.js +parallel/test-messaging-marktransfermode.js +parallel/test-microtask-queue-integration.js +parallel/test-microtask-queue-run-immediate.js +parallel/test-microtask-queue-run.js +parallel/test-mime-api.js +parallel/test-mime-whatwg.js +parallel/test-module-builtin.js +parallel/test-module-cache.js +parallel/test-module-children.js +parallel/test-module-circular-dependency-warning.js +parallel/test-module-circular-symlinks.js +parallel/test-module-create-require.js +parallel/test-module-create-require-multibyte.js +parallel/test-module-globalpaths-nodepath.js +parallel/test-module-isBuiltin.js +parallel/test-module-loading-deprecated.js +parallel/test-module-loading-error.js +parallel/test-module-loading-globalpaths.js +parallel/test-module-main-extension-lookup.js +parallel/test-module-main-fail.js +parallel/test-module-main-preserve-symlinks-fail.js +parallel/test-module-multi-extensions.js +parallel/test-module-nodemodulepaths.js +parallel/test-module-parent-deprecation.js +parallel/test-module-parent-setter-deprecation.js +parallel/test-module-prototype-mutation.js +parallel/test-module-readonly.js +parallel/test-module-relative-lookup.js +parallel/test-module-run-main-monkey-patch.js +parallel/test-module-setsourcemapssupport.js +parallel/test-module-stat.js +parallel/test-module-strip-types.js +parallel/test-module-symlinked-peer-modules.js +parallel/test-module-version.js +parallel/test-module-wrap.js +parallel/test-module-wrapper.js +parallel/test-navigator.js +parallel/test-net-access-byteswritten.js +parallel/test-net-after-close.js +parallel/test-net-allow-half-open.js +parallel/test-net-autoselectfamily-attempt-timeout-cli-option.js +parallel/test-net-autoselectfamily-attempt-timeout-default-value.js +parallel/test-net-autoselectfamily-commandline-option.js +parallel/test-net-autoselectfamily-default.js +parallel/test-net-autoselectfamily-ipv4first.js +parallel/test-net-autoselectfamily.js +parallel/test-net-better-error-messages-listen.js +parallel/test-net-better-error-messages-listen-path.js +parallel/test-net-better-error-messages-path.js +parallel/test-net-better-error-messages-port-hostname.js +parallel/test-net-binary.js +parallel/test-net-bind-twice.js +parallel/test-net-blocklist.js +parallel/test-net-buffersize.js +parallel/test-net-bytes-read.js +parallel/test-net-bytes-stats.js +parallel/test-net-bytes-written-large.js +parallel/test-net-can-reset-timeout.js +parallel/test-net-child-process-connect-reset.js +parallel/test-net-client-bind-twice.js +parallel/test-net-connect-abort-controller.js +parallel/test-net-connect-after-destroy.js +parallel/test-net-connect-buffer2.js +parallel/test-net-connect-buffer.js +parallel/test-net-connect-call-socket-connect.js +parallel/test-net-connect-destroy.js +parallel/test-net-connect-immediate-destroy.js +parallel/test-net-connect-immediate-finish.js +parallel/test-net-connect-keepalive.js +parallel/test-net-connect-memleak.js +parallel/test-net-connect-no-arg.js +parallel/test-net-connect-nodelay.js +parallel/test-net-connect-options-allowhalfopen.js +parallel/test-net-connect-options-fd.js +parallel/test-net-connect-options-invalid.js +parallel/test-net-connect-options-ipv6.js +parallel/test-net-connect-options-path.js +parallel/test-net-connect-options-port.js +parallel/test-net-connect-paused-connection.js +parallel/test-net-connect-reset-after-destroy.js +parallel/test-net-connect-reset-before-connected.js +parallel/test-net-connect-reset.js +parallel/test-net-connect-reset-until-connected.js +parallel/test-net-deprecated-setsimultaneousaccepts.js +parallel/test-net-dns-custom-lookup.js +parallel/test-net-dns-error.js +parallel/test-net-dns-lookup.js +parallel/test-net-dns-lookup-skip.js +parallel/test-net-during-close.js +parallel/test-net-eaddrinuse.js +parallel/test-net-end-close.js +parallel/test-net-end-destroyed.js +parallel/test-net-end-without-connect.js +parallel/test-net-error-twice.js +parallel/test-net-isip.js +parallel/test-net-isipv4.js +parallel/test-net-isipv6.js +parallel/test-net-keepalive.js +parallel/test-net-large-string.js +parallel/test-net-listen-after-destroying-stdin.js +parallel/test-net-listen-close-server-callback-is-not-function.js +parallel/test-net-listen-close-server.js +parallel/test-net-listen-error.js +parallel/test-net-listen-exclusive-random-ports.js +parallel/test-net-listen-fd0.js +parallel/test-net-listen-handle-in-cluster-1.js +parallel/test-net-listen-handle-in-cluster-2.js +parallel/test-net-listening.js +parallel/test-net-listen-invalid-port.js +parallel/test-net-listen-ipv6only.js +parallel/test-net-listen-twice.js +parallel/test-net-local-address-port.js +parallel/test-net-localerror.js +parallel/test-net-normalize-args.js +parallel/test-net-onread-static-buffer.js +parallel/test-net-options-lookup.js +parallel/test-net-pause-resume-connecting.js +parallel/test-net-perf_hooks.js +parallel/test-net-persistent-keepalive.js +parallel/test-net-persistent-nodelay.js +parallel/test-net-persistent-ref-unref.js +parallel/test-net-pingpong.js +parallel/test-net-pipe-connect-errors.js +parallel/test-net-reconnect.js +parallel/test-net-remote-address.js +parallel/test-net-remote-address-port.js +parallel/test-net-reuseport.js +parallel/test-net-server-blocklist.js +parallel/test-net-server-call-listen-multiple-times.js +parallel/test-net-server-capture-rejection.js +parallel/test-net-server-close-before-calling-lookup-callback.js +parallel/test-net-server-close-before-ipc-response.js +parallel/test-net-server-close.js +parallel/test-net-server-drop-connections-in-cluster.js +parallel/test-net-server-drop-connections.js +parallel/test-net-server-keepalive.js +parallel/test-net-server-listen-handle.js +parallel/test-net-server-listen-options.js +parallel/test-net-server-listen-options-signal.js +parallel/test-net-server-listen-path.js +parallel/test-net-server-listen-remove-callback.js +parallel/test-net-server-max-connections-close-makes-more-available.js +parallel/test-net-server-max-connections.js +parallel/test-net-server-nodelay.js +parallel/test-net-server-options.js +parallel/test-net-server-pause-on-connect.js +parallel/test-net-server-reset.js +parallel/test-net-server-simultaneous-accepts-produce-warning-once.js +parallel/test-net-server-try-ports.js +parallel/test-net-server-unref.js +parallel/test-net-server-unref-persistent.js +parallel/test-net-settimeout.js +parallel/test-net-socket-byteswritten.js +parallel/test-net-socket-close-after-end.js +parallel/test-net-socket-connecting.js +parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js +parallel/test-net-socket-connect-invalid-autoselectfamily.js +parallel/test-net-socket-constructor.js +parallel/test-net-socket-destroy-send.js +parallel/test-net-socket-destroy-twice.js +parallel/test-net-socket-end-before-connect.js +parallel/test-net-socket-end-callback.js +parallel/test-net-socket-local-address.js +parallel/test-net-socket-no-halfopen-enforcer.js +parallel/test-net-socket-ready-without-cb.js +parallel/test-net-socket-reset-send.js +parallel/test-net-socket-reset-twice.js +parallel/test-net-socket-setnodelay.js +parallel/test-net-socket-timeout.js +parallel/test-net-socket-timeout-unref.js +parallel/test-net-socket-write-after-close.js +parallel/test-net-socket-write-error.js +parallel/test-net-stream.js +parallel/test-net-sync-cork.js +parallel/test-net-throttle.js +parallel/test-net-timeout-no-handle.js +parallel/test-net-writable.js +parallel/test-net-write-after-close.js +parallel/test-net-write-after-end-nt.js +parallel/test-net-write-arguments.js +parallel/test-net-write-cb-on-destroy-before-connect.js +parallel/test-net-write-connect-write.js +parallel/test-net-write-fully-async-buffer.js +parallel/test-net-write-fully-async-hex-string.js +parallel/test-net-write-slow.js +parallel/test-next-tick-doesnt-hang.js +parallel/test-next-tick-domain.js +parallel/test-next-tick-errors.js +parallel/test-next-tick-fixed-queue-regression.js +parallel/test-next-tick-intentional-starvation.js +parallel/test-next-tick.js +parallel/test-next-tick-ordering2.js +parallel/test-next-tick-ordering.js +parallel/test-next-tick-when-exiting.js +parallel/test-no-addons-resolution-condition.js +parallel/test-nodeeventtarget.js +parallel/test-node-run.js +parallel/test-no-node-snapshot.js +parallel/test-npm-install.js +parallel/test-npm-version.js +parallel/test-openssl-ca-options.js +parallel/test-options-binding.js +parallel/test-os-checked-function.js +parallel/test-os-eol.js +parallel/test-os-homedir-no-envvar.js +parallel/test-os.js +parallel/test-os-process-priority.js +parallel/test-os-userinfo-handles-getter-errors.js +parallel/test-outgoing-message-destroy.js +parallel/test-outgoing-message-pipe.js +parallel/test-path-basename.js +parallel/test-path-dirname.js +parallel/test-path-extname.js +parallel/test-path-glob.js +parallel/test-path-isabsolute.js +parallel/test-path-join.js +parallel/test-path.js +parallel/test-path-makelong.js +parallel/test-path-normalize.js +parallel/test-path-parse-format.js +parallel/test-path-posix-exists.js +parallel/test-path-posix-relative-on-windows.js +parallel/test-path-relative.js +parallel/test-path-resolve.js +parallel/test-path-win32-exists.js +parallel/test-path-zero-length-strings.js +parallel/test-pending-deprecation.js +parallel/test-perf-gc-crash.js +parallel/test-perf-hooks-histogram.js +parallel/test-perf-hooks-resourcetiming.js +parallel/test-perf-hooks-usertiming.js +parallel/test-perf-hooks-worker-timeorigin.js +parallel/test-performance-eventlooputil.js +parallel/test-performance-function-async.js +parallel/test-performance-function.js +parallel/test-performance-gc.js +parallel/test-performance-global.js +parallel/test-performance-measure-detail.js +parallel/test-performance-measure.js +parallel/test-performance-nodetiming.js +parallel/test-performance-nodetiming-uvmetricsinfo.js +parallel/test-performanceobserver-gc.js +parallel/test-performanceobserver.js +parallel/test-performance-resourcetimingbufferfull.js +parallel/test-performance-resourcetimingbuffersize.js +parallel/test-permission-allow-addons-cli.js +parallel/test-permission-allow-child-process-cli.js +parallel/test-permission-allow-wasi-cli.js +parallel/test-permission-allow-worker-cli.js +parallel/test-permission-child-process-cli.js +parallel/test-permission-dc-worker-threads.js +parallel/test-permission-fs-absolute-path.js +parallel/test-permission-fs-read.js +parallel/test-permission-fs-relative-path.js +parallel/test-permission-fs-repeat-path.js +parallel/test-permission-fs-require.js +parallel/test-permission-fs-supported.js +parallel/test-permission-fs-symlink.js +parallel/test-permission-fs-symlink-relative.js +parallel/test-permission-fs-symlink-target-write.js +parallel/test-permission-fs-traversal-path.js +parallel/test-permission-fs-wildcard.js +parallel/test-permission-fs-windows-path.js +parallel/test-permission-fs-write-report.js +parallel/test-permission-fs-write-v8.js +parallel/test-permission-has.js +parallel/test-permission-inspector-brk.js +parallel/test-permission-inspector.js +parallel/test-permission-no-addons.js +parallel/test-permission-processbinding.js +parallel/test-permission-sqlite-load-extension.js +parallel/test-permission-warning-flags.js +parallel/test-permission-wasi.js +parallel/test-permission-worker-threads-cli.js +parallel/test-pipe-abstract-socket-http.js +parallel/test-pipe-abstract-socket.js +parallel/test-pipe-address.js +parallel/test-pipe-file-to-http.js +parallel/test-pipe-head.js +parallel/test-pipe-outgoing-message-data-emitted-after-ended.js +parallel/test-pipe-return-val.js +parallel/test-pipe-stream.js +parallel/test-pipe-unref.js +parallel/test-pipe-writev.js +parallel/test-preload.js +parallel/test-preload-print-process-argv.js +parallel/test-preload-self-referential.js +parallel/test-preload-worker.js +parallel/test-primitive-timer-leak.js +parallel/test-primordials-apply.js +parallel/test-primordials-promise.js +parallel/test-primordials-regexp.js +parallel/test-priority-queue.js +parallel/test-process-abort.js +parallel/test-process-argv-0.js +parallel/test-process-assert.js +parallel/test-process-available-memory.js +parallel/test-process-beforeexit.js +parallel/test-process-beforeexit-throw-exit.js +parallel/test-process-binding-internalbinding-allowlist.js +parallel/test-process-binding.js +parallel/test-process-binding-util.js +parallel/test-process-chdir-errormessage.js +parallel/test-process-chdir.js +parallel/test-process-config.js +parallel/test-process-constants-noatime.js +parallel/test-process-constrained-memory.js +parallel/test-process-cpuUsage.js +parallel/test-process-default.js +parallel/test-process-dlopen-undefined-exports.js +parallel/test-process-domain-segfault.js +parallel/test-process-emit.js +parallel/test-process-emitwarning.js +parallel/test-process-env-allowed-flags-are-documented.js +parallel/test-process-env-allowed-flags.js +parallel/test-process-env-delete.js +parallel/test-process-env-deprecation.js +parallel/test-process-env-ignore-getter-setter.js +parallel/test-process-env.js +parallel/test-process-env-sideeffects.js +parallel/test-process-env-symbols.js +parallel/test-process-env-tz.js +parallel/test-process-env-windows-error-reset.js +parallel/test-process-euid-egid.js +parallel/test-process-exception-capture-errors.js +parallel/test-process-exception-capture.js +parallel/test-process-exception-capture-should-abort-on-uncaught.js +parallel/test-process-exception-capture-should-abort-on-uncaught-setflagsfromstring.js +parallel/test-process-exec-argv.js +parallel/test-process-execpath.js +parallel/test-process-exit-code.js +parallel/test-process-exit-code-validation.js +parallel/test-process-exit-from-before-exit.js +parallel/test-process-exit-handler.js +parallel/test-process-exit.js +parallel/test-process-exit-recursive.js +parallel/test-process-external-stdio-close.js +parallel/test-process-external-stdio-close-spawn.js +parallel/test-process-features.js +parallel/test-process-getactivehandles.js +parallel/test-process-getactiverequests.js +parallel/test-process-getactiveresources-track-active-handles.js +parallel/test-process-getactiveresources-track-interval-lifetime.js +parallel/test-process-getactiveresources-track-multiple-timers.js +parallel/test-process-getactiveresources-track-timer-lifetime.js +parallel/test-process-getgroups.js +parallel/test-process-hrtime-bigint.js +parallel/test-process-hrtime.js +parallel/test-process-initgroups.js +parallel/test-process-kill-null.js +parallel/test-process-kill-pid.js +parallel/test-process-next-tick.js +parallel/test-process-no-deprecation.js +parallel/test-process-ppid.js +parallel/test-process-prototype.js +parallel/test-process-raw-debug.js +parallel/test-process-really-exit.js +parallel/test-process-redirect-warnings-env.js +parallel/test-process-redirect-warnings.js +parallel/test-process-ref-unref.js +parallel/test-process-release.js +parallel/test-process-remove-all-signal-listeners.js +parallel/test-process-setgroups.js +parallel/test-process-setsourcemapsenabled.js +parallel/test-process-title-cli.js +parallel/test-process-uid-gid.js +parallel/test-process-umask.js +parallel/test-process-umask-mask.js +parallel/test-process-uncaught-exception-monitor.js +parallel/test-process-uptime.js +parallel/test-process-warning.js +parallel/test-promise-handled-rejection-no-warning.js +parallel/test-promise-hook-create-hook.js +parallel/test-promise-hook-exceptions.js +parallel/test-promise-hook-on-after.js +parallel/test-promise-hook-on-before.js +parallel/test-promise-hook-on-init.js +parallel/test-promise-hook-on-resolve.js +parallel/test-promise-reject-callback-exception.js +parallel/test-promises-unhandled-proxy-rejections.js +parallel/test-promises-unhandled-rejections.js +parallel/test-promises-unhandled-symbol-rejections.js +parallel/test-promise-swallowed-event.js +parallel/test-promises-warning-on-unhandled-rejection.js +parallel/test-promise-unhandled-default.js +parallel/test-promise-unhandled-error.js +parallel/test-promise-unhandled-flag.js +parallel/test-promise-unhandled-issue-43655.js +parallel/test-promise-unhandled-silent.js +parallel/test-promise-unhandled-silent-no-hook.js +parallel/test-promise-unhandled-throw-handler.js +parallel/test-promise-unhandled-throw.js +parallel/test-promise-unhandled-warn.js +parallel/test-promise-unhandled-warn-no-hook.js +parallel/test-punycode.js +parallel/test-querystring-escape.js +parallel/test-querystring.js +parallel/test-querystring-maxKeys-non-finite.js +parallel/test-querystring-multichar-separator.js +parallel/test-queue-microtask.js +parallel/test-queue-microtask-uncaught-asynchooks.js +parallel/test-quic-internal-endpoint-listen-defaults.js +parallel/test-quic-internal-endpoint-options.js +parallel/test-quic-internal-endpoint-stats-state.js +parallel/test-quic-internal-setcallbacks.js +parallel/test-readable-from-iterator-closing.js +parallel/test-readable-from.js +parallel/test-readable-from-web-enqueue-then-close.js +parallel/test-readable-large-hwm.js +parallel/test-readable-single-end.js +parallel/test-readline-async-iterators-backpressure.js +parallel/test-readline-async-iterators-destroy.js +parallel/test-readline-async-iterators.js +parallel/test-readline-carriage-return-between-chunks.js +parallel/test-readline-csi.js +parallel/test-readline-emit-keypress-events.js +parallel/test-readline-input-onerror.js +parallel/test-readline-interface-escapecodetimeout.js +parallel/test-readline-interface.js +parallel/test-readline-interface-no-trailing-newline.js +parallel/test-readline-interface-recursive-writes.js +parallel/test-readline.js +parallel/test-readline-keys.js +parallel/test-readline-position.js +parallel/test-readline-promises-interface.js +parallel/test-readline-promises-tab-complete.js +parallel/test-readline-reopen.js +parallel/test-readline-set-raw-mode.js +parallel/test-readline-tab-complete.js +parallel/test-readline-undefined-columns.js +parallel/test-ref-unref-return.js +parallel/test-regression-object-prototype.js +parallel/test-release-changelog.js +parallel/test-release-npm.js +parallel/test-repl-array-prototype-tempering.js +parallel/test-repl-autocomplete.js +parallel/test-repl-autolibs.js +parallel/test-repl-clear-immediate-crash.js +parallel/test-repl-cli-eval.js +parallel/test-repl-colors.js +parallel/test-repl-context.js +parallel/test-repl-definecommand.js +parallel/test-repl-domain.js +parallel/test-repl-dynamic-import.js +parallel/test-repl-editor.js +parallel/test-repl-empty.js +parallel/test-repl-end-emits-exit.js +parallel/test-repl-envvars.js +parallel/test-repl-eval.js +parallel/test-repl-function-definition-edge-case.js +parallel/test-repl-harmony.js +parallel/test-repl-history-navigation.js +parallel/test-repl-history-perm.js +parallel/test-repl-import-referrer.js +parallel/test-repl-inspect-defaults.js +parallel/test-repl-inspector.js +parallel/test-repl.js +parallel/test-repl-let-process.js +parallel/test-repl-load-multiline.js +parallel/test-repl-load-multiline-no-trailing-newline.js +parallel/test-repl-mode.js +parallel/test-repl-multiline.js +parallel/test-repl-no-terminal.js +parallel/test-repl-null.js +parallel/test-repl-null-thrown.js +parallel/test-repl-options.js +parallel/test-repl-permission-model.js +parallel/test-repl-persistent-history.js +parallel/test-repl-preprocess-top-level-await.js +parallel/test-repl-pretty-custom-stack.js +parallel/test-repl-pretty-stack-custom-writer.js +parallel/test-repl-pretty-stack.js +parallel/test-repl-preview.js +parallel/test-repl-preview-newlines.js +parallel/test-repl-preview-without-inspector.js +parallel/test-repl-programmatic-history.js +parallel/test-repl-recoverable.js +parallel/test-repl-require-after-write.js +parallel/test-repl-require-cache.js +parallel/test-repl-require-context.js +parallel/test-repl-require.js +parallel/test-repl-require-self-referential.js +parallel/test-repl-reset-event.js +parallel/test-repl-reverse-search.js +parallel/test-repl-save-load.js +parallel/test-repl-setprompt.js +parallel/test-repl-sigint.js +parallel/test-repl-sigint-nested-eval.js +parallel/test-repl-stdin-push-null.js +parallel/test-repl-strict-mode-previews.js +parallel/test-repl-syntax-error-handling.js +parallel/test-repl-syntax-error-stack.js +parallel/test-repl-tab-complete-crash.js +parallel/test-repl-tab-complete-import.js +parallel/test-repl-tab-complete.js +parallel/test-repl-tab-complete-nested-repls.js +parallel/test-repl-tab-complete-no-warn.js +parallel/test-repl-tab-complete-on-editor-mode.js +parallel/test-repl-tab.js +parallel/test-repl-throw-null-or-undefined.js +parallel/test-repl-top-level-await.js +parallel/test-repl-uncaught-exception-async.js +parallel/test-repl-uncaught-exception-evalcallback.js +parallel/test-repl-uncaught-exception.js +parallel/test-repl-uncaught-exception-standalone.js +parallel/test-repl-underscore.js +parallel/test-repl-unexpected-token-recoverable.js +parallel/test-repl-unsafe-array-iteration.js +parallel/test-repl-unsupported-option.js +parallel/test-repl-use-global.js +parallel/test-require-cache.js +parallel/test-require-delete-array-iterator.js +parallel/test-require-dot.js +parallel/test-require-empty-main.js +parallel/test-require-enoent-dir.js +parallel/test-require-exceptions.js +parallel/test-require-extension-over-directory.js +parallel/test-require-extensions-main.js +parallel/test-require-extensions-same-filename-as-dir.js +parallel/test-require-extensions-same-filename-as-dir-trailing-slash.js +parallel/test-require-invalid-main-no-exports.js +parallel/test-require-invalid-package.js +parallel/test-require-json.js +parallel/test-require-long-path.js +parallel/test-require-mjs.js +parallel/test-require-node-prefix.js +parallel/test-require-nul.js +parallel/test-require-process.js +parallel/test-require-resolve.js +parallel/test-require-resolve-opts-paths-relative.js +parallel/test-require-symlink.js +parallel/test-require-unicode.js +parallel/test-resource-usage.js +parallel/test-runner-aliases.js +parallel/test-runner-assert.js +parallel/test-runner-cli-concurrency.js +parallel/test-runner-cli-timeout.js +parallel/test-runner-concurrency.js +parallel/test-runner-custom-assertions.js +parallel/test-runner-enable-source-maps-issue.js +parallel/test-runner-exit-code.js +parallel/test-runner-extraneous-async-activity.js +parallel/test-runner-filetest-location.js +parallel/test-runner-filter-warning.js +parallel/test-runner-force-exit-failure.js +parallel/test-runner-force-exit-flush.js +parallel/test-runner-import-no-scheme.js +parallel/test-runner-misc.js +parallel/test-runner-mocking.js +parallel/test-runner-mock-timers-date.js +parallel/test-runner-mock-timers.js +parallel/test-runner-mock-timers-scheduler.js +parallel/test-runner-module-mocking.js +parallel/test-runner-no-isolation-filtering.js +parallel/test-runner-option-validation.js +parallel/test-runner-reporters.js +parallel/test-runner-root-after-with-refed-handles.js +parallel/test-runner-root-duration.js +parallel/test-runner-snapshot-file-tests.js +parallel/test-runner-snapshot-tests.js +parallel/test-runner-source-maps-invalid-json.js +parallel/test-runner-string-to-regexp.js +parallel/test-runner-subtest-after-hook.js +parallel/test-runner-test-filepath.js +parallel/test-runner-test-fullname.js +parallel/test-runner-todo-skip-tests.js +parallel/test-runner-typechecking.js +parallel/test-runner-wait-for.js +parallel/test-safe-get-env.js +parallel/test-security-revert-unknown.js +parallel/test-set-http-max-http-headers.js +parallel/test-set-incoming-message-header.js +parallel/test-set-process-debug-port.js +parallel/test-setproctitle.js +parallel/test-shadow-realm-allowed-builtin-modules.js +parallel/test-shadow-realm-custom-loaders.js +parallel/test-shadow-realm-gc.js +parallel/test-shadow-realm-gc-module.js +parallel/test-shadow-realm-globals.js +parallel/test-shadow-realm-import-value-resolve.js +parallel/test-shadow-realm.js +parallel/test-shadow-realm-module.js +parallel/test-shadow-realm-preload-module.js +parallel/test-shadow-realm-prepare-stack-trace.js +parallel/test-sigint-infinite-loop.js +parallel/test-signal-args.js +parallel/test-signal-handler.js +parallel/test-signal-handler-remove-on-exit.js +parallel/test-signal-safety.js +parallel/test-signal-unregister.js +parallel/test-single-executable-blob-config-errors.js +parallel/test-single-executable-blob-config.js +parallel/test-snapshot-api.js +parallel/test-snapshot-argv1.js +parallel/test-snapshot-basic.js +parallel/test-snapshot-child-process-sync.js +parallel/test-snapshot-cjs-main.js +parallel/test-snapshot-config.js +parallel/test-snapshot-console.js +parallel/test-snapshot-coverage.js +parallel/test-snapshot-cwd.js +parallel/test-snapshot-dns-lookup-localhost.js +parallel/test-snapshot-dns-lookup-localhost-promise.js +parallel/test-snapshot-dns-resolve-localhost.js +parallel/test-snapshot-dns-resolve-localhost-promise.js +parallel/test-snapshot-error.js +parallel/test-snapshot-eval.js +parallel/test-snapshot-gzip.js +parallel/test-snapshot-namespaced-builtin.js +parallel/test-snapshot-net.js +parallel/test-snapshot-reproducible.js +parallel/test-snapshot-stack-trace-limit.js +parallel/test-snapshot-stack-trace-limit-mutation.js +parallel/test-snapshot-typescript.js +parallel/test-snapshot-umd.js +parallel/test-snapshot-weak-reference.js +parallel/test-snapshot-worker.js +parallel/test-socket-address.js +parallel/test-socketaddress.js +parallel/test-socket-options-invalid.js +parallel/test-socket-write-after-fin-error.js +parallel/test-socket-write-after-fin.js +parallel/test-socket-writes-before-passed-to-tls-socket.js +parallel/test-source-map-api.js +parallel/test-source-map-cjs-require-cache.js +parallel/test-source-map-enable.js +parallel/test-spawn-cmd-named-pipe.js +parallel/test-sqlite-custom-functions.js +parallel/test-sqlite-database-sync.js +parallel/test-sqlite-data-types.js +parallel/test-sqlite.js +parallel/test-sqlite-named-parameters.js +parallel/test-sqlite-session.js +parallel/test-sqlite-statement-sync.js +parallel/test-sqlite-transactions.js +parallel/test-sqlite-typed-array-and-data-view.js +parallel/test-stack-size-limit.js +parallel/test-startup-empty-regexp-statics.js +parallel/test-startup-large-pages.js +parallel/test-stdin-child-proc.js +parallel/test-stdin-from-file.js +parallel/test-stdin-from-file-spawn.js +parallel/test-stdin-hang.js +parallel/test-stdin-pause-resume.js +parallel/test-stdin-pause-resume-sync.js +parallel/test-stdin-pipe-large.js +parallel/test-stdin-pipe-resume.js +parallel/test-stdin-resume-pause.js +parallel/test-stdin-script-child.js +parallel/test-stdin-script-child-option.js +parallel/test-stdio-closed.js +parallel/test-stdio-pipe-access.js +parallel/test-stdio-pipe-redirect.js +parallel/test-stdio-pipe-stderr.js +parallel/test-stdio-undestroy.js +parallel/test-stdout-cannot-be-closed-child-process-pipe.js +parallel/test-stdout-close-catch.js +parallel/test-stdout-close-unref.js +parallel/test-stdout-pipeline-destroy.js +parallel/test-stdout-stderr-reading.js +parallel/test-stdout-stderr-write.js +parallel/test-stdout-to-file.js +parallel/test-strace-openat-openssl.js +parallel/test-stream2-base64-single-char-read-end.js +parallel/test-stream2-basic.js +parallel/test-stream2-compatibility.js +parallel/test-stream2-decode-partial.js +parallel/test-stream2-finish-pipe-error.js +parallel/test-stream2-finish-pipe.js +parallel/test-stream2-httpclient-response-end.js +parallel/test-stream2-large-read-stall.js +parallel/test-stream2-objects.js +parallel/test-stream2-pipe-error-handling.js +parallel/test-stream2-pipe-error-once-listener.js +parallel/test-stream2-push.js +parallel/test-stream2-readable-empty-buffer-no-eof.js +parallel/test-stream2-readable-legacy-drain.js +parallel/test-stream2-readable-non-empty-end.js +parallel/test-stream2-readable-wrap-destroy.js +parallel/test-stream2-readable-wrap-empty.js +parallel/test-stream2-readable-wrap-error.js +parallel/test-stream2-readable-wrap.js +parallel/test-stream2-read-sync-stack.js +parallel/test-stream2-set-encoding.js +parallel/test-stream2-transform.js +parallel/test-stream2-unpipe-drain.js +parallel/test-stream2-unpipe-leak.js +parallel/test-stream2-writable.js +parallel/test-stream3-cork-end.js +parallel/test-stream3-cork-uncork.js +parallel/test-stream3-pause-then-read.js +parallel/test-stream3-pipeline-async-iterator.js +parallel/test-stream-add-abort-signal.js +parallel/test-stream-aliases-legacy.js +parallel/test-stream-auto-destroy.js +parallel/test-stream-await-drain-writers-in-synchronously-recursion-write.js +parallel/test-stream-backpressure.js +parallel/test-stream-base-prototype-accessors-enumerability.js +parallel/test-stream-base-typechecking.js +parallel/test-stream-big-packet.js +parallel/test-stream-big-push.js +parallel/test-stream-catch-rejections.js +parallel/test-stream-compose.js +parallel/test-stream-compose-operator.js +parallel/test-stream-construct.js +parallel/test-stream-consumers.js +parallel/test-stream-decoder-objectmode.js +parallel/test-stream-destroy-event-order.js +parallel/test-stream-destroy.js +parallel/test-stream-drop-take.js +parallel/test-stream-duplex-destroy.js +parallel/test-stream-duplex-end.js +parallel/test-stream-duplex-from.js +parallel/test-stream-duplex.js +parallel/test-stream-duplexpair.js +parallel/test-stream-duplex-props.js +parallel/test-stream-duplex-readable-end.js +parallel/test-stream-duplex-readable-writable.js +parallel/test-stream-duplex-writable-finished.js +parallel/test-stream-end-of-streams.js +parallel/test-stream-end-paused.js +parallel/test-stream-err-multiple-callback-construction.js +parallel/test-stream-error-once.js +parallel/test-stream-event-names.js +parallel/test-stream-events-prepend.js +parallel/test-stream-filter.js +parallel/test-stream-finished.js +parallel/test-stream-flatMap.js +parallel/test-stream-forEach.js +parallel/test-stream-inheritance.js +parallel/test-stream-ispaused.js +parallel/test-stream-map.js +parallel/test-stream-objectmode-undefined.js +parallel/test-stream-once-readable-pipe.js +parallel/test-stream-passthrough-drain.js +parallel/test-stream-pipe-after-end.js +parallel/test-stream-pipe-await-drain.js +parallel/test-stream-pipe-await-drain-manual-resume.js +parallel/test-stream-pipe-await-drain-push-while-write.js +parallel/test-stream-pipe-cleanup.js +parallel/test-stream-pipe-cleanup-pause.js +parallel/test-stream-pipe-deadlock.js +parallel/test-stream-pipe-error-handling.js +parallel/test-stream-pipe-error-unhandled.js +parallel/test-stream-pipe-event.js +parallel/test-stream-pipe-flow-after-unpipe.js +parallel/test-stream-pipe-flow.js +parallel/test-stream-pipeline-async-iterator.js +parallel/test-stream-pipeline-duplex.js +parallel/test-stream-pipeline-http2.js +parallel/test-stream-pipeline.js +parallel/test-stream-pipeline-listeners.js +parallel/test-stream-pipeline-process.js +parallel/test-stream-pipeline-queued-end-in-destroy.js +parallel/test-stream-pipeline-uncaught.js +parallel/test-stream-pipeline-with-empty-string.js +parallel/test-stream-pipe-manual-resume.js +parallel/test-stream-pipe-multiple-pipes.js +parallel/test-stream-pipe-needDrain.js +parallel/test-stream-pipe-same-destination-twice.js +parallel/test-stream-pipe-unpipe-streams.js +parallel/test-stream-pipe-without-listenerCount.js +parallel/test-stream-preprocess.js +parallel/test-stream-promises.js +parallel/test-stream-push-order.js +parallel/test-stream-push-strings.js +parallel/test-stream-readable-aborted.js +parallel/test-stream-readable-add-chunk-during-data.js +parallel/test-stream-readable-async-iterators.js +parallel/test-stream-readable-constructor-set-methods.js +parallel/test-stream-readable-data.js +parallel/test-stream-readable-default-encoding.js +parallel/test-stream-readable-destroy.js +parallel/test-stream-readable-didRead.js +parallel/test-stream-readable-dispose.js +parallel/test-stream-readable-emit-readable-short-stream.js +parallel/test-stream-readable-emittedReadable.js +parallel/test-stream-readable-end-destroyed.js +parallel/test-stream-readable-ended.js +parallel/test-stream-readable-error-end.js +parallel/test-stream-readable-event.js +parallel/test-stream-readable-flow-recursion.js +parallel/test-stream-readable-from-web-termination.js +parallel/test-stream-readable-hwm-0-async.js +parallel/test-stream-readable-hwm-0.js +parallel/test-stream-readable-hwm-0-no-flow-data.js +parallel/test-stream-readable-infinite-read.js +parallel/test-stream-readable-invalid-chunk.js +parallel/test-stream-readableListening-state.js +parallel/test-stream-readable-needReadable.js +parallel/test-stream-readable-next-no-null.js +parallel/test-stream-readable-no-unneeded-readable.js +parallel/test-stream-readable-object-multi-push-async.js +parallel/test-stream-readable-pause-and-resume.js +parallel/test-stream-readable-readable.js +parallel/test-stream-readable-readable-then-resume.js +parallel/test-stream-readable-reading-readingMore.js +parallel/test-stream-readable-resume-hwm.js +parallel/test-stream-readable-resumeScheduled.js +parallel/test-stream-readable-setEncoding-existing-buffers.js +parallel/test-stream-readable-setEncoding-null.js +parallel/test-stream-readable-strategy-option.js +parallel/test-stream-readable-to-web.js +parallel/test-stream-readable-to-web-termination.js +parallel/test-stream-readable-unpipe-resume.js +parallel/test-stream-readable-unshift.js +parallel/test-stream-readable-with-unimplemented-_read.js +parallel/test-stream-reduce.js +parallel/test-stream-set-default-hwm.js +parallel/test-streams-highwatermark.js +parallel/test-stream-toArray.js +parallel/test-stream-toWeb-allows-server-response.js +parallel/test-stream-transform-callback-twice.js +parallel/test-stream-transform-constructor-set-methods.js +parallel/test-stream-transform-destroy.js +parallel/test-stream-transform-final.js +parallel/test-stream-transform-final-sync.js +parallel/test-stream-transform-flush-data.js +parallel/test-stream-transform-hwm0.js +parallel/test-stream-transform-objectmode-falsey-value.js +parallel/test-stream-transform-split-highwatermark.js +parallel/test-stream-transform-split-objectmode.js +parallel/test-stream-typedarray.js +parallel/test-stream-uint8array.js +parallel/test-stream-unpipe-event.js +parallel/test-stream-unshift-empty-chunk.js +parallel/test-stream-unshift-read-race.js +parallel/test-stream-wrap-drain.js +parallel/test-stream-wrap-encoding.js +parallel/test-stream-wrap.js +parallel/test-stream-writable-aborted.js +parallel/test-stream-writable-change-default-encoding.js +parallel/test-stream-writable-clear-buffer.js +parallel/test-stream-writable-constructor-set-methods.js +parallel/test-stream-writable-decoded-encoding.js +parallel/test-stream-writable-destroy.js +parallel/test-stream-writable-end-cb-error.js +parallel/test-stream-writable-end-cb-uncaught.js +parallel/test-stream-writable-ended-state.js +parallel/test-stream-writable-end-multiple.js +parallel/test-stream-writable-final-async.js +parallel/test-stream-writable-final-destroy.js +parallel/test-stream-writable-final-throw.js +parallel/test-stream-writable-finish-destroyed.js +parallel/test-stream-writable-finished.js +parallel/test-stream-writable-finished-state.js +parallel/test-stream-writable-invalid-chunk.js +parallel/test-stream-writable-needdrain-state.js +parallel/test-stream-writable-null.js +parallel/test-stream-writable-properties.js +parallel/test-stream-writable-samecb-singletick.js +parallel/test-stream-writableState-ending.js +parallel/test-stream-writableState-uncorked-bufferedRequestCount.js +parallel/test-stream-writable-writable.js +parallel/test-stream-writable-write-cb-error.js +parallel/test-stream-writable-write-cb-twice.js +parallel/test-stream-writable-write-error.js +parallel/test-stream-writable-write-writev-finish.js +parallel/test-stream-write-destroy.js +parallel/test-stream-write-drain.js +parallel/test-stream-write-final.js +parallel/test-stream-writev.js +parallel/test-stringbytes-external.js +parallel/test-string-decoder-end.js +parallel/test-string-decoder-fuzz.js +parallel/test-string-decoder.js +parallel/test-structuredClone-global.js +parallel/test-sync-fileread.js +parallel/test-sync-io-option.js +parallel/test-sys.js +parallel/test-tcp-wrap-connect.js +parallel/test-tcp-wrap.js +parallel/test-tcp-wrap-listen.js +parallel/test-tick-processor-arguments.js +parallel/test-tick-processor-version-check.js +parallel/test-timers-active.js +parallel/test-timers-api-refs.js +parallel/test-timers-args.js +parallel/test-timers-clearImmediate-als.js +parallel/test-timers-clearImmediate.js +parallel/test-timers-clear-null-does-not-throw-error.js +parallel/test-timers-clear-object-does-not-throw-error.js +parallel/test-timers-clear-timeout-interval-equivalent.js +parallel/test-timers-destroyed.js +parallel/test-timers-dispose.js +parallel/test-timers-enroll-invalid-msecs.js +parallel/test-timers-enroll-second-time.js +parallel/test-timers-immediate.js +parallel/test-timers-immediate-promisified.js +parallel/test-timers-immediate-queue.js +parallel/test-timers-immediate-queue-throw.js +parallel/test-timers-immediate-unref.js +parallel/test-timers-immediate-unref-nested-once.js +parallel/test-timers-immediate-unref-simple.js +parallel/test-timers-interval-promisified.js +parallel/test-timers-interval-throw.js +parallel/test-timers.js +parallel/test-timers-linked-list.js +parallel/test-timers-max-duration-warning.js +parallel/test-timers-nested.js +parallel/test-timers-next-tick.js +parallel/test-timers-non-integer-delay.js +parallel/test-timers-now.js +parallel/test-timers-ordering.js +parallel/test-timers-process-tampering.js +parallel/test-timers-promises.js +parallel/test-timers-promises-scheduler.js +parallel/test-timers-refresh-in-callback.js +parallel/test-timers-refresh.js +parallel/test-timers-reset-process-domain-on-throw.js +parallel/test-timers-same-timeout-wrong-list-deleted.js +parallel/test-timers-setimmediate-infinite-loop.js +parallel/test-timers-socket-timeout-removes-other-socket-unref-timer.js +parallel/test-timers-this.js +parallel/test-timers-throw-when-cb-not-function.js +parallel/test-timers-timeout-promisified.js +parallel/test-timers-timeout-to-interval.js +parallel/test-timers-timeout-with-non-integer.js +parallel/test-timers-to-primitive.js +parallel/test-timers-uncaught-exception.js +parallel/test-timers-unenroll-unref-interval.js +parallel/test-timers-unref-active.js +parallel/test-timers-unrefd-interval-still-fires.js +parallel/test-timers-unrefed-in-beforeexit.js +parallel/test-timers-unrefed-in-callback.js +parallel/test-timers-unref.js +parallel/test-timers-unref-remove-other-unref-timers.js +parallel/test-timers-unref-remove-other-unref-timers-only-one-fires.js +parallel/test-timers-unref-throw-then-ref.js +parallel/test-timers-user-call.js +parallel/test-timers-zero-timeout.js +parallel/test-tls-0-dns-altname.js +parallel/test-tls-addca.js +parallel/test-tls-add-context.js +parallel/test-tls-alert-handling.js +parallel/test-tls-alert.js +parallel/test-tls-alpn-server-client.js +parallel/test-tls-async-cb-after-socket-end.js +parallel/test-tls-basic-validations.js +parallel/test-tls-buffersize.js +parallel/test-tls-ca-concat.js +parallel/test-tls-canonical-ip.js +parallel/test-tls-cert-chains-concat.js +parallel/test-tls-cert-chains-in-ca.js +parallel/test-tls-cert-ext-encoding.js +parallel/test-tls-cert-regression.js +parallel/test-tls-check-server-identity.js +parallel/test-tls-cipher-list.js +parallel/test-tls-client-abort2.js +parallel/test-tls-client-abort.js +parallel/test-tls-client-allow-partial-trust-chain.js +parallel/test-tls-client-auth.js +parallel/test-tls-clientcertengine-invalid-arg-type.js +parallel/test-tls-clientcertengine-unsupported.js +parallel/test-tls-client-default-ciphers.js +parallel/test-tls-client-destroy-soon.js +parallel/test-tls-client-getephemeralkeyinfo.js +parallel/test-tls-client-mindhsize.js +parallel/test-tls-client-reject-12.js +parallel/test-tls-client-reject.js +parallel/test-tls-client-renegotiation-13.js +parallel/test-tls-client-renegotiation-limit.js +parallel/test-tls-client-resume-12.js +parallel/test-tls-client-resume.js +parallel/test-tls-client-verify.js +parallel/test-tls-cli-min-max-conflict.js +parallel/test-tls-close-error.js +parallel/test-tls-close-event-after-write.js +parallel/test-tls-close-notify.js +parallel/test-tls-cnnic-whitelist.js +parallel/test-tls-connect-abort-controller.js +parallel/test-tls-connect-address-family.js +parallel/test-tls-connect-allow-half-open-option.js +parallel/test-tls-connect-given-socket.js +parallel/test-tls-connect-hints-option.js +parallel/test-tls-connect-hwm-option.js +parallel/test-tls-connect-memleak.js +parallel/test-tls-connect-no-host.js +parallel/test-tls-connect-pipe.js +parallel/test-tls-connect-secure-context.js +parallel/test-tls-connect-simple.js +parallel/test-tls-connect-stream-writes.js +parallel/test-tls-connect-timeout-option.js +parallel/test-tls-delayed-attach-error.js +parallel/test-tls-delayed-attach.js +parallel/test-tls-destroy-stream-12.js +parallel/test-tls-destroy-stream.js +parallel/test-tls-destroy-whilst-write.js +parallel/test-tls-dhe.js +parallel/test-tls-disable-renegotiation.js +parallel/test-tls-ecdh-auto.js +parallel/test-tls-ecdh.js +parallel/test-tls-ecdh-multiple.js +parallel/test-tls-econnreset.js +parallel/test-tls-empty-sni-context.js +parallel/test-tls-enable-keylog-cli.js +parallel/test-tls-enable-trace-cli.js +parallel/test-tls-enable-trace.js +parallel/test-tls-env-bad-extra-ca.js +parallel/test-tls-env-extra-ca.js +parallel/test-tls-env-extra-ca-no-crypto.js +parallel/test-tls-env-extra-ca-with-options.js +parallel/test-tls-error-servername.js +parallel/test-tls-exportkeyingmaterial.js +parallel/test-tls-external-accessor.js +parallel/test-tls-fast-writing.js +parallel/test-tls-finished.js +parallel/test-tls-friendly-error-message.js +parallel/test-tls-generic-stream.js +parallel/test-tls-getcertificate-x509.js +parallel/test-tls-getcipher.js +parallel/test-tls-getprotocol.js +parallel/test-tls-handshake-error.js +parallel/test-tls-handshake-exception.js +parallel/test-tls-handshake-nohang.js +parallel/test-tls-hello-parser-failure.js +parallel/test-tls-honorcipherorder.js +parallel/test-tls-inception.js +parallel/test-tls-interleave.js +parallel/test-tls-invalid-pfx.js +parallel/test-tls-invoke-queued.js +parallel/test-tls-ip-servername-deprecation.js +parallel/test-tls-js-stream.js +parallel/test-tls-junk-closes-server.js +parallel/test-tls-junk-server.js +parallel/test-tls-keyengine-invalid-arg-type.js +parallel/test-tls-keyengine-unsupported.js +parallel/test-tls-keylog-tlsv13.js +parallel/test-tls-key-mismatch.js +parallel/test-tls-legacy-deprecated.js +parallel/test-tls-legacy-pfx.js +parallel/test-tls-max-send-fragment.js +parallel/test-tls-multi-key.js +parallel/test-tls-multi-pfx.js +parallel/test-tls-multiple-cas-as-string.js +parallel/test-tls-net-connect-prefer-path.js +parallel/test-tls-net-socket-keepalive-12.js +parallel/test-tls-net-socket-keepalive.js +parallel/test-tls-no-cert-required.js +parallel/test-tls-no-rsa-key.js +parallel/test-tls-no-sslv23.js +parallel/test-tls-no-sslv3.js +parallel/test-tls-ocsp-callback.js +parallel/test-tls-on-empty-socket.js +parallel/test-tls-onread-static-buffer.js +parallel/test-tls-options-boolean-check.js +parallel/test-tls-over-http-tunnel.js +parallel/test-tls-passphrase.js +parallel/test-tls-pause.js +parallel/test-tls-peer-certificate-encoding.js +parallel/test-tls-peer-certificate.js +parallel/test-tls-peer-certificate-multi-keys.js +parallel/test-tls-pfx-authorizationerror.js +parallel/test-tls-psk-circuit.js +parallel/test-tls-psk-errors.js +parallel/test-tls-psk-server.js +parallel/test-tls-reduced-SECLEVEL-in-cipher.js +parallel/test-tls-reinitialize-listeners.js +parallel/test-tls-request-timeout.js +parallel/test-tls-retain-handle-no-abort.js +parallel/test-tls-reuse-host-from-socket.js +parallel/test-tls-root-certificates.js +parallel/test-tls-secure-context-usage-order.js +parallel/test-tls-securepair-fiftharg.js +parallel/test-tls-securepair-leak.js +parallel/test-tls-securepair-server.js +parallel/test-tls-secure-session.js +parallel/test-tls-server-capture-rejection.js +parallel/test-tls-server-connection-server.js +parallel/test-tls-server-failed-handshake-emits-clienterror.js +parallel/test-tls-server-parent-constructor-options.js +parallel/test-tls-server-setkeycert.js +parallel/test-tls-server-setoptions-clientcertengine.js +parallel/test-tls-server-verify.js +parallel/test-tls-session-cache.js +parallel/test-tls-set-ciphers-error.js +parallel/test-tls-set-ciphers.js +parallel/test-tls-set-encoding.js +parallel/test-tls-set-secure-context.js +parallel/test-tls-set-sigalgs.js +parallel/test-tls-snicallback-error.js +parallel/test-tls-sni-option.js +parallel/test-tls-sni-server-client.js +parallel/test-tls-sni-servername.js +parallel/test-tls-socket-allow-half-open-option.js +parallel/test-tls-socket-close.js +parallel/test-tls-socket-constructor-alpn-options-parsing.js +parallel/test-tls-socket-default-options.js +parallel/test-tls-socket-destroy.js +parallel/test-tls-socket-failed-handshake-emits-error.js +parallel/test-tls-socket-snicallback-without-server.js +parallel/test-tls-startcom-wosign-whitelist.js +parallel/test-tls-starttls-server.js +parallel/test-tls-streamwrap-buffersize.js +parallel/test-tls-ticket-12.js +parallel/test-tls-ticket-cluster.js +parallel/test-tls-ticket-invalid-arg.js +parallel/test-tls-ticket.js +parallel/test-tls-timeout-server-2.js +parallel/test-tls-timeout-server.js +parallel/test-tls-tlswrap-segfault-2.js +parallel/test-tls-tlswrap-segfault.js +parallel/test-tls-translate-peer-certificate.js +parallel/test-tls-transport-destroy-after-own-gc.js +parallel/test-tls-use-after-free-regression.js +parallel/test-tls-wrap-econnreset.js +parallel/test-tls-wrap-econnreset-localaddress.js +parallel/test-tls-wrap-econnreset-pipe.js +parallel/test-tls-wrap-econnreset-socket.js +parallel/test-tls-wrap-event-emmiter.js +parallel/test-tls-wrap-no-abort.js +parallel/test-tls-wrap-timeout.js +parallel/test-tls-writewrap-leak.js +parallel/test-tls-zero-clear-in.js +parallel/test-tojson-perf_hooks.js +parallel/test-trace-atomic-deprecation.js +parallel/test-trace-atomics-wait.js +parallel/test-trace-env.js +parallel/test-trace-env-stack.js +parallel/test-trace-events-all.js +parallel/test-trace-events-api.js +parallel/test-trace-events-api-worker-disabled.js +parallel/test-trace-events-async-hooks-dynamic.js +parallel/test-trace-events-async-hooks.js +parallel/test-trace-events-async-hooks-worker.js +parallel/test-trace-events-binding.js +parallel/test-trace-events-bootstrap.js +parallel/test-trace-events-category-used.js +parallel/test-trace-events-console.js +parallel/test-trace-events-dynamic-enable.js +parallel/test-trace-events-dynamic-enable-workers-disabled.js +parallel/test-trace-events-environment.js +parallel/test-trace-events-file-pattern.js +parallel/test-trace-events-fs-async.js +parallel/test-trace-events-fs-sync.js +parallel/test-trace-events-get-category-enabled-buffer.js +parallel/test-trace-events-http.js +parallel/test-trace-events-metadata.js +parallel/test-trace-events-net-abstract-socket.js +parallel/test-trace-events-net.js +parallel/test-trace-events-none.js +parallel/test-trace-events-process-exit.js +parallel/test-trace-events-promises.js +parallel/test-trace-events-threadpool.js +parallel/test-trace-events-v8.js +parallel/test-trace-events-vm.js +parallel/test-trace-events-worker-metadata.js +parallel/test-trace-events-worker-metadata-with-name.js +parallel/test-trace-exit.js +parallel/test-trace-exit-stack-limit.js +parallel/test-tracing-no-crash.js +parallel/test-tty-backwards-api.js +parallel/test-tty-stdin-end.js +parallel/test-tty-stdin-pipe.js +parallel/test-ttywrap-invalid-fd.js +parallel/test-ttywrap-stack.js +parallel/test-tz-version.js +parallel/test-unhandled-exception-rethrow-error.js +parallel/test-unhandled-exception-with-worker-inuse.js +parallel/test-unicode-node-options.js +parallel/test-url-domain-ascii-unicode.js +parallel/test-url-fileurltopath.js +parallel/test-url-format-invalid-input.js +parallel/test-url-format.js +parallel/test-url-format-whatwg.js +parallel/test-url-is-url-internal.js +parallel/test-url-parse-format.js +parallel/test-url-parse-invalid-input.js +parallel/test-url-parse-query.js +parallel/test-url-pathtofileurl.js +parallel/test-url-relative.js +parallel/test-url-revokeobjecturl.js +parallel/test-url-urltooptions.js +parallel/test-utf8-scripts.js +parallel/test-util-callbackify.js +parallel/test-util-deprecate-invalid-code.js +parallel/test-util-deprecate.js +parallel/test-util-emit-experimental-warning.js +parallel/test-util-format.js +parallel/test-util-getcallsite.js +parallel/test-util-getcallsites.js +parallel/test-util-inherits.js +parallel/test-util-inspect-getters-accessing-this.js +parallel/test-util-inspect.js +parallel/test-util-inspect-long-running.js +parallel/test-util-inspect-namespace.js +parallel/test-util-inspect-proxy.js +parallel/test-util-internal.js +parallel/test-util-isDeepStrictEqual.js +parallel/test-util.js +parallel/test-util-log.js +parallel/test-util-parse-env.js +parallel/test-util-primordial-monkeypatching.js +parallel/test-util-promisify.js +parallel/test-util-sigint-watchdog.js +parallel/test-util-sleep.js +parallel/test-util-stripvtcontrolcharacters.js +parallel/test-util-styletext.js +parallel/test-util-text-decoder.js +parallel/test-util-types-exists.js +parallel/test-util-types.js +parallel/test-uv-binding-constant.js +parallel/test-uv-errmap.js +parallel/test-uv-errno.js +parallel/test-uv-unmapped-exception.js +parallel/test-v8-collect-gc-profile-exit-before-stop.js +parallel/test-v8-collect-gc-profile-in-worker.js +parallel/test-v8-collect-gc-profile.js +parallel/test-v8-coverage.js +parallel/test-v8-deserialize-buffer.js +parallel/test-v8-flag-pool-size-0.js +parallel/test-v8-flags.js +parallel/test-v8-flag-type-check.js +parallel/test-v8-getheapsnapshot-twice.js +parallel/test-v8-global-setter.js +parallel/test-v8-query-objects.js +parallel/test-v8-serdes.js +parallel/test-v8-serialize-leak.js +parallel/test-v8-startup-snapshot-api.js +parallel/test-v8-stats.js +parallel/test-v8-stop-coverage.js +parallel/test-v8-take-coverage.js +parallel/test-v8-take-coverage-noop.js +parallel/test-v8-version-tag.js +parallel/test-validators.js +parallel/test-vfs.js +parallel/test-vm-access-process-env.js +parallel/test-vm-api-handles-getter-errors.js +parallel/test-vm-attributes-property-not-on-sandbox.js +parallel/test-vm-basic.js +parallel/test-vm-cached-data.js +parallel/test-vm-codegen.js +parallel/test-vm-context-async-script.js +parallel/test-vm-context-dont-contextify.js +parallel/test-vm-context.js +parallel/test-vm-context-property-forwarding.js +parallel/test-vm-create-and-run-in-context.js +parallel/test-vm-createcacheddata.js +parallel/test-vm-create-context-accessors.js +parallel/test-vm-create-context-arg.js +parallel/test-vm-create-context-circular-reference.js +parallel/test-vm-cross-context.js +parallel/test-vm-data-property-writable.js +parallel/test-vm-deleting-property.js +parallel/test-vm-dynamic-import-callback-missing-flag.js +parallel/test-vm-function-declaration.js +parallel/test-vm-function-redefinition.js +parallel/test-vm-getters.js +parallel/test-vm-global-assignment.js +parallel/test-vm-global-configurable-properties.js +parallel/test-vm-global-define-property.js +parallel/test-vm-global-get-own.js +parallel/test-vm-global-identity.js +parallel/test-vm-global-non-writable-properties.js +parallel/test-vm-global-property-enumerator.js +parallel/test-vm-global-property-interceptors.js +parallel/test-vm-global-property-prototype.js +parallel/test-vm-global-setter.js +parallel/test-vm-harmony-symbols.js +parallel/test-vm-indexed-properties.js +parallel/test-vm-inherited_properties.js +parallel/test-vm-is-context.js +parallel/test-vm-low-stack-space.js +parallel/test-vm-measure-memory.js +parallel/test-vm-measure-memory-lazy.js +parallel/test-vm-measure-memory-multi-context.js +parallel/test-vm-module-basic.js +parallel/test-vm-module-cached-data.js +parallel/test-vm-module-dynamic-import.js +parallel/test-vm-module-dynamic-namespace.js +parallel/test-vm-module-errors.js +parallel/test-vm-module-import-meta.js +parallel/test-vm-module-link.js +parallel/test-vm-module-reevaluate.js +parallel/test-vm-module-synthetic.js +parallel/test-vm-new-script-new-context.js +parallel/test-vm-new-script-this-context.js +parallel/test-vm-no-dynamic-import-callback.js +parallel/test-vm-not-strict.js +parallel/test-vm-options-validation.js +parallel/test-vm-ownkeys.js +parallel/test-vm-ownpropertynames.js +parallel/test-vm-ownpropertysymbols.js +parallel/test-vm-parse-abort-on-uncaught-exception.js +parallel/test-vm-preserves-property.js +parallel/test-vm-property-not-on-sandbox.js +parallel/test-vm-proxies.js +parallel/test-vm-proxy-failure-CP.js +parallel/test-vm-run-in-new-context.js +parallel/test-vm-script-throw-in-tostring.js +parallel/test-vm-set-property-proxy.js +parallel/test-vm-set-proto-null-on-globalthis.js +parallel/test-vm-sigint-existing-handler.js +parallel/test-vm-sigint.js +parallel/test-vm-source-map-url.js +parallel/test-vm-static-this.js +parallel/test-vm-strict-assign.js +parallel/test-vm-strict-mode.js +parallel/test-vm-symbols.js +parallel/test-vm-syntax-error-message.js +parallel/test-vm-syntax-error-stderr.js +parallel/test-vm-timeout-escape-promise-2.js +parallel/test-vm-timeout-escape-promise.js +parallel/test-vm-timeout-escape-promise-module.js +parallel/test-vm-timeout.js +parallel/test-warn-sigprof.js +parallel/test-warn-stream-wrap.js +parallel/test-weakref.js +parallel/test-webcrypto-constructors.js +parallel/test-webcrypto-cryptokey-workers.js +parallel/test-webcrypto-derivebits-cfrg.js +parallel/test-webcrypto-derivebits-ecdh.js +parallel/test-webcrypto-derivebits-hkdf.js +parallel/test-webcrypto-derivebits.js +parallel/test-webcrypto-derivekey-cfrg.js +parallel/test-webcrypto-derivekey-ecdh.js +parallel/test-webcrypto-derivekey.js +parallel/test-webcrypto-digest.js +parallel/test-webcrypto-encrypt-decrypt-aes.js +parallel/test-webcrypto-encrypt-decrypt.js +parallel/test-webcrypto-encrypt-decrypt-rsa.js +parallel/test-webcrypto-export-import-cfrg.js +parallel/test-webcrypto-export-import-ec.js +parallel/test-webcrypto-export-import.js +parallel/test-webcrypto-export-import-rsa.js +parallel/test-webcrypto-getRandomValues.js +parallel/test-webcrypto-keygen.js +parallel/test-webcrypto-random.js +parallel/test-webcrypto-sign-verify-eddsa.js +parallel/test-webcrypto-sign-verify-hmac.js +parallel/test-webcrypto-sign-verify.js +parallel/test-webcrypto-util.js +parallel/test-webcrypto-webidl.js +parallel/test-webcrypto-wrap-unwrap.js +parallel/test-websocket-disabled.js +parallel/test-websocket.js +parallel/test-webstorage.js +parallel/test-webstream-encoding-inspect.js +parallel/test-webstream-readable-from.js +parallel/test-webstream-readablestream-pipeto.js +parallel/test-webstreams-abort-controller.js +parallel/test-webstreams-clone-unref.js +parallel/test-webstreams-compose.js +parallel/test-webstreams-finished.js +parallel/test-webstreams-pipeline.js +parallel/test-webstream-string-tag.js +parallel/test-whatwg-encoding-custom-api-basics.js +parallel/test-whatwg-encoding-custom-fatal-streaming.js +parallel/test-whatwg-encoding-custom-internals.js +parallel/test-whatwg-encoding-custom-interop.js +parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js +parallel/test-whatwg-encoding-custom-textdecoder-fatal.js +parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js +parallel/test-whatwg-encoding-custom-textdecoder-invalid-arg.js +parallel/test-whatwg-encoding-custom-textdecoder.js +parallel/test-whatwg-encoding-custom-textdecoder-streaming.js +parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js +parallel/test-whatwg-events-add-event-listener-options-passive.js +parallel/test-whatwg-events-add-event-listener-options-signal.js +parallel/test-whatwg-events-customevent.js +parallel/test-whatwg-events-event-constructors.js +parallel/test-whatwg-events-eventtarget-this-of-listener.js +parallel/test-whatwg-readablebytestream-bad-buffers-and-views.js +parallel/test-whatwg-readablebytestreambyob.js +parallel/test-whatwg-readablebytestream.js +parallel/test-whatwg-readablestream.js +parallel/test-whatwg-transformstream.js +parallel/test-whatwg-url-canparse.js +parallel/test-whatwg-url-custom-deepequal.js +parallel/test-whatwg-url-custom-global.js +parallel/test-whatwg-url-custom-href-side-effect.js +parallel/test-whatwg-url-custom-inspect.js +parallel/test-whatwg-url-custom-parsing.js +parallel/test-whatwg-url-custom-properties.js +parallel/test-whatwg-url-custom-searchparams-append.js +parallel/test-whatwg-url-custom-searchparams-constructor.js +parallel/test-whatwg-url-custom-searchparams-delete.js +parallel/test-whatwg-url-custom-searchparams-entries.js +parallel/test-whatwg-url-custom-searchparams-foreach.js +parallel/test-whatwg-url-custom-searchparams-getall.js +parallel/test-whatwg-url-custom-searchparams-get.js +parallel/test-whatwg-url-custom-searchparams-has.js +parallel/test-whatwg-url-custom-searchparams-inspect.js +parallel/test-whatwg-url-custom-searchparams.js +parallel/test-whatwg-url-custom-searchparams-keys.js +parallel/test-whatwg-url-custom-searchparams-set.js +parallel/test-whatwg-url-custom-searchparams-sort.js +parallel/test-whatwg-url-custom-searchparams-stringifier.js +parallel/test-whatwg-url-custom-searchparams-values.js +parallel/test-whatwg-url-custom-setters.js +parallel/test-whatwg-url-custom-tostringtag.js +parallel/test-whatwg-url-invalidthis.js +parallel/test-whatwg-url-override-hostname.js +parallel/test-whatwg-url-properties.js +parallel/test-whatwg-webstreams-adapters-streambase.js +parallel/test-whatwg-webstreams-adapters-to-readablestream.js +parallel/test-whatwg-webstreams-adapters-to-readablewritablepair.js +parallel/test-whatwg-webstreams-adapters-to-streamduplex.js +parallel/test-whatwg-webstreams-adapters-to-streamreadable.js +parallel/test-whatwg-webstreams-adapters-to-streamwritable.js +parallel/test-whatwg-webstreams-adapters-to-writablestream.js +parallel/test-whatwg-webstreams-compression.js +parallel/test-whatwg-webstreams-coverage.js +parallel/test-whatwg-webstreams-encoding.js +parallel/test-whatwg-webstreams-transfer.js +parallel/test-whatwg-writablestream.js +parallel/test-windows-abort-exitcode.js +parallel/test-windows-failed-heap-allocation.js +parallel/test-worker-abort-on-uncaught-exception.js +parallel/test-worker-abort-on-uncaught-exception-terminate.js +parallel/test-worker-arraybuffer-zerofill.js +parallel/test-worker-beforeexit-throw-exit.js +parallel/test-worker-broadcastchannel.js +parallel/test-worker-broadcastchannel-wpt.js +parallel/test-worker-cjs-workerdata.js +parallel/test-worker-cleanexit-with-js.js +parallel/test-worker-cleanexit-with-moduleload.js +parallel/test-worker-cleanup-handles.js +parallel/test-worker-cli-options.js +parallel/test-worker-console-listeners.js +parallel/test-worker-crypto-sign-transfer-result.js +parallel/test-worker-data-url.js +parallel/test-worker-debug.js +parallel/test-worker-dns-terminate-during-query.js +parallel/test-worker-dns-terminate.js +parallel/test-worker-environmentdata.js +parallel/test-worker-error-stack-getter-throws.js +parallel/test-worker-esm-exit.js +parallel/test-worker-esm-missing-main.js +parallel/test-worker-esmodule.js +parallel/test-worker-eval-typescript.js +parallel/test-worker-event.js +parallel/test-worker-execargv-invalid.js +parallel/test-worker-execargv.js +parallel/test-worker-exit-code.js +parallel/test-worker-exit-event-error.js +parallel/test-worker-exit-from-uncaught-exception.js +parallel/test-worker-exit-heapsnapshot.js +parallel/test-worker-fs-stat-watcher.js +parallel/test-worker-hasref.js +parallel/test-worker-heapdump-failure.js +parallel/test-worker-heap-snapshot.js +parallel/test-worker-http2-generic-streams-terminate.js +parallel/test-worker-http2-stream-terminate.js +parallel/test-worker-init-failure.js +parallel/test-worker-invalid-workerdata.js +parallel/test-worker.js +parallel/test-worker-load-file-with-extension-other-than-js.js +parallel/test-worker-memory.js +parallel/test-worker-message-channel.js +parallel/test-worker-message-channel-sharedarraybuffer.js +parallel/test-worker-message-event.js +parallel/test-worker-message-mark-as-uncloneable.js +parallel/test-worker-message-not-serializable.js +parallel/test-worker-message-port-arraybuffer.js +parallel/test-worker-message-port-close.js +parallel/test-worker-message-port-close-while-receiving.js +parallel/test-worker-message-port-constructor.js +parallel/test-worker-message-port-drain.js +parallel/test-worker-messageport-hasref.js +parallel/test-worker-message-port-infinite-message-loop.js +parallel/test-worker-message-port-inspect-during-init-hook.js +parallel/test-worker-message-port.js +parallel/test-worker-message-port-jstransferable-nested-untransferable.js +parallel/test-worker-message-port-message-before-close.js +parallel/test-worker-message-port-message-port-transferring.js +parallel/test-worker-message-port-move.js +parallel/test-worker-message-port-multiple-sharedarraybuffers.js +parallel/test-worker-message-port-receive-message.js +parallel/test-worker-message-port-terminate-transfer-list.js +parallel/test-worker-message-port-transfer-closed.js +parallel/test-worker-message-port-transfer-duplicate.js +parallel/test-worker-message-port-transfer-fake-js-transferable-internal.js +parallel/test-worker-message-port-transfer-fake-js-transferable.js +parallel/test-worker-message-port-transfer-filehandle.js +parallel/test-worker-message-port-transfer-native.js +parallel/test-worker-message-port-transfer-self.js +parallel/test-worker-message-port-transfer-target.js +parallel/test-worker-message-port-transfer-terminate.js +parallel/test-worker-message-port-wasm-module.js +parallel/test-worker-message-port-wasm-threads.js +parallel/test-worker-message-transfer-port-mark-as-untransferable.js +parallel/test-worker-message-type-unknown.js +parallel/test-worker-messaging-errors-handler.js +parallel/test-worker-messaging-errors-invalid.js +parallel/test-worker-messaging-errors-timeout.js +parallel/test-worker-messaging.js +parallel/test-worker-mjs-workerdata.js +parallel/test-worker-name.js +parallel/test-worker-nearheaplimit-deadlock.js +parallel/test-worker-nested-on-process-exit.js +parallel/test-worker-nested-uncaught.js +parallel/test-worker-nexttick-terminate.js +parallel/test-worker-node-options.js +parallel/test-worker-non-fatal-uncaught-exception.js +parallel/test-worker-no-sab.js +parallel/test-worker-no-stdin-stdout-interaction.js +parallel/test-worker-onmessage.js +parallel/test-worker-onmessage-not-a-function.js +parallel/test-worker-on-process-exit.js +parallel/test-worker-parent-port-ref.js +parallel/test-worker-process-argv.js +parallel/test-worker-process-cwd.js +parallel/test-worker-process-env.js +parallel/test-worker-process-env-shared.js +parallel/test-worker-process-exit-async-module.js +parallel/test-worker-ref.js +parallel/test-worker-ref-onexit.js +parallel/test-worker-relative-path-double-dot.js +parallel/test-worker-relative-path.js +parallel/test-worker-resource-limits.js +parallel/test-worker-safe-getters.js +parallel/test-worker-sharedarraybuffer-from-worker-thread.js +parallel/test-worker-stack-overflow.js +parallel/test-worker-stack-overflow-stack-size.js +parallel/test-worker-stdio-flush-inflight.js +parallel/test-worker-stdio-flush.js +parallel/test-worker-stdio-from-preload-module.js +parallel/test-worker-stdio.js +parallel/test-worker-syntax-error-file.js +parallel/test-worker-syntax-error.js +parallel/test-worker-terminate-http2-respond-with-file.js +parallel/test-worker-terminate-microtask-loop.js +parallel/test-worker-terminate-nested.js +parallel/test-worker-terminate-null-handler.js +parallel/test-worker-terminate-ref-public-port.js +parallel/test-worker-terminate-source-map.js +parallel/test-worker-terminate-timers.js +parallel/test-worker-terminate-unrefed.js +parallel/test-worker-track-unmanaged-fds.js +parallel/test-worker-type-check.js +parallel/test-worker-uncaught-exception-async.js +parallel/test-worker-uncaught-exception.js +parallel/test-worker-unref-from-message-during-exit.js +parallel/test-worker-unsupported-path.js +parallel/test-worker-unsupported-things.js +parallel/test-worker-vm-context-terminate.js +parallel/test-worker-voluntarily-exit-followed-by-addition.js +parallel/test-worker-voluntarily-exit-followed-by-throw.js +parallel/test-worker-workerdata-messageport.js +parallel/test-worker-workerdata-sharedarraybuffer.js +parallel/test-wrap-js-stream-destroy.js +parallel/test-wrap-js-stream-duplex.js +parallel/test-wrap-js-stream-exceptions.js +parallel/test-wrap-js-stream-read-stop.js +parallel/test-x509-escaping.js +parallel/test-zlib-brotli-16GB.js +parallel/test-zlib-brotli-flush.js +parallel/test-zlib-brotli-from-brotli.js +parallel/test-zlib-brotli-from-string.js +parallel/test-zlib-brotli.js +parallel/test-zlib-brotli-kmaxlength-rangeerror.js +parallel/test-zlib-bytes-read.js +parallel/test-zlib-close-after-error.js +parallel/test-zlib-close-after-write.js +parallel/test-zlib-close-in-ondata.js +parallel/test-zlib-const.js +parallel/test-zlib-convenience-methods.js +parallel/test-zlib-crc32.js +parallel/test-zlib-create-raw.js +parallel/test-zlib-deflate-constructors.js +parallel/test-zlib-deflate-raw-inherits.js +parallel/test-zlib-destroy.js +parallel/test-zlib-destroy-pipe.js +parallel/test-zlib-dictionary-fail.js +parallel/test-zlib-dictionary.js +parallel/test-zlib-empty-buffer.js +parallel/test-zlib-failed-init.js +parallel/test-zlib-flush-drain.js +parallel/test-zlib-flush-drain-longblock.js +parallel/test-zlib-flush-flags.js +parallel/test-zlib-flush.js +parallel/test-zlib-flush-write-sync-interleaved.js +parallel/test-zlib-from-concatenated-gzip.js +parallel/test-zlib-from-gzip.js +parallel/test-zlib-from-gzip-with-trailing-garbage.js +parallel/test-zlib-from-string.js +parallel/test-zlib-invalid-arg-value-brotli-compress.js +parallel/test-zlib-invalid-input.js +parallel/test-zlib-invalid-input-memory.js +parallel/test-zlib.js +parallel/test-zlib-kmaxlength-rangeerror.js +parallel/test-zlib-maxOutputLength.js +parallel/test-zlib-no-stream.js +parallel/test-zlib-not-string-or-buffer.js +parallel/test-zlib-object-write.js +parallel/test-zlib-params.js +parallel/test-zlib-premature-end.js +parallel/test-zlib-random-byte-pipes.js +parallel/test-zlib-reset-before-write.js +parallel/test-zlib-sync-no-event.js +parallel/test-zlib-truncated.js +parallel/test-zlib-unused-weak.js +parallel/test-zlib-unzip-one-byte-chunks.js +parallel/test-zlib-write-after-close.js +parallel/test-zlib-write-after-end.js +parallel/test-zlib-write-after-flush.js +parallel/test-zlib-zero-byte.js +parallel/test-zlib-zero-windowBits.js +pseudo-tty/console_colors.js +pseudo-tty/console-dumb-tty.js +pseudo-tty/no_dropped_stdio.js +pseudo-tty/no_interleaved_stdio.js +pseudo-tty/ref_keeps_node_running.js +pseudo-tty/repl-dumb-tty.js diff --git a/v8.pc.in b/v8.pc.in new file mode 100644 index 0000000000000000000000000000000000000000..6b63094c8c4eaa94c525bef3e515c6d0646cd44b --- /dev/null +++ b/v8.pc.in @@ -0,0 +1,9 @@ +prefix=@PREFIX@ +includedir=@INCLUDEDIR@ +libdir=@LIBDIR@ + +Name: v8-@PKGCONFVERSION@ +Description: JavaScript Runtime +Version: @V8_VERSION@ +Libs: -L${libdir} -lv8 +Cflags: -I${includedir}