Skip to content

test,tools: reduce CI test runtime - #65980

Open
panva wants to merge 12 commits into
nodejs:mainfrom
panva:test-ci-time-reductions
Open

test,tools: reduce CI test runtime#65980
panva wants to merge 12 commits into
nodejs:mainfrom
panva:test-ci-time-reductions

Conversation

@panva

@panva panva commented Sep 11, 2026

Copy link
Copy Markdown
Member

Reduce idle waits and redundant work in tests identified through Jenkins timing reports:

  • Close single-use HTTP/HTTPS and WebAssembly test connections.
  • Replace the runner fixture's fixed delay with explicit synchronization.
  • Force GC in the abort timeout test, clear its watchdog, unref the cancelled broadcast source timer, and avoid DNS retry backoff.
  • Reuse DH parameters and overlap SLH-DSA sync/async signing while retaining algorithm coverage and assertions.
  • Reduce ZIP64 archive I/O while preserving oversized-member and offset coverage, CRC checks, full readback, and file-backed reserialization.
  • Skip the Python runner's sleep after child exit and make --time show the slowest 20 tests.

A leading member just over 4 GiB followed by a small member exercises
Zip64 sizes and offsets with less I/O. Reuse source buffers and verify
raw Zip64 fields while retaining full readback and file-backed
reserialization.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Named modp14 parameters avoid generating and repeatedly validating a
custom prime. Keep the existing exchange counts and FIPS rejection
assertion. The separate deterministic padding test continues to cover
imported prime parameters.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Unreferencing listeners leaves accepted connections alive until the
keep-alive timeout. Close each single-use connection and its server
when the response closes, including intentionally destroyed responses.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
RunProcess sleeps after polling even when the child has already exited.
Skip that sleep, saving up to 100 ms per test.

Sort --time results in descending order to display the 20 slowest tests.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Single-use requests otherwise wait for the keep-alive timeout. Use
nonpersistent agents where agent selection is unrelated to coverage.
For default-agent tests, close the server after consuming the response.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Use the modp14 prime instead of generating fresh parameters for tests
of constructors, key setters, and memory retention. Keep generic
DiffieHellman instances and the existing setter and leak assertions.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Release the slow fixture over a local socket after the fast fixture
emits its bypassed completion event. This removes the fixed 30-second
delay while preserving event-order assertions and a bounded failure
timeout.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
A single query attempt exercises the configured timeout without the
default retry backoff. Retry behavior has separate coverage.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Force collection on a later turn while the timeout sources are only
retained by AbortSignal.any(). Shorten the first timeout and clear the
watchdog after the assertion. This preserves the source-retention
regression check without waiting ten seconds on successful runs.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
The source delay should not keep the process alive after cancellation.
Keep the blocked-source cancellation assertions and unref its timer.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
Start each asynchronous signature before the synchronous checks for the
same algorithm. Keep every sign, verify, and invalid-digest assertion,
with only one asynchronous signature outstanding. This reduces elapsed
time when CPU capacity is available without reducing coverage.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
@panva panva added test Issues and PRs related to Node.js core tests and test infrastructure. commit-queue-rebase PRs the Commit Queue should land as multiple self-contained commits. labels Sep 11, 2026
@nodejs-github-bot nodejs-github-bot added esm Issues and PRs related to the ECMAScript Modules implementation. needs-ci PRs that need a full CI run. labels Sep 11, 2026
@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.16%. Comparing base (c909c63) to head (d72070f).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #65980      +/-   ##
==========================================
- Coverage   90.17%   90.16%   -0.01%     
==========================================
  Files         771      771              
  Lines      265451   265451              
  Branches    50459    50459              
==========================================
- Hits       239361   239347      -14     
+ Misses      17059    17058       -1     
- Partials     9031     9046      +15     

see 24 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@panva

This comment was marked as resolved.

Retain the original small imported parameters when the OpenSSL 3
provider shortcut is unavailable. BoringSSL checks the prime on every
named-group construction, making 4,000 modp14 constructions too slow.
Preserve the existing exchange counts and FIPS assertions.

Signed-off-by: Filip Skokan <panva.ip@gmail.com>
Assisted-by: Codex
@panva panva added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Sep 11, 2026
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. commit-queue-rebase PRs the Commit Queue should land as multiple self-contained commits. esm Issues and PRs related to the ECMAScript Modules implementation. needs-ci PRs that need a full CI run. test Issues and PRs related to Node.js core tests and test infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants