node:http / node:https behavioral parity tail
Successor to #2132 (which covered the byte-level diff scope — now closed). This tracks the behavioral gap that re-measurement against Node's own test/parallel corpus surfaced: tests that compile and run but crash, hang, or fail an assertion.
Measurement (Node v22 corpus, scripts/node_core_subset.py --api http https)
|
original (#2132 open) |
after #2132 fixes |
| parity |
11.6% |
26.2% |
| pass |
38 |
86 |
| runtime-fail |
285 |
240 |
| compile-fail |
4 |
0 |
| diff |
2 |
2 |
The #2132 fixes (#4903/#4904/#4905/#4906/#4907/#4908/#4909/#4910) cleared the clean single-root-cause clusters (server.address, constructors, missing methods, validation, codegen). What remains is the hard tail.
Remaining 240 runtime-fails by cluster
| cluster |
count |
notes |
| no-output / server hang |
67 |
framing / keep-alive / timeout hangs; improved by #4964 but still the biggest mechanical bucket |
| strict-equal mismatch |
63 |
behavioral semantics — largest, grows as upstream fixes unblock tests |
| other one-offs |
56 |
mostly hang-with-partial-stdout + the distinct bugs below |
| read-undefined-prop |
25 |
scattered |
| not-a-function |
13 |
residual lifecycle methods |
| https TLS cert |
6 |
residual from #4906 |
| missing-exception |
5 |
residual from #4907 |
| ReferenceError not-defined |
5 |
missing globals (MessageEvent, OutgoingMessage, …) |
Sub-tickets (distinct root causes split out)
Not yet split (need triage)
- strict-equal (63) — behavioral; e.g.
test-http-1.0, test-http-agent-scheduling, test-http-agent-keep-alive-timeout-buffer, test-http-blank-header, test-http-chunk-extensions-limit, test-http-client-headers-array. No single root cause — needs per-test diff of actual vs expected.
- no-output (67) — server hangs; needs stderr instrumentation per test (sub-themes: agent lifecycle, outgoing-message framing, keep-alive).
Method
Reproduce locally: vendor the corpus (git clone --no-checkout --depth 1 --branch v22.x --filter=blob:none https://github.com/nodejs/node <dir> + git sparse-checkout set test/parallel test/common test/fixtures), then scripts/node_core_subset.py --root <dir> --api http https --sample-cap 500. Re-measure after each batch to catch regressions (this run already caught #4970).
node:http / node:https behavioral parity tail
Successor to #2132 (which covered the byte-level diff scope — now closed). This tracks the behavioral gap that re-measurement against Node's own
test/parallelcorpus surfaced: tests that compile and run but crash, hang, or fail an assertion.Measurement (Node v22 corpus,
scripts/node_core_subset.py --api http https)The #2132 fixes (#4903/#4904/#4905/#4906/#4907/#4908/#4909/#4910) cleared the clean single-root-cause clusters (server.address, constructors, missing methods, validation, codegen). What remains is the hard tail.
Remaining 240 runtime-fails by cluster
MessageEvent,OutgoingMessage, …)Sub-tickets (distinct root causes split out)
ClientRequestmethod''throws instead of defaulting toGET(over-validation from node:http: missing argument/header/URL validation (assert.throws → Missing expected exception) #4907)js_native_call_methodnull-ptr crash incloseIdleConnectionssweepsuper()this-TDZObject prototype may only be an Object or nulltls config unavailableunder async-disposeNot yet split (need triage)
test-http-1.0,test-http-agent-scheduling,test-http-agent-keep-alive-timeout-buffer,test-http-blank-header,test-http-chunk-extensions-limit,test-http-client-headers-array. No single root cause — needs per-test diff of actual vs expected.Method
Reproduce locally: vendor the corpus (
git clone --no-checkout --depth 1 --branch v22.x --filter=blob:none https://github.com/nodejs/node <dir>+git sparse-checkout set test/parallel test/common test/fixtures), thenscripts/node_core_subset.py --root <dir> --api http https --sample-cap 500. Re-measure after each batch to catch regressions (this run already caught #4970).