Skip to content

Commit 70bcfa5

Browse files
committed
Some cleanup
1 parent c05c41d commit 70bcfa5

File tree

14 files changed

+77
-44
lines changed

14 files changed

+77
-44
lines changed

docker/sandbox.sb

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
(subpath workspace)
2121
(path "/")
2222
(path "/private/etc/ssl/openssl.cnf")
23-
(path "/Library/Preferences/com.apple.dt.Xcode.plist")
24-
(path "/Library/Preferences/com.apple.ViewBridge.plist")
2523
(path "/dev/dtracehelper")
2624
(path "/dev/fd")
2725
(path "/dev/null")
@@ -30,31 +28,46 @@
3028
(path "/etc/shells")
3129
(path "/private/etc/shells")
3230
(path "/private/etc/ssl/cert.pem")
33-
(path "/usr/local/share/git-core/gitconfig")
34-
(subpath "/Users/award999/repos/sourcekit-lsp/.build") ; REMOVE
31+
(regex #"^/Users/[^/]+/.vscode.*")
3532
(regex #"^/Users/[^/]+/.gitconfig$")
33+
(regex #"^/Users/[^/]+/.gitignore$")
34+
(regex #"^/Users/[^/]+/.lldbinit$")
3635
(regex #"^/Users/[^/]+/.sourcekit-lsp.*")
3736
(regex #"^/Users/[^/]+/.swiftpm.*")
3837
(regex #"^/Users/[^/]+/Library/org.swift.swiftpm.*")
38+
(regex #"^/Users/[^/]+/Library/Developer/CommandLineTools")
3939
(regex #"^/Users/[^/]+/Library/Developer/Toolchains")
4040
(regex #"^/Users/[^/]+/Library/Developer/Xcode/DerivedData.*")
4141
(regex #"^/Users/[^/]+/Library/Caches/org.swift.swiftpm.*")
4242
(regex #"^/Users/[^/]+/Library/Caches/com.apple.dt.Xcode.*")
43+
(regex #"^/Users/[^/]+/Library/Caches/com.apple.python.*")
4344
(regex #"^/Users/[^/]+/Library/Application Support/Code.*")
45+
(regex #"^/Users/[^/]+/Library/Application Support/Microsoft.*")
46+
(regex #"^/Users/[^/]+/Library/Preferences/.*.plist")
47+
(regex #"^/Users/[^/]+/Library/Python")
48+
(regex #"^/Users/[^/]+/Library/SymbolCache/dsyms/uuids")
4449
(regex #"^/Users/[^/]+/Library/Saved Application State/com.microsoft.VSCode.savedState.*")
4550
(regex #"^/private/var/folders/[^/]+/[^/]+/.+")
51+
(regex #"^/Library/Preferences/.*.plist")
52+
(regex #"^/[^/]+/Library/Python")
4653
(subpath "/Library/Developer/Toolchains")
54+
(subpath "/Library/Frameworks/UIAutomation.framework")
55+
(subpath "/Library/Python")
4756
(subpath "/Applications/Xcode.app")
4857
(subpath "/Applications/Xcode-beta.app")
4958
(subpath "/bin")
5059
(subpath "/usr/bin")
60+
(subpath "/usr/local/bin")
5161
(subpath "/usr/libexec/path_helper")
52-
(regex #"^/Users/[^/]+/.vscode.*")
62+
(subpath "/usr/local/share/git-core")
63+
(subpath "/usr/local/share/hwtrace")
5364
)
5465

5566
(allow mach-lookup)
67+
(allow mach-priv-task-port)
5668
(allow mach-register)
5769
(allow sysctl-read)
70+
(allow system-debug)
5871
(allow ipc-posix-shm-read-data (literal "apple.shm.notification_center"))
5972

6073
; Write
@@ -67,6 +80,7 @@
6780
(regex #"^/Users/[^/]+/Library/org.swift.swiftpm.*")
6881
(regex #"^/Users/[^/]+/Library/Caches/org.swift.swiftpm.*")
6982
(regex #"^/Users/[^/]+/Library/Caches/com.apple.dt.Xcode.*")
83+
(regex #"^/Users/[^/]+/Library/Caches/com.apple.python.*")
7084
(regex #"^/Users/[^/]+/Library/Developer/Xcode/DerivedData.*")
7185
(regex #"^/Users/[^/]+/Library/Application Support/Code.*")
7286
(regex #"^/private/var/folders/[^/]+/[^/]+/.+")

docker/test-macos.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515

1616
set -e
1717

18+
platform=$([ $(arch) == "arm64" ] && echo "arm64" || echo "x64")
19+
1820
NODE_VERSION="$(cat .nvmrc)"
19-
NODE_NAME="node-v$NODE_VERSION-darwin-x64"
21+
NODE_NAME="node-v$NODE_VERSION-darwin-$platform"
2022
NODE_ARCHIVE="$NODE_NAME.tar.gz"
2123
ARTIFACTS="$PWD/.vscode-test"
2224
USER_DATA="$PWD/ud"
@@ -76,4 +78,4 @@ npm run package
7678

7779
# Need to set proxy to download VS Code
7880
export npm_config_https_proxy="$HTTPS_PROXY"
79-
VSCODE_DATA_DIR="$PWD/ud" CI=1 FAST_TEST_RUN=1 npm run coverage -- --coverage-output "$PWD/coverage"
81+
VSCODE_DATA_DIR="$USER_DATA" CI=1 FAST_TEST_RUN=1 npm run coverage -- --coverage-output "$PWD/coverage"

src/SwiftPackage.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,13 @@ export class SwiftPackage implements PackageContents {
211211
toolchain: SwiftToolchain
212212
): Promise<SwiftPackageState> {
213213
try {
214-
let { stdout } = await execSwift(["package", "describe", "--type", "json"], toolchain, {
215-
cwd: folder.fsPath,
216-
});
214+
let { stdout } = await execSwift(
215+
toolchain.buildFlags.withAdditionalFlags(["package", "describe", "--type", "json"]),
216+
toolchain,
217+
{
218+
cwd: folder.fsPath,
219+
}
220+
);
217221
// remove lines from `swift package describe` until we find a "{"
218222
while (!stdout.startsWith("{")) {
219223
const firstNewLine = stdout.indexOf("\n");

src/debugger/buildConfig.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ export class TestingConfigurationFactory {
535535
}
536536

537537
const swiftTestingArgs = [
538-
...args,
538+
...this.ctx.workspaceContext.toolchain.buildFlags.withAdditionalFlags(args),
539539
"--enable-swift-testing",
540540
"--event-stream-version",
541541
"0",

src/tasks/SwiftPluginTaskProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export class SwiftPluginTaskProvider implements vscode.TaskProvider {
8282
task.definition.command,
8383
...task.definition.args,
8484
];
85-
swiftArgs = this.workspaceContext.toolchain.buildFlags.withSwiftSDKFlags(swiftArgs);
85+
swiftArgs = this.workspaceContext.toolchain.buildFlags.withAdditionalFlags(swiftArgs);
8686

8787
const cwd = resolveTaskCwd(task, task.definition.cwd);
8888
const newTask = new vscode.Task(
@@ -122,7 +122,7 @@ export class SwiftPluginTaskProvider implements vscode.TaskProvider {
122122
plugin.command,
123123
...definition.args,
124124
];
125-
swiftArgs = this.workspaceContext.toolchain.buildFlags.withSwiftSDKFlags(swiftArgs);
125+
swiftArgs = this.workspaceContext.toolchain.buildFlags.withAdditionalFlags(swiftArgs);
126126

127127
const presentation = config?.presentationOptions ?? {};
128128
const task = new vscode.Task(

src/tasks/SwiftTaskProvider.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,7 @@ export function createSwiftTask(
286286
cmdEnv: { [key: string]: string } = {}
287287
): SwiftTask {
288288
const swift = toolchain.getToolchainExecutable("swift");
289-
args = toolchain.buildFlags.withSwiftSDKFlags(args);
290-
args = toolchain.buildFlags.withDisableSandboxFlags(args);
289+
args = toolchain.buildFlags.withAdditionalFlags(args);
291290

292291
// Add relative path current working directory
293292
const cwd = config.cwd.fsPath;
@@ -438,7 +437,8 @@ export class SwiftTaskProvider implements vscode.TaskProvider {
438437
resolveTask(task: vscode.Task, token: vscode.CancellationToken): vscode.Task {
439438
// We need to create a new Task object here.
440439
// Reusing the task parameter doesn't seem to work.
441-
const swift = this.workspaceContext.toolchain.getToolchainExecutable("swift");
440+
const toolchain = this.workspaceContext.toolchain;
441+
const swift = toolchain.getToolchainExecutable("swift");
442442
// platform specific
443443
let platform: TaskPlatformSpecificConfig | undefined;
444444
if (process.platform === "win32") {
@@ -449,7 +449,8 @@ export class SwiftTaskProvider implements vscode.TaskProvider {
449449
platform = task.definition.macos;
450450
}
451451
// get args and cwd values from either platform specific block or base
452-
const args = platform?.args ?? task.definition.args;
452+
let args = platform?.args ?? task.definition.args;
453+
args = toolchain.buildFlags.withAdditionalFlags(args);
453454
const env = platform?.env ?? task.definition.env;
454455
const fullCwd = resolveTaskCwd(task, platform?.cwd ?? task.definition.cwd);
455456

src/toolchain/BuildFlags.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class BuildFlags {
3737
*
3838
* @param args original commandline arguments
3939
*/
40-
withSwiftSDKFlags(args: string[]): string[] {
40+
private withSwiftSDKFlags(args: string[]): string[] {
4141
switch (args[0]) {
4242
case "package": {
4343
const subcommand = args.splice(0, 2).concat(this.buildPathFlags());
@@ -182,7 +182,7 @@ export class BuildFlags {
182182
*
183183
* @param args original commandline arguments
184184
*/
185-
withDisableSandboxFlags(args: string[]): string[] {
185+
private withDisableSandboxFlags(args: string[]): string[] {
186186
if (!configuration.disableSandbox) {
187187
return args;
188188
}
@@ -201,6 +201,10 @@ export class BuildFlags {
201201
}
202202
}
203203

204+
withAdditionalFlags(args: string[]): string[] {
205+
return this.withDisableSandboxFlags(this.withSwiftSDKFlags(args));
206+
}
207+
204208
/**
205209
* Get flags for disabling sandboxing when running SwiftPM
206210
*/

src/utilities/utilities.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,7 @@ export async function execSwift(
187187
swift = toolchain.getToolchainExecutable("swift");
188188
}
189189
if (toolchain !== "default") {
190-
args = toolchain.buildFlags.withSwiftSDKFlags(args);
191-
args = toolchain.buildFlags.withDisableSandboxFlags(args);
190+
args = toolchain.buildFlags.withAdditionalFlags(args);
192191
}
193192
if (Object.keys(configuration.swiftEnvironmentVariables).length > 0) {
194193
// when adding environment vars we either combine with vars passed

test/integration-tests/tasks/SwiftPluginTaskProvider.test.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ import {
3131
import { mutable } from "../../utilities/types";
3232
import { SwiftExecution } from "../../../src/tasks/SwiftExecution";
3333

34-
suite("SwiftPluginTaskProvider Test Suite", () => {
34+
suite("SwiftPluginTaskProvider Test Suite", function () {
3535
let workspaceContext: WorkspaceContext;
3636
let folderContext: FolderContext;
3737

38+
this.timeout(60000); // Mostly only when running suite with .only
39+
3840
suite("settings plugin arguments", () => {
3941
activateExtensionForSuite({
4042
async setup(ctx) {
@@ -101,7 +103,7 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
101103
const { exitCode, output } = await executeTaskAndWaitForResult(task);
102104
expect(exitCode).to.equal(0);
103105
expect(cleanOutput(output)).to.include("Hello, World!");
104-
}).timeout(60000);
106+
});
105107

106108
test("Exit code on failure", async () => {
107109
const task = taskProvider.createSwiftPluginTask(
@@ -118,7 +120,7 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
118120
mutable(task.execution).command = "/definitely/not/swift";
119121
const { exitCode, output } = await executeTaskAndWaitForResult(task);
120122
expect(exitCode, `${output}`).to.not.equal(0);
121-
}).timeout(10000);
123+
});
122124
});
123125

124126
suite("provideTasks", () => {
@@ -140,7 +142,7 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
140142
await vscode.tasks.executeTask(task);
141143
const exitCode = await exitPromise;
142144
expect(exitCode).to.equal(0);
143-
}).timeout(30000); // 30 seconds to run
145+
});
144146
});
145147

146148
suite("includes command plugin provided by tasks.json", async () => {
@@ -161,7 +163,7 @@ suite("SwiftPluginTaskProvider Test Suite", () => {
161163
await vscode.tasks.executeTask(task);
162164
const exitCode = await exitPromise;
163165
expect(exitCode).to.equal(0);
164-
}).timeout(30000); // 30 seconds to run
166+
});
165167
});
166168
});
167169
});

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ suite("PackageDependencyProvider Test Suite", function () {
4040
await executeTaskAndWaitForResult((await getBuildAllTask(folderContext)) as SwiftTask);
4141
await folderContext.reload();
4242
treeProvider = new PackageDependenciesProvider(workspaceContext);
43+
await workspaceContext.focusFolder(folderContext);
4344
},
4445
async teardown() {
4546
treeProvider.dispose();

0 commit comments

Comments
 (0)