[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[Test Improver] Add unit tests for RetryAttribute - #7838

Merged
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee
Apr 27, 2026
Merged

[Test Improver] Add unit tests for RetryAttribute#7838
Amaury Levé (Evangelink) merged 3 commits into
mainfrom
test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Add 13 unit tests covering RetryAttribute constructor validation, BackoffType property validation, and ExecuteAsync retry logic:

  • Constructor rejects maxRetryAttempts < 1
  • BackoffType setter rejects invalid enum values
  • ExecuteAsync stops early when retry succeeds
  • ExecuteAsync runs exactly MaxRetryAttempts times on all failures
  • ExecuteAsync stops on Inconclusive result

Fixes#7824

Add 13 unit tests covering RetryAttribute constructor validation,
BackoffType property validation, and ExecuteAsync retry logic:
- Constructor rejects maxRetryAttempts < 1
- BackoffType setter rejects invalid enum values
- ExecuteAsync stops early when retry succeeds
- ExecuteAsync runs exactly MaxRetryAttempts times on all failures
- ExecuteAsync stops on Inconclusive result
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 25, 2026 20:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds focused unit-level coverage for RetryAttribute behavior in the MSTest framework test suite, complementing existing integration-level coverage (per #7824).

Changes:

  • Adds constructor validation tests for RetryAttribute(maxRetryAttempts).
  • Adds BackoffType property validation tests (invalid enum values rejected, default/valid values accepted).
  • Adds ExecuteAsync retry-loop behavior tests (early success, max-attempt failures, timeout propagation, inconclusive stop).
Show a summary per file
FileDescription
test/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.csNew unit tests covering RetryAttribute validation and retry execution logic.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 2

Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Comment threadtest/UnitTests/TestFramework.UnitTests/Attributes/RetryAttributeTests.cs Outdated
Apply object initializer syntax (IDE0017) and explicit types instead
of var with non-apparent types (IDE0008) to pass Windows CI build
which treats analyzer warnings as errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: 5a55703

Generated by Daily Test Improver

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Test Improver here - I'm an automated AI assistant.

Pushed a fix for the Windows CI build failures. Root cause: TestFramework.UnitTests is not included in NonWindowsTests.slnf, so Linux/macOS CI never builds this project. Windows CI builds the full solution with -p:TreatWarningsAsErrors=true (via eng/common/tools.ps1), which elevated two analyzer warnings to errors:

  • IDE0017 (object initialization): separate attribute.BackoffType = ... assignment after construction → merged into object initializer
  • IDE0008 (explicit type): var firstRunResults = new[] { ... } and var outcome = ternary where type is not apparent → changed to explicit TestResult[] and UnitTestOutcome

Build now passes locally with TreatWarningsAsErrors=true: 0 warnings, 0 errors.

Note

🔒 Integrity filter blocked 9 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #7457search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7345search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7773search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #4931search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7542search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6950search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7680search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #3499search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #6719search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
github:
min-integrity: approved # merged | approved | unapproved | none

Generated by Daily Test Improver · ● 12.2M ·

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings April 26, 2026 15:43

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new

@Evangelink
Amaury Levé (Evangelink) merged commit cfd76ba into mainApr 27, 2026
14 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the test-assist/retry-attribute-unit-tests-e5b935ffdf7c54ee branch April 27, 2026 07:11
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test Improver] Add unit tests for RetryAttribute

3 participants

@Evangelink@JanKrivanek