1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import { isMacintosh, isWindows } from 'vs/base/common/platform';
function testErrorMessage(module: string): string {
return `Unable to load "${module}" dependency. It was probably not compiled for the right operating system architecture or had missing build tools.`;
}
suite('Native Modules (all platforms)', () => {
test('native-is-elevated', async () => {
const isElevated = await import('native-is-elevated');
assert.ok(typeof isElevated === 'function', testErrorMessage('native-is-elevated '));
});
test('native-keymap', async () => {
const keyMap = await import('native-keymap');
assert.ok(typeof keyMap.getCurrentKeyboardLayout === 'function', testErrorMessage('native-keymap'));
});
test('native-watchdog', async () => {
const watchDog = await import('native-watchdog');
assert.ok(typeof watchDog.start === 'function', testErrorMessage('native-watchdog'));
});
test('node-pty', async () => {
const nodePty = await import('node-pty');
assert.ok(typeof nodePty.spawn === 'function', testErrorMessage('node-pty'));
});
test('spdlog', async () => {
const spdlog = await import('spdlog');
assert.ok(typeof spdlog.createRotatingLoggerSync === 'function', testErrorMessage('spdlog'));
});
test('nsfw', async () => {
const nsfWatcher = await import('nsfw');
assert.ok(typeof nsfWatcher === 'function', testErrorMessage('nsfw'));
});
test('vscode-sqlite3', async () => {
const sqlite3 = await import('vscode-sqlite3');
assert.ok(typeof sqlite3.Database === 'function', testErrorMessage('vscode-sqlite3'));
});
});
(!isMacintosh ? suite.skip : suite)('Native Modules (macOS)', () => {
test('chokidar (fsevents)', async () => {
const chokidar = await import('chokidar');
const watcher = chokidar.watch(__dirname);
assert.ok(watcher.options.useFsEvents, testErrorMessage('chokidar (fsevents)'));
return watcher.close();
});
});
(!isWindows ? suite.skip : suite)('Native Modules (Windows)', () => {
test('windows-mutex', async () => {
const mutex = await import('windows-mutex');
assert.ok(mutex && typeof mutex.isActive === 'function', testErrorMessage('windows-mutex'));
assert.ok(typeof mutex.isActive === 'function', testErrorMessage('windows-mutex'));
});
test('windows-foreground-love', async () => {
const foregroundLove = await import('windows-foreground-love');
assert.ok(typeof foregroundLove.allowSetForegroundWindow === 'function', testErrorMessage('windows-foreground-love'));
});
test('windows-process-tree', async () => {
const processTree = await import('windows-process-tree');
assert.ok(typeof processTree.getProcessTree === 'function', testErrorMessage('windows-process-tree'));
});
test('vscode-windows-registry', async () => {
const windowsRegistry = await import('vscode-windows-registry');
assert.ok(typeof windowsRegistry.GetStringRegKey === 'function', testErrorMessage('vscode-windows-registry'));
});
test('vscode-windows-ca-certs', async () => {
// @ts-ignore Windows only
const windowsCerts = await import('vscode-windows-ca-certs');
const store = new windowsCerts.Crypt32();
assert.ok(windowsCerts, testErrorMessage('vscode-windows-ca-certs'));
let certCount = 0;
try {
while (store.next()) {
certCount++;
}
} finally {
store.done();
}
assert(certCount > 0);
});
});
|