test: add constructor tests for new() and _passfh#36
Merged
toddr merged 1 commit intocpan-authors:mainfrom Mar 23, 2026
Merged
Conversation
The _passfh filehandle resolution and new() error paths were only tested via integration tests that require a running identd (skipped in CI). This adds 27 unit tests covering: - Various FH passing styles: glob ref, string, qualified name, FileHandle - Error-state object behavior (all methods return undef except geterror) - newFromInAddr with unreachable address - Connected socket without identd (full new→query→username path) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
What
Add
t/constructor.twith 27 tests covering thenew()constructor and_passfhfilehandle resolution.Why
The
_passfhfunction (which resolves string filehandle names to glob refs) and thenew()error paths were only tested viat/Ident.tintegration tests that require a running identd. Since CI never has identd available, these code paths were effectively untested in automated runs.How
Tests exercise
new()with every filehandle passing style the module supports (glob ref, bare string, qualified string, FileHandle object, undef) plusnewFromInAddrwith unreachable addresses. A loopback listener/connect pair tests the fullnew→query→usernamepath without needing an external identd.Testing
prove -b t/— 107 tests across 9 files, all passing.