Stabilize AppHost lifecycle and workspace terminal E2E tests - #19710
Adam Ratzman (adamint) merged 10 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: bfd8ca3a-fb74-4ea3-b300-2c08ff1713d7
There was a problem hiding this comment.
Pull request overview
Hardens a VS Code extension lifecycle E2E test against slow Windows process startup.
Changes:
- Raises the synthetic CLI timeout to 10 seconds.
- Extends PID evidence waiting to 30 seconds.
- Keeps timeout assertions synchronized with the configured value.
Show a summary per file
| File | Description |
|---|---|
extension/src/test-e2e/appHostLifecycleTools.e2e.test.ts |
Adjusts lifecycle timeout test timing. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Balanced
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19710Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19710" |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
There was a problem hiding this comment.
Review details
Suppressed comments (1)
extension/src/utils/AspireTerminalProvider.ts:322
- This startup failure is also surfaced by
registerCliCommands.ts:169, making the literal user-facing. Define it withvscode.l10n.t(...)insrc/loc/strings.tsand use the localized constant here.
throw new Error('Aspire terminal process failed to start.');
- Files reviewed: 5/5 changed files
- Comments generated: 3
- Review effort level: Balanced
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63cccda9-cb23-490a-af18-eaea2384ee4c
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
7ee0363
into
microsoft:main
|
The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests. Suspected flaky test(s): Suggested actions:
You can re-run the failed jobs from the workflow run page. |
Description
The original PR only addressed the Windows
apphost-lifecycle-toolsfailure. A broader review of the August 24-26 CI runs found four distinct VS Code extension E2E failures:edge-casesdebugger guidanceworkspace-target-proofpackage hiveapphost-lifecycle-toolsPID/timeout raceworkspace-target-proofdropped terminal commandFor
apphost-lifecycle-tools, the synthetic CLI invocation now has ten seconds to start and the PID evidence wait has thirty seconds. The test still verifies that the descendant process is gone beforerunAspireClirejects; product timeout and process-tree cleanup behavior are unchanged.For
workspace-target-proof, fallback terminal execution now waits for the terminal process to exist and rejects if the terminal closes or starts without a PID. The first command no longer sends Ctrl+C into a shell that may still be initializing, while reused terminals keep the existing Ctrl+C behavior. The reuse decision happens after startup so concurrent sends cannot both classify the terminal as fresh. The E2E also uses a separate folder C fixture for the directAspire: New Projectpath.CodeLens log commands now return the terminal command promise, so startup failures flow through the existing command instrumentation instead of becoming unhandled rejections. Both startup errors are also registered in the extension localization catalog.
Local verification:
registerCodeLensCommands.test.ts: 1 passingaspireTerminalProvider.test.ts: 89 passingstrings.test.ts: 13 passinge2eLaunchProfile.test.ts: 72 passingworkspace-target-proofscenario passedCI verification for head
08d7fad58:workspace-target-proofapphost-lifecycle-toolsedge-casesapphost-lifecycle-toolsedge-casesChecklist
<remarks />and<code />elements on your triple slash comments?This fix was created using the fix-flaky-test skill.