Repository navigation
Harden SRV resolver tests for restricted CI runners - #1041
Merged
Tomasz Naumowicz (tnaum-ms) merged 4 commits intoOct 21, 2026
Merged
Conversation
Avoid OS-dependent UDP refusal signals, wall-clock deadlines, TCP write timing, and random-ID assumptions. Guard DNS isolation and clean up stub startup failures while preserving loopback transport coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
✅ CI passed: standard tier (ready PR)Commit
Full run: add the Code quality
Build sizeNo page, activation, VSIX or other bundle size changed by 5% or 50 KiB or more against Artifacts: VSIX | Bundle-reports-39580842714 | L1-manifest-report-39580842714 All graphs (exact bytes)
Packaged bytes. Shared chunks count in every graph that loads them, so rows do not add up. Updated in place on every run. |
Normalize the forwarded emit result to a boolean because the root non-strict TypeScript context gives Function.call an unchecked return type. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Tomasz Naumowicz (tnaum-ms)
marked this pull request as ready for review
October 21, 2026 09:44
Tomasz Naumowicz (tnaum-ms)
enabled auto-merge
October 21, 2026 09:45
Laurent Nguyen (languy)
previously approved these changes
Oct 21, 2026
CI typechecks package tests with strictBindCallApply, which resolves the overloaded Socket.emit call signature differently from the root build. Give the saved emitter an explicit rest-argument signature so forwarding is valid under both configurations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require the exact workspace test typecheck instead of inferring it from build or Vitest success. Always run CI's non-mutating localization check, and build workspace outputs before strict test validation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
The static-check failure is fixed and the local verification instructions now match CI.
The earlier local Case 2 result covered the documented commands at the time, but missed the separate strict test-typecheck that CI required. The updated checklist closes that gap. |
Laurent Nguyen (languy)
approved these changes
Oct 21, 2026
Tomasz Naumowicz (tnaum-ms)
deleted the
dev/tnaum/harden-srv-resolver-tests
branch
October 21, 2026 10:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make the SRV DNS resolver tests reliable on Windows and restricted CI runners without changing production resolver behavior.
Why
The UDP refusal test expected a closed localhost port to promptly produce ECONNREFUSED. Windows or restricted runners can suppress that notification and produce a timeout instead. Other tests also depended on short real-time deadlines, delayed TCP writes, or randomly generated query IDs being different. Increasing timeouts would retain these OS-dependent and probabilistic assumptions, so the tests now control the relevant events directly.
Changes
Scope
Test code, test helpers, feature documentation, and Case 2 verification instructions only. No production resolver changes, no external DNS access, and no changes to CI permissions. Localhost UDP/TCP sockets must still be permitted.
Validation — Case 2 (2026-10-21)
Release and readiness
Context
Static-check failure follow-up
The initial local Case 2 list omitted
npm run typecheck:tests, which CI runs separately. Root build and Vitest runtime success did not cover strict package-test typing:Socket.emit.callforwarding produced TS2554 and TS2556. The saved emitter now has an explicit rest-argument signature. The exact CI workspace typecheck, build, resolver tests, lint, and formatting passed locally. Both contributor and Copilot Case 2 checklists now require that script andnpm run l10n:check, and explain why runtime tests are not a substitute.