Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/environment/test/node/environmentService.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';
8
import { parseExtensionHostDebugPort } from '../../common/environmentService.js';
9
import { OPTIONS, parseArgs } from '../../node/argv.js';
10
import { NativeEnvironmentService } from '../../node/environmentService.js';
11
import product from '../../../product/common/product.js';
12
13
suite('EnvironmentService', () => {
14
15
test('parseExtensionHostPort when built', () => {
16
const parse = (a: string[]) => parseExtensionHostDebugPort(parseArgs(a, OPTIONS), true);
17
18
assert.deepStrictEqual(parse([]), { port: null, break: false, env: undefined, debugId: undefined });
19
assert.deepStrictEqual(parse(['--debugPluginHost']), { port: null, break: false, env: undefined, debugId: undefined });
20
assert.deepStrictEqual(parse(['--debugPluginHost=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });
21
assert.deepStrictEqual(parse(['--debugBrkPluginHost']), { port: null, break: false, env: undefined, debugId: undefined });
22
assert.deepStrictEqual(parse(['--debugBrkPluginHost=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });
23
assert.deepStrictEqual(parse(['--debugPluginHost=1234', '--debugBrkPluginHost=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });
24
25
assert.deepStrictEqual(parse(['--inspect-extensions']), { port: null, break: false, env: undefined, debugId: undefined });
26
assert.deepStrictEqual(parse(['--inspect-extensions=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });
27
assert.deepStrictEqual(parse(['--inspect-brk-extensions']), { port: null, break: false, env: undefined, debugId: undefined });
28
assert.deepStrictEqual(parse(['--inspect-brk-extensions=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });
29
assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });
30
assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--extensionEnvironment={"COOL":"1"}']), { port: 5678, break: true, env: { COOL: '1' }, debugId: undefined });
31
});
32
33
test('parseExtensionHostPort when unbuilt', () => {
34
const parse = (a: string[]) => parseExtensionHostDebugPort(parseArgs(a, OPTIONS), false);
35
36
assert.deepStrictEqual(parse([]), { port: 5870, break: false, env: undefined, debugId: undefined });
37
assert.deepStrictEqual(parse(['--debugPluginHost']), { port: 5870, break: false, env: undefined, debugId: undefined });
38
assert.deepStrictEqual(parse(['--debugPluginHost=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });
39
assert.deepStrictEqual(parse(['--debugBrkPluginHost']), { port: 5870, break: false, env: undefined, debugId: undefined });
40
assert.deepStrictEqual(parse(['--debugBrkPluginHost=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });
41
assert.deepStrictEqual(parse(['--debugPluginHost=1234', '--debugBrkPluginHost=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });
42
43
assert.deepStrictEqual(parse(['--inspect-extensions']), { port: 5870, break: false, env: undefined, debugId: undefined });
44
assert.deepStrictEqual(parse(['--inspect-extensions=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });
45
assert.deepStrictEqual(parse(['--inspect-brk-extensions']), { port: 5870, break: false, env: undefined, debugId: undefined });
46
assert.deepStrictEqual(parse(['--inspect-brk-extensions=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });
47
assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });
48
});
49
50
// https://github.com/microsoft/vscode/issues/78440
51
test('careful with boolean file names', function () {
52
let actual = parseArgs(['-r', 'arg.txt'], OPTIONS);
53
assert(actual['reuse-window']);
54
assert.deepStrictEqual(actual._, ['arg.txt']);
55
56
actual = parseArgs(['-r', 'true.txt'], OPTIONS);
57
assert(actual['reuse-window']);
58
assert.deepStrictEqual(actual._, ['true.txt']);
59
});
60
61
test('userDataDir', () => {
62
const service1 = new NativeEnvironmentService(parseArgs(process.argv, OPTIONS), { _serviceBrand: undefined, ...product });
63
assert.ok(service1.userDataPath.length > 0);
64
65
const args = parseArgs(process.argv, OPTIONS);
66
args['user-data-dir'] = '/userDataDir/folder';
67
68
const service2 = new NativeEnvironmentService(args, { _serviceBrand: undefined, ...product });
69
assert.notStrictEqual(service1.userDataPath, service2.userDataPath);
70
});
71
72
ensureNoDisposablesAreLeakedInTestSuite();
73
});
74
75