Skip to content

Commit 063ebea

Browse files
authored
Make sure tasks are available before proceeding with tasks (#1685)
Tasks are the basic building blocks of most of our features so most tests will not go well if `swift` tasks cannot be provided. I think this failure could be intermittently due to slower activation so will make sure tasks are provided Issue: #1684
1 parent d4c2470 commit 063ebea

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/tasks/SwiftTaskProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export function resetBuildAllTaskCache() {
135135
buildAllTaskCache.reset();
136136
}
137137

138-
function buildAllTaskName(folderContext: FolderContext, release: boolean): string {
138+
export function buildAllTaskName(folderContext: FolderContext, release: boolean): string {
139139
let buildTaskName = release
140140
? `${SwiftTaskProvider.buildAllName} - Release`
141141
: SwiftTaskProvider.buildAllName;

test/integration-tests/utilities/testutilities.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { isDeepStrictEqual } from "util";
2525
import { Version } from "../../../src/utilities/version";
2626
import { SwiftOutputChannel } from "../../../src/ui/SwiftOutputChannel";
2727
import configuration from "../../../src/configuration";
28-
import { resetBuildAllTaskCache } from "../../../src/tasks/SwiftTaskProvider";
28+
import { buildAllTaskName, resetBuildAllTaskCache } from "../../../src/tasks/SwiftTaskProvider";
2929

3030
export function getRootWorkspaceFolder(): vscode.WorkspaceFolder {
3131
const result = vscode.workspace.workspaceFolders?.at(0);
@@ -365,6 +365,14 @@ export const folderInRootWorkspace = async (
365365
if (!folder) {
366366
folder = await workspaceContext.addPackageFolder(testAssetUri(name), workspaceFolder);
367367
}
368+
let i = 0;
369+
while (i++ < 5) {
370+
const tasks = await vscode.tasks.fetchTasks({ type: "swift" });
371+
if (tasks.find(t => t.name === buildAllTaskName(folder, false))) {
372+
break;
373+
}
374+
await new Promise(r => setTimeout(r, 5000));
375+
}
368376
return folder;
369377
};
370378

0 commit comments

Comments
 (0)