diff --git a/.eslintrc.json b/.eslintrc.json index 73fa13c05ff9a..dea6c45b0a9db 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -149,18 +149,13 @@ "src/vs/base/parts/sandbox/test/electron-sandbox/globals.test.ts", "src/vs/base/test/browser/browser.test.ts", "src/vs/base/test/browser/comparers.test.ts", - "src/vs/base/test/browser/dom.test.ts", - "src/vs/base/test/browser/formattedTextRenderer.test.ts", "src/vs/base/test/browser/hash.test.ts", - "src/vs/base/test/browser/iconLabels.test.ts", "src/vs/base/test/browser/indexedDB.test.ts", - "src/vs/base/test/browser/ui/contextview/contextview.test.ts", "src/vs/base/test/browser/ui/menu/menubar.test.ts", "src/vs/base/test/browser/ui/scrollbar/scrollableElement.test.ts", "src/vs/base/test/browser/ui/scrollbar/scrollbarState.test.ts", "src/vs/base/test/common/arrays.test.ts", "src/vs/base/test/common/arraysFind.test.ts", - "src/vs/base/test/common/assert.test.ts", "src/vs/base/test/common/cache.test.ts", "src/vs/base/test/common/charCode.test.ts", "src/vs/base/test/common/collections.test.ts", @@ -178,13 +173,11 @@ "src/vs/base/test/common/jsonFormatter.test.ts", "src/vs/base/test/common/keybindings.test.ts", "src/vs/base/test/common/keyCodes.test.ts", - "src/vs/base/test/common/lazy.test.ts", "src/vs/base/test/common/linkedList.test.ts", "src/vs/base/test/common/linkedText.test.ts", "src/vs/base/test/common/map.test.ts", "src/vs/base/test/common/markdownString.test.ts", "src/vs/base/test/common/marshalling.test.ts", - "src/vs/base/test/common/mime.test.ts", "src/vs/base/test/common/naturalLanguage/korean.test.ts", "src/vs/base/test/common/network.test.ts", "src/vs/base/test/common/normalization.test.ts", @@ -196,7 +189,6 @@ "src/vs/base/test/common/resourceTree.test.ts", "src/vs/base/test/common/scrollable.test.ts", "src/vs/base/test/common/skipList.test.ts", - "src/vs/base/test/common/strings.test.ts", "src/vs/base/test/common/stripComments.test.ts", "src/vs/base/test/common/ternarySearchtree.test.ts", "src/vs/base/test/common/types.test.ts", @@ -206,9 +198,7 @@ "src/vs/base/test/node/css.build.test.ts", "src/vs/base/test/node/id.test.ts", "src/vs/base/test/node/nodeStreams.test.ts", - "src/vs/base/test/node/port.test.ts", "src/vs/base/test/node/snapshot.test.ts", - "src/vs/base/test/node/unc.test.ts", "src/vs/code/test/electron-sandbox/issue/testReporterModel.test.ts", "src/vs/editor/contrib/codeAction/test/browser/codeActionKeybindingResolver.test.ts", "src/vs/editor/contrib/codeAction/test/browser/codeActionModel.test.ts", @@ -234,10 +224,6 @@ "src/vs/platform/contextkey/test/common/contextkey.test.ts", "src/vs/platform/contextkey/test/common/parser.test.ts", "src/vs/platform/contextkey/test/common/scanner.test.ts", - "src/vs/platform/dialogs/test/common/dialog.test.ts", - "src/vs/platform/environment/test/node/argv.test.ts", - "src/vs/platform/environment/test/node/userDataPath.test.ts", - "src/vs/platform/extensionManagement/test/common/configRemotes.test.ts", "src/vs/platform/extensionManagement/test/common/extensionManagement.test.ts", "src/vs/platform/extensions/test/common/extensionValidator.test.ts", "src/vs/platform/externalTerminal/electron-main/externalTerminalService.test.ts", @@ -252,24 +238,19 @@ "src/vs/platform/registry/test/common/platform.test.ts", "src/vs/platform/remote/test/common/remoteHosts.test.ts", "src/vs/platform/telemetry/test/browser/1dsAppender.test.ts", - "src/vs/platform/telemetry/test/browser/telemetryService.test.ts", "src/vs/platform/telemetry/test/common/telemetryLogAppender.test.ts", - "src/vs/platform/undoRedo/test/common/undoRedoService.test.ts", "src/vs/platform/userDataSync/test/common/extensionsMerge.test.ts", "src/vs/platform/userDataSync/test/common/globalStateMerge.test.ts", "src/vs/platform/userDataSync/test/common/settingsMerge.test.ts", "src/vs/platform/userDataSync/test/common/snippetsMerge.test.ts", "src/vs/platform/userDataSync/test/common/userDataProfilesManifestMerge.test.ts", "src/vs/platform/workspace/test/common/workspace.test.ts", - "src/vs/platform/workspaces/test/common/workspaces.test.ts", "src/vs/platform/workspaces/test/electron-main/workspaces.test.ts", "src/vs/server/test/node/serverConnectionToken.test.ts", - "src/vs/workbench/api/test/browser/extHost.api.impl.test.ts", "src/vs/workbench/api/test/browser/extHostApiCommands.test.ts", "src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts", "src/vs/workbench/api/test/browser/extHostCommands.test.ts", "src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts", - "src/vs/workbench/api/test/browser/extHostMessagerService.test.ts", "src/vs/workbench/api/test/browser/extHostTelemetry.test.ts", "src/vs/workbench/api/test/browser/extHostTextEditor.test.ts", "src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts", @@ -295,9 +276,7 @@ "src/vs/workbench/contrib/extensions/test/common/extensionQuery.test.ts", "src/vs/workbench/contrib/extensions/test/electron-sandbox/extension.test.ts", "src/vs/workbench/contrib/files/test/browser/explorerFileNestingTrie.test.ts", - "src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts", "src/vs/workbench/contrib/files/test/browser/explorerView.test.ts", - "src/vs/workbench/contrib/files/test/browser/fileActions.test.ts", "src/vs/workbench/contrib/notebook/test/browser/cellDnd.test.ts", "src/vs/workbench/contrib/notebook/test/browser/contrib/contributedStatusBarItemController.test.ts", "src/vs/workbench/contrib/notebook/test/browser/contrib/executionStatusBarItem.test.ts", @@ -312,15 +291,12 @@ "src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts", "src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts", "src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts", - "src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts", "src/vs/workbench/contrib/tasks/test/common/problemMatcher.test.ts", "src/vs/workbench/contrib/tasks/test/common/taskConfiguration.test.ts", "src/vs/workbench/contrib/terminal/test/browser/terminalActions.test.ts", - "src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts", "src/vs/workbench/contrib/welcomeGettingStarted/test/browser/gettingStartedMarkdownRenderer.test.ts", "src/vs/workbench/services/commands/test/common/commandService.test.ts", "src/vs/workbench/services/configuration/test/common/configurationModels.test.ts", - "src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts", "src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts", "src/vs/workbench/services/editor/test/browser/editorResolverService.test.ts", "src/vs/workbench/services/extensions/test/common/extensionDescriptionRegistry.test.ts", @@ -338,16 +314,12 @@ "src/vs/workbench/services/search/test/common/searchHelpers.test.ts", "src/vs/workbench/services/search/test/node/ripgrepFileSearch.test.ts", "src/vs/workbench/services/search/test/node/ripgrepTextSearchEngineUtils.test.ts", - "src/vs/workbench/services/search/test/node/textSearchManager.test.ts", "src/vs/workbench/services/telemetry/test/browser/commonProperties.test.ts", - "src/vs/workbench/services/textfile/test/common/textFileService.io.test.ts", - "src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts", "src/vs/workbench/services/themes/test/node/tokenStyleResolving.test.ts", "src/vs/workbench/services/userActivity/test/browser/domActivityTracker.test.ts", "src/vs/workbench/services/workspaces/test/browser/workspaces.test.ts", "src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts", - "src/vs/workbench/test/browser/quickAccess.test.ts", - "src/vs/workbench/test/browser/webview.test.ts" + "src/vs/workbench/test/browser/quickAccess.test.ts" ] } ] diff --git a/.github/classifier.json b/.github/classifier.json index 21b8d51cd6ccc..992354698ce04 100644 --- a/.github/classifier.json +++ b/.github/classifier.json @@ -253,6 +253,7 @@ "tokenization": {"assign": ["alexdima"]}, "touch/pointer": {"assign": []}, "trackpad/scroll": {"assign": []}, + "tree-sticky-scroll": {"assign": ["benibenj"]}, "tree-views": {"assign": ["alexr00"]}, "tree-widget": {"assign": ["joaomoreno"]}, "typehierarchy": {"assign": ["jrieken"]}, @@ -272,6 +273,7 @@ "webview": {"assign": ["mjbvz"]}, "webview-views": {"assign": ["mjbvz"]}, "workbench-actions": {"assign": ["bpasero"]}, + "workbench-auxwindow": {"assign": ["bpasero"]}, "workbench-banner": {"assign": ["lszomoru", "sbatten"]}, "workbench-cli": {"assign": ["bpasero"]}, "workbench-diagnostics": {"assign": ["Tyriar"]}, diff --git a/src/vs/base/test/browser/dom.test.ts b/src/vs/base/test/browser/dom.test.ts index 8e22994c7daa1..601f75d352323 100644 --- a/src/vs/base/test/browser/dom.test.ts +++ b/src/vs/base/test/browser/dom.test.ts @@ -8,6 +8,7 @@ import { $, asCssValueWithDefault, h, multibyteAwareBtoa, trackAttributes, copyA import { ensureCodeWindow, isAuxiliaryWindow, mainWindow } from 'vs/base/browser/window'; import { DeferredPromise, timeout } from 'vs/base/common/async'; import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('dom', () => { test('hasClass', () => { @@ -404,4 +405,6 @@ suite('dom', () => { assert.strictEqual(count, 0); }); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/browser/formattedTextRenderer.test.ts b/src/vs/base/test/browser/formattedTextRenderer.test.ts index f5bcc1b2d5d9f..12acef6e7b808 100644 --- a/src/vs/base/test/browser/formattedTextRenderer.test.ts +++ b/src/vs/base/test/browser/formattedTextRenderer.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import { renderFormattedText, renderText } from 'vs/base/browser/formattedTextRenderer'; import { DisposableStore } from 'vs/base/common/lifecycle'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('FormattedTextRenderer', () => { const store = new DisposableStore(); @@ -127,4 +128,6 @@ suite('FormattedTextRenderer', () => { assert.strictEqual(result.children.length, 0); assert.strictEqual(result.innerHTML, '**bold**'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/browser/iconLabels.test.ts b/src/vs/base/test/browser/iconLabels.test.ts index 292ec6b0bf889..c076d4ec38e41 100644 --- a/src/vs/base/test/browser/iconLabels.test.ts +++ b/src/vs/base/test/browser/iconLabels.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { renderLabelWithIcons } from 'vs/base/browser/ui/iconLabel/iconLabels'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('renderLabelWithIcons', () => { @@ -49,4 +50,6 @@ suite('renderLabelWithIcons', () => { .map(elem => elem instanceof HTMLElement ? elem.outerHTML : elem) .reduce((a, b) => a + b, ''); }; + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/browser/ui/contextview/contextview.test.ts b/src/vs/base/test/browser/ui/contextview/contextview.test.ts index 4b49df1855518..c302c35893750 100644 --- a/src/vs/base/test/browser/ui/contextview/contextview.test.ts +++ b/src/vs/base/test/browser/ui/contextview/contextview.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { layout, LayoutAnchorPosition } from 'vs/base/browser/ui/contextview/contextview'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Contextview', function () { @@ -25,4 +26,6 @@ suite('Contextview', function () { assert.strictEqual(layout(200, 20, { offset: 50, size: 50, position: LayoutAnchorPosition.After }), 30); assert.strictEqual(layout(200, 20, { offset: 150, size: 50, position: LayoutAnchorPosition.After }), 130); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/common/assert.test.ts b/src/vs/base/test/common/assert.test.ts index a925cd0437aec..ed4e60e822266 100644 --- a/src/vs/base/test/common/assert.test.ts +++ b/src/vs/base/test/common/assert.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { ok } from 'vs/base/common/assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Assert', () => { test('ok', () => { @@ -31,4 +32,6 @@ suite('Assert', () => { ok({}); ok(5); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/common/iconLabels.test.ts b/src/vs/base/test/common/iconLabels.test.ts index 33aee64d8609f..b8352069e1c62 100644 --- a/src/vs/base/test/common/iconLabels.test.ts +++ b/src/vs/base/test/common/iconLabels.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import { IMatch } from 'vs/base/common/filters'; import { escapeIcons, getCodiconAriaLabel, IParsedLabelWithIcons, markdownEscapeEscapedIcons, matchesFuzzyIconAware, parseLabelWithIcons, stripIcons } from 'vs/base/common/iconLabels'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; interface IIconFilter { // Returns null if word doesn't match. @@ -110,4 +111,6 @@ suite('Icon Labels', () => { assert.strictEqual(markdownEscapeEscapedIcons('$(Hello) World'), '$(Hello) World'); assert.strictEqual(markdownEscapeEscapedIcons('\\$(Hello) World'), '\\\\$(Hello) World'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/common/lazy.test.ts b/src/vs/base/test/common/lazy.test.ts index e3a8d66459cbb..361e3305d4322 100644 --- a/src/vs/base/test/common/lazy.test.ts +++ b/src/vs/base/test/common/lazy.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { Lazy } from 'vs/base/common/lazy'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Lazy', () => { @@ -27,4 +28,6 @@ suite('Lazy', () => { assert.strictEqual(value.hasValue, true); assert.throws(() => value.value, /\b1\b/); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/common/mime.test.ts b/src/vs/base/test/common/mime.test.ts index f403db8a96067..fce56646ff8af 100644 --- a/src/vs/base/test/common/mime.test.ts +++ b/src/vs/base/test/common/mime.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { normalizeMimeType } from 'vs/base/common/mime'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Mime', () => { @@ -16,4 +17,6 @@ suite('Mime', () => { assert.strictEqual(normalizeMimeType('Text/plain;UPPER'), 'text/plain;UPPER'); assert.strictEqual(normalizeMimeType('Text/plain;lower'), 'text/plain;lower'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/common/strings.test.ts b/src/vs/base/test/common/strings.test.ts index ad8655b153c27..e986069c888c4 100644 --- a/src/vs/base/test/common/strings.test.ts +++ b/src/vs/base/test/common/strings.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import * as strings from 'vs/base/common/strings'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('Strings', () => { test('equalsIgnoreCase', () => { @@ -510,4 +511,6 @@ suite('Strings', () => { assert.strictEqual(strings.removeAnsiEscapeCodes(`hello${sequence}world`), 'helloworld', `expect to remove ${JSON.stringify(sequence)}`); } }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/node/port.test.ts b/src/vs/base/test/node/port.test.ts index 120044651b5de..9230dc846844b 100644 --- a/src/vs/base/test/node/port.test.ts +++ b/src/vs/base/test/node/port.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import * as net from 'net'; import * as ports from 'vs/base/node/ports'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { flakySuite } from 'vs/base/test/node/testUtils'; flakySuite('Ports', () => { @@ -29,4 +30,6 @@ flakySuite('Ports', () => { }); }, err => done(err)); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/base/test/node/unc.test.ts b/src/vs/base/test/node/unc.test.ts index 82eaf25860dd7..acbc3203536f1 100644 --- a/src/vs/base/test/node/unc.test.ts +++ b/src/vs/base/test/node/unc.test.ts @@ -5,6 +5,7 @@ import { strictEqual } from 'assert'; import { getUNCHost } from 'vs/base/node/unc'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('UNC', () => { @@ -43,4 +44,6 @@ suite('UNC', () => { strictEqual(getUNCHost('\\\\.\\UNC\\localhost\\a'), 'localhost'); strictEqual(getUNCHost('\\\\?\\UNC\\localhost\\a'), 'localhost'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/dialogs/test/common/dialog.test.ts b/src/vs/platform/dialogs/test/common/dialog.test.ts index 4455350a45d7a..1c5db7e80b87f 100644 --- a/src/vs/platform/dialogs/test/common/dialog.test.ts +++ b/src/vs/platform/dialogs/test/common/dialog.test.ts @@ -5,6 +5,7 @@ import { deepEqual } from 'assert'; import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { IMassagedMessageBoxOptions, massageMessageBoxOptions } from 'vs/platform/dialogs/common/dialogs'; import product from 'vs/platform/product/common/product'; import { IProductService } from 'vs/platform/product/common/productService'; @@ -139,4 +140,6 @@ suite('Dialog', () => { assertOptions(fourButtonNegativeCancel, ['4', '3', '2', '1'], 3, -1, [3, 2, 1, 0]); } }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/environment/test/node/argv.test.ts b/src/vs/platform/environment/test/node/argv.test.ts index e3f75f2cde392..a188b52b71130 100644 --- a/src/vs/platform/environment/test/node/argv.test.ts +++ b/src/vs/platform/environment/test/node/argv.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { formatOptions, Option, OptionDescriptions, Subcommand, parseArgs, ErrorReporter } from 'vs/platform/environment/node/argv'; import { addArg } from 'vs/platform/environment/node/argvHelper'; @@ -81,6 +82,8 @@ suite('formatOptions', () => { ' A test command' ]); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); suite('parseArgs', () => { @@ -156,4 +159,6 @@ suite('parseArgs', () => { [] ); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/environment/test/node/userDataPath.test.ts b/src/vs/platform/environment/test/node/userDataPath.test.ts index f92f180848144..644260cff8ff3 100644 --- a/src/vs/platform/environment/test/node/userDataPath.test.ts +++ b/src/vs/platform/environment/test/node/userDataPath.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { OPTIONS, parseArgs } from 'vs/platform/environment/node/argv'; import { getUserDataPath } from 'vs/platform/environment/node/userDataPath'; import product from 'vs/platform/product/common/product'; @@ -57,4 +58,6 @@ suite('User data path', () => { } } }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/extensionManagement/test/common/configRemotes.test.ts b/src/vs/platform/extensionManagement/test/common/configRemotes.test.ts index c5ed11d8e1bb1..e27bb5a488a10 100644 --- a/src/vs/platform/extensionManagement/test/common/configRemotes.test.ts +++ b/src/vs/platform/extensionManagement/test/common/configRemotes.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { getDomainsOfRemotes, getRemotes } from 'vs/platform/extensionManagement/common/configRemotes'; suite('Config Remotes', () => { @@ -127,4 +128,6 @@ suite('Config Remotes', () => { fetch = +refs/heads/*:refs/remotes/origin/* `; } + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/telemetry/test/browser/telemetryService.test.ts b/src/vs/platform/telemetry/test/browser/telemetryService.test.ts index f20eb00d58a03..8524e9a6996ec 100644 --- a/src/vs/platform/telemetry/test/browser/telemetryService.test.ts +++ b/src/vs/platform/telemetry/test/browser/telemetryService.test.ts @@ -8,6 +8,7 @@ import * as sinonTest from 'sinon-test'; import { mainWindow } from 'vs/base/browser/window'; import * as Errors from 'vs/base/common/errors'; import { Emitter } from 'vs/base/common/event'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import product from 'vs/platform/product/common/product'; import { IProductService } from 'vs/platform/product/common/productService'; @@ -741,4 +742,6 @@ suite('TelemetryService', () => { service.dispose(); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/undoRedo/test/common/undoRedoService.test.ts b/src/vs/platform/undoRedo/test/common/undoRedoService.test.ts index 88fa11a3a87f0..27d69e4e5aced 100644 --- a/src/vs/platform/undoRedo/test/common/undoRedoService.test.ts +++ b/src/vs/platform/undoRedo/test/common/undoRedoService.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import { URI } from 'vs/base/common/uri'; import { mock } from 'vs/base/test/common/mock'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { IDialogService, IPrompt } from 'vs/platform/dialogs/common/dialogs'; import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService'; import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService'; @@ -226,4 +227,5 @@ suite('UndoRedoService', () => { assert.strictEqual(UndoRedoGroup.None.nextOrder(), 0); }); + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/workspaces/test/common/workspaces.test.ts b/src/vs/platform/workspaces/test/common/workspaces.test.ts index 374ac0657f274..a1f2f262d0075 100644 --- a/src/vs/platform/workspaces/test/common/workspaces.test.ts +++ b/src/vs/platform/workspaces/test/common/workspaces.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { URI } from 'vs/base/common/uri'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { ISerializedSingleFolderWorkspaceIdentifier, ISerializedWorkspaceIdentifier, reviveIdentifier, hasWorkspaceFileExtension, isWorkspaceIdentifier, isSingleFolderWorkspaceIdentifier, IEmptyWorkspaceIdentifier, toWorkspaceIdentifier, isEmptyWorkspaceIdentifier } from 'vs/platform/workspace/common/workspace'; suite('Workspaces', () => { @@ -46,4 +47,6 @@ suite('Workspaces', () => { assert.ok(!isSingleFolderWorkspaceIdentifier(identifier)); assert.ok(isWorkspaceIdentifier(identifier)); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/platform/workspaces/test/electron-main/workspaces.test.ts b/src/vs/platform/workspaces/test/electron-main/workspaces.test.ts index 42427b5ea6d3b..56e4d92fdc983 100644 --- a/src/vs/platform/workspaces/test/electron-main/workspaces.test.ts +++ b/src/vs/platform/workspaces/test/electron-main/workspaces.test.ts @@ -10,6 +10,7 @@ import * as path from 'vs/base/common/path'; import { isWindows } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import * as pfs from 'vs/base/node/pfs'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { flakySuite, getRandomTestPath } from 'vs/base/test/node/testUtils'; import { getSingleFolderWorkspaceIdentifier, getWorkspaceIdentifier } from 'vs/platform/workspaces/node/workspaces'; @@ -64,4 +65,6 @@ flakySuite('Workspaces', () => { // single folder identifier (remote) assert.strictEqual(getSingleFolderWorkspaceIdentifier(URI.parse('vscode-remote:/hello/test'))?.id, '786de4f224d57691f218dc7f31ee2ee3'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/api/test/browser/extHost.api.impl.test.ts b/src/vs/workbench/api/test/browser/extHost.api.impl.test.ts index 2709cfda696db..35e7ff353606e 100644 --- a/src/vs/workbench/api/test/browser/extHost.api.impl.test.ts +++ b/src/vs/workbench/api/test/browser/extHost.api.impl.test.ts @@ -7,6 +7,7 @@ import * as assert from 'assert'; import { URI } from 'vs/base/common/uri'; import { originalFSPath } from 'vs/base/common/resources'; import { isWindows } from 'vs/base/common/platform'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('ExtHost API', function () { test('issue #51387: originalFSPath', function () { @@ -18,4 +19,6 @@ suite('ExtHost API', function () { assert.strictEqual(originalFSPath(URI.revive(JSON.parse(JSON.stringify(URI.file('c:\\test'))))).charAt(0), 'c'); } }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/api/test/browser/extHostMessagerService.test.ts b/src/vs/workbench/api/test/browser/extHostMessagerService.test.ts index c65fe797901ae..a5c89dd257f4a 100644 --- a/src/vs/workbench/api/test/browser/extHostMessagerService.test.ts +++ b/src/vs/workbench/api/test/browser/extHostMessagerService.test.ts @@ -12,6 +12,7 @@ import { mock } from 'vs/base/test/common/mock'; import { IDisposable, Disposable } from 'vs/base/common/lifecycle'; import { Event } from 'vs/base/common/event'; import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; const emptyCommandService: ICommandService = { _serviceBrand: undefined, @@ -132,4 +133,6 @@ suite('ExtHostMessageService', function () { assert.strictEqual(handle, 42); }); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts b/src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts index 9aa3627dbaa55..938fed848a2de 100644 --- a/src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts +++ b/src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts @@ -9,7 +9,7 @@ import { URI } from 'vs/base/common/uri'; import { join } from 'vs/base/common/path'; import { validateFileName } from 'vs/workbench/contrib/files/browser/fileActions'; import { ExplorerItem } from 'vs/workbench/contrib/files/common/explorerModel'; -import { toResource } from 'vs/base/test/common/utils'; +import { ensureNoDisposablesAreLeakedInTestSuite, toResource } from 'vs/base/test/common/utils'; import { TestFileService, TestPathService } from 'vs/workbench/test/browser/workbenchTestServices'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { NullFilesConfigurationService } from 'vs/workbench/test/common/workbenchTestServices'; @@ -277,4 +277,6 @@ suite('Files - View Model', function () { ExplorerItem.mergeLocalWithDisk(merge2, merge1); assert.ok(existingChild === merge1.getChild(existingChild!.name)); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts b/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts index bfa18a3b7a464..e1e8db24108be 100644 --- a/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts +++ b/src/vs/workbench/contrib/files/test/browser/fileActions.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { incrementFileName } from 'vs/workbench/contrib/files/browser/fileActions'; suite('Files - Increment file name simple', () => { @@ -134,6 +135,7 @@ suite('Files - Increment file name simple', () => { assert.strictEqual(result, 'test copy 2'); }); + ensureNoDisposablesAreLeakedInTestSuite(); }); suite('Files - Increment file name smart', () => { @@ -324,4 +326,5 @@ suite('Files - Increment file name smart', () => { assert.strictEqual(result, '2-test'); }); + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts b/src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts index ff3d16fd31274..7f58ae8e9e10e 100644 --- a/src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts +++ b/src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import * as crypto from 'crypto'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { getHashedRemotesFromConfig as baseGetHashedRemotesFromConfig } from 'vs/workbench/contrib/tags/common/workspaceTags'; function hash(value: string): string { @@ -58,4 +59,6 @@ suite('Telemetry - WorkspaceTags', () => { fetch = +refs/heads/*:refs/remotes/origin/* `; } + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts b/src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts index a051fa3ae71b9..ccd7af54f75d0 100644 --- a/src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts +++ b/src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Color } from 'vs/base/common/color'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { Registry } from 'vs/platform/registry/common/platform'; import { Extensions, IColorRegistry } from 'vs/platform/theme/common/colorRegistry'; @@ -17,4 +18,6 @@ suite('ColorRegistry', () => { console.log(`#colors:${JSON.stringify(colors, replacer)}\n`); }); } + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts b/src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts index a2d2aa43af088..7357382e7a3aa 100644 --- a/src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts +++ b/src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts @@ -12,6 +12,7 @@ import { IPath, normalize } from 'vs/base/common/path'; import * as platform from 'vs/base/common/platform'; import { isObject } from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { Selection } from 'vs/editor/common/core/selection'; import { EditorType } from 'vs/editor/common/editorCommon'; import { ICommandService } from 'vs/platform/commands/common/commands'; @@ -645,6 +646,8 @@ suite('Configuration Resolver Service', () => { const resolvedResult = await configurationResolverService!.resolveWithEnvironment({ ...env }, undefined, configuration); assert.deepStrictEqual(resolvedResult, 'echo VAL_1VAL_2'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/services/search/test/node/textSearchManager.test.ts b/src/vs/workbench/services/search/test/node/textSearchManager.test.ts index fec67730fa07e..f42039339513f 100644 --- a/src/vs/workbench/services/search/test/node/textSearchManager.test.ts +++ b/src/vs/workbench/services/search/test/node/textSearchManager.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import { URI } from 'vs/base/common/uri'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { Progress } from 'vs/platform/progress/common/progress'; import { ITextQuery, QueryType } from 'vs/workbench/services/search/common/search'; import { ProviderResult, TextSearchComplete, TextSearchOptions, TextSearchProvider, TextSearchQuery, TextSearchResult } from 'vs/workbench/services/search/common/searchExtTypes'; @@ -38,4 +39,6 @@ suite('NativeTextSearchManager', () => { assert.ok(correctEncoding); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts b/src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts index d51b85c57b616..917849e3b576f 100644 --- a/src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts +++ b/src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; import { ArrayEdit, MonotonousIndexTransformer, SingleArrayEdit } from 'vs/workbench/services/textMate/browser/arrayOperation'; suite('array operation', () => { @@ -74,4 +75,6 @@ suite('array operation', () => { ] ); }); + + ensureNoDisposablesAreLeakedInTestSuite(); }); diff --git a/src/vs/workbench/test/browser/webview.test.ts b/src/vs/workbench/test/browser/webview.test.ts index 484be00a657c9..3d0c3701f1410 100644 --- a/src/vs/workbench/test/browser/webview.test.ts +++ b/src/vs/workbench/test/browser/webview.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { parentOriginHash } from 'vs/base/browser/iframe'; +import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils'; suite('parentOriginHash', () => { @@ -22,4 +23,6 @@ suite('parentOriginHash', () => { const hash = await parentOriginHash('http://localhost:9887', '123456'); assert.strictEqual(hash, '1v1128i162q0nee9l89360sqan26u3pdnjrkke5ijd0sel8sbtqf'); }); + + ensureNoDisposablesAreLeakedInTestSuite(); });