Skip to content

test(e2e): cover no-such-container and broken-pipe SSH retry patterns - #1015

Merged
skevetter merged 1 commit into
mainfrom
integration-test/ssh-retry-pattern-coverage
Aug 12, 2026
Merged

skevetter merged 1 commit into
mainfrom
integration-test/ssh-retry-pattern-coverage

Conversation

@devsy-app

@devsy-app devsy-app Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

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 pattern. Both feed isRetryableSSHError, which gates execWithSSHRetry — the wrapper DevsySSH uses in the tunnel/ssh e2e suites to mask transient WSL/Windows runner flakiness.

Suite / test

  • Suite: e2e/framework/retry_test.go
  • Tests added: TestIsRetryableSSHError_NoSuchContainer, TestIsRetryableSSHError_BrokenPipe

Edge case added

retryableSSHPatterns listed no such container and broken pipe as transient, but no test exercised those strings through isRetryableSSHError. 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 isRetryableSSHError directly 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 issues
  • task cli:test — passes; the only failure is the known pre-existing pkg/git TestRepoClone* stale-assertion failure (unrelated — this change does not touch pkg/git)
  • go test ./e2e/framework/ — ok github.com/devsy-org/devsy/e2e/framework (all framework tests pass, including the two new ones)
  • Diff: only e2e/framework/retry_test.go (+20 lines); no go.mod/go.sum changes

This PR was created by an AI agent as part of an automated daily e2e review job.

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.
@netlify

netlify Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit 672725c
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a7c675848022f00084dde02

@netlify

netlify Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit 672725c
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a7c675881b3cc00085ec7cb

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

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.

Run reviewer

TIP This summary will be updated as you push new changes.

@skevetter
skevetter marked this pull request as ready for review August 12, 2026 14:35
@skevetter
skevetter merged commit 1494372 into main Aug 12, 2026
67 checks passed
@skevetter
skevetter deleted the integration-test/ssh-retry-pattern-coverage branch August 12, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant