Skip to content

Commit 1bf93d2

Browse files
committed
Set debugger in project panel tests
1 parent 80fa84f commit 1bf93d2

File tree

1 file changed

+47
-4
lines changed

1 file changed

+47
-4
lines changed

test/integration-tests/ui/ProjectPanelProvider.test.ts

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,21 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import { expect } from "chai";
16+
import { beforeEach, afterEach } from "mocha";
1617
import * as vscode from "vscode";
1718
import * as path from "path";
1819
import { ProjectPanelProvider, PackageNode, FileNode } from "../../../src/ui/ProjectPanelProvider";
1920
import { executeTaskAndWaitForResult, waitForNoRunningTasks } from "../../utilities/tasks";
2021
import { getBuildAllTask, SwiftTask } from "../../../src/tasks/SwiftTaskProvider";
2122
import { testAssetPath } from "../../fixtures";
22-
import { activateExtensionForSuite, folderInRootWorkspace } from "../utilities/testutilities";
23+
import {
24+
activateExtensionForSuite,
25+
folderInRootWorkspace,
26+
updateSettings,
27+
} from "../utilities/testutilities";
2328
import contextKeys from "../../../src/contextKeys";
29+
import { SwiftToolchain } from "../../../src/toolchain/toolchain";
30+
import { getLLDBLibPath } from "../../../src/debugger/lldb";
2431

2532
suite("ProjectPanelProvider Test Suite", function () {
2633
let treeProvider: ProjectPanelProvider;
@@ -30,8 +37,10 @@ suite("ProjectPanelProvider Test Suite", function () {
3037
async setup(ctx) {
3138
const workspaceContext = ctx;
3239
await waitForNoRunningTasks();
33-
await folderInRootWorkspace("defaultPackage", workspaceContext);
3440
const folderContext = await folderInRootWorkspace("targets", workspaceContext);
41+
await vscode.workspace.openTextDocument(
42+
path.join(folderContext.folder.fsPath, "Package.swift")
43+
);
3544
await executeTaskAndWaitForResult((await getBuildAllTask(folderContext)) as SwiftTask);
3645
await folderContext.loadSwiftPlugins();
3746
treeProvider = new ProjectPanelProvider(workspaceContext);
@@ -44,6 +53,36 @@ suite("ProjectPanelProvider Test Suite", function () {
4453
testAssets: ["targets"],
4554
});
4655

56+
async function getLLDBDebugAdapterPath() {
57+
switch (process.platform) {
58+
case "linux":
59+
return "/usr/lib/liblldb.so";
60+
case "win32":
61+
return await (await SwiftToolchain.create()).getLLDBDebugAdapter();
62+
default:
63+
return getLLDBLibPath(await SwiftToolchain.create());
64+
}
65+
}
66+
67+
let resetSettings: (() => Promise<void>) | undefined;
68+
beforeEach(async function () {
69+
const lldbPath = {
70+
"lldb.library": await getLLDBDebugAdapterPath(),
71+
"lldb.launch.expressions": "native",
72+
};
73+
74+
resetSettings = await updateSettings({
75+
"swift.debugger.useDebugAdapterFromToolchain": false,
76+
...lldbPath,
77+
});
78+
});
79+
80+
afterEach(async () => {
81+
if (resetSettings) {
82+
await resetSettings();
83+
}
84+
});
85+
4786
test("Includes top level nodes", async () => {
4887
const commands = await treeProvider.getChildren();
4988
const commandNames = commands.map(n => n.name);
@@ -79,8 +118,12 @@ suite("ProjectPanelProvider Test Suite", function () {
79118

80119
test("Executes a task", async () => {
81120
const tasks = await getHeaderChildren("Tasks");
82-
const task = tasks.find(n => n.name === "Build All (targets)");
83-
expect(task).to.not.be.undefined;
121+
const taskName = "Build All (targets)";
122+
const task = tasks.find(n => n.name === taskName);
123+
expect(
124+
task,
125+
`Expected to find task called ${taskName}, but instead items were ${tasks.map(n => n.name)}`
126+
).to.not.be.undefined;
84127
const treeItem = task?.toTreeItem();
85128
expect(treeItem?.command).to.not.be.undefined;
86129
expect(treeItem?.command?.arguments).to.not.be.undefined;

0 commit comments

Comments
 (0)