Repository navigation
test(e2e): cover no-such-container and broken-pipe SSH retry patterns - #1015
Merged
Merged
Conversation
The retryableSSHPatterns list in e2e/framework/retry.go declares 'no such container' and 'broken pipe' as transient SSH errors, but retry_test.go had zero coverage for either. Both feed isRetryableSSHError, which gates execWithSSHRetry (used by DevsySSH in the tunnel/ssh e2e suites to mask transient WSL/Windows runner flakiness). Add edge-case tests for these two uncovered patterns so the retry classification is regression-protected.
✅ Deploy Preview for images-devsy-sh canceled.
|
✅ Deploy Preview for devsydev canceled.
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
AI Reviewer: run a review on demand. To trigger the first review automatically, go to your organization or repository integration settings. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
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
The
retryableSSHPatternslist ine2e/framework/retry.godeclaresno such containerandbroken pipeas transient SSH errors, butretry_test.gohad zero coverage for either pattern. Both feedisRetryableSSHError, which gatesexecWithSSHRetry— the wrapperDevsySSHuses in the tunnel/ssh e2e suites to mask transient WSL/Windows runner flakiness.Suite / test
e2e/framework/retry_test.goTestIsRetryableSSHError_NoSuchContainer,TestIsRetryableSSHError_BrokenPipeEdge case added
retryableSSHPatternslistedno such containerandbroken pipeas transient, but no test exercised those strings throughisRetryableSSHError. A regression that dropped either pattern (or weakened the matcher) would have passed CI silently. These two tests pin the classification using real error strings observed from WSL/container SSH failures.Real code paths only — no mocks. The tests call
isRetryableSSHErrordirectly with the actual transient exit-error wrapper used elsewhere in the suite.Verification performed
task cli:format— clean (0 issues)task cli:lint:ci— 0 issuestask cli:test— passes; the only failure is the known pre-existingpkg/gitTestRepoClone*stale-assertion failure (unrelated — this change does not touchpkg/git)go test ./e2e/framework/—ok github.com/devsy-org/devsy/e2e/framework(all framework tests pass, including the two new ones)e2e/framework/retry_test.go(+20 lines); nogo.mod/go.sumchangesThis PR was created by an AI agent as part of an automated daily e2e review job.