fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan
, '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

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference - #1753

Closed
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing
Closed

fix: reduce flaky tests by preventing container auto-removal and parallel --all interference#1753
kasc0206 wants to merge 1 commit into
apple:mainfrom
kasc0206:fix/flaky-tests-container-timing

Conversation

@kasc0206

@kasc0206kasc0206 commented Jun 19, 2026

Copy link
Copy Markdown

Summary

Fix 5 flaky tests identified during Release mode testing (892 tests, 887 pass, 5 flaky).

Root Cause Analysis

TestCLIStop (4 failures):doLongRun defaults to autoRemove: true (--rm flag).
When a container crashes between creation and inspect/stop, --rm auto-deletes it,
causing subsequent container inspect / container stop to fail with "container not found".

TestCLIRemove (3 failures): Tests use delete --all / delete --all --force,
which operate on ALL containers. When multiple tests run in parallel, they delete
each other's containers.

TestCLIProgressAuto (1 failure):testExplicitAnsiProgress expects ANSI escape
sequences on stderr, but ANSI output is only emitted when stderr is a TTY. When
running with output redirected (CI, swift test > file), progress falls back to plain text.

Changes

FileChange
TestCLIStop.swift4 tests: doLongRun(name:)doLongRun(name:, autoRemove: false)
TestCLIRemove.swiftdelete --alldelete <specific-names> to avoid cross-test interference
TestCLIRemove.swiftdelete --all --forcedelete --force <name>
TestCLIProgressAuto.swiftGuard ANSI assertion with isatty(STDERR_FILENO) check

Notes

  • Commit is signed with SSH (ED25519)
  • Branch has been rebased onto latest upstream/main to keep a clean history

@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch 2 times, most recently from 3e83760 to 1ef0fe3CompareJune 20, 2026 23:56
@kasc0206

Copy link
Copy Markdown
Author

Hi @dcantah@crosbymichael, could you please review this PR when you have a moment?

This fixes 5 flaky tests identified in Release mode testing:

  • TestCLIStop (4 tests): Container auto-removal (--rm) caused 'container not found' errors
  • TestCLIRemove (3 tests): Parallel --all interference between tests
  • TestCLIProgressAuto (1 test): ANSI progress assert fails when output is redirected

The commit is SSH-signed and rebased onto the latest main.

cc @adityaramani@jglogan

…llel --all interference
Fix 5 flaky tests in Release mode:
TestCLIStop (4 tests):
- Change doLongRun to use autoRemove: false so containers persist
even if they crash, preventing 'container not found' errors on
subsequent inspect/stop calls.
TestCLIRemove (3 tests):
- Replace 'delete --all' and 'delete --all --force' with specific
container names to prevent parallel test interference.
TestCLIProgressAuto (1 test):
- Guard ANSI assertion with isatty(STDERR_FILENO) check since
progress falls back to plain text when output is redirected.
@kasc0206
kasc0206force-pushed the fix/flaky-tests-container-timing branch from 1ef0fe3 to d011a03CompareJuly 2, 2026 22:29
@jglogan

Copy link
Copy Markdown
Contributor

@kasc0206Tests/CLITests is gone as of #1886. If your test fix is still applicable, please study the new test fixtures, and rebase it onto the relevant test in Tests/IntegrationTests. Thank you!

@jgloganjglogan closed this Aug 9, 2026
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.

2 participants

@kasc0206@jglogan