Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eng: adopt ensureNoDisposablesAreLeakedInTestSuite #200173

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
19 changes: 0 additions & 19 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@
"src/vs/base/test/common/network.test.ts",
"src/vs/base/test/common/observable.test.ts",
"src/vs/base/test/common/path.test.ts",
"src/vs/base/test/common/prefixTree.test.ts",
"src/vs/base/test/common/resources.test.ts",
"src/vs/base/test/common/resourceTree.test.ts",
"src/vs/base/test/common/scrollable.test.ts",
Expand All @@ -194,7 +193,6 @@
"src/vs/base/test/node/crypto.test.ts",
"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/snapshot.test.ts",
"src/vs/code/test/electron-sandbox/issue/testReporterModel.test.ts",
"src/vs/editor/contrib/codeAction/test/browser/codeActionKeybindingResolver.test.ts",
Expand Down Expand Up @@ -247,29 +245,16 @@
"src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts",
"src/vs/workbench/api/test/browser/extHostTextEditor.test.ts",
"src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts",
"src/vs/workbench/api/test/browser/extHostTypes.test.ts",
"src/vs/workbench/api/test/browser/extHostWorkspace.test.ts",
"src/vs/workbench/api/test/browser/mainThreadConfiguration.test.ts",
"src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts",
"src/vs/workbench/api/test/common/extensionHostMain.test.ts",
"src/vs/workbench/api/test/common/extHostExtensionActivator.test.ts",
"src/vs/workbench/api/test/node/extHostTunnelService.test.ts",
"src/vs/workbench/contrib/bulkEdit/test/browser/bulkCellEdits.test.ts",
"src/vs/workbench/contrib/chat/test/common/chatWordCounter.test.ts",
"src/vs/workbench/contrib/debug/test/browser/baseDebugView.test.ts",
"src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts",
"src/vs/workbench/contrib/debug/test/browser/callStack.test.ts",
"src/vs/workbench/contrib/debug/test/browser/debugHover.test.ts",
"src/vs/workbench/contrib/debug/test/browser/repl.test.ts",
"src/vs/workbench/contrib/debug/test/common/debugModel.test.ts",
"src/vs/workbench/contrib/debug/test/node/debugger.test.ts",
"src/vs/workbench/contrib/debug/test/node/streamDebugAdapter.test.ts",
"src/vs/workbench/contrib/debug/test/node/terminals.test.ts",
"src/vs/workbench/contrib/editSessions/test/browser/editSessions.test.ts",
"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/explorerView.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",
Expand All @@ -279,18 +264,15 @@
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionService.test.ts",
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionStateService.test.ts",
"src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts",
"src/vs/workbench/contrib/search/test/common/cacheState.test.ts",
"src/vs/workbench/contrib/search/test/common/extractRange.test.ts",
"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/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/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/dialogs/test/electron-sandbox/fileDialogService.test.ts",
"src/vs/workbench/services/extensions/test/common/extensionDescriptionRegistry.test.ts",
"src/vs/workbench/services/keybinding/test/browser/keybindingIO.test.ts",
"src/vs/workbench/services/keybinding/test/node/fallbackKeyboardMapper.test.ts",
Expand All @@ -302,7 +284,6 @@
"src/vs/workbench/services/search/test/common/ignoreFile.test.ts",
"src/vs/workbench/services/search/test/common/queryBuilder.test.ts",
"src/vs/workbench/services/search/test/common/replace.test.ts",
"src/vs/workbench/services/search/test/common/search.test.ts",
"src/vs/workbench/services/search/test/common/searchHelpers.test.ts",
"src/vs/workbench/services/search/test/node/ripgrepTextSearchEngineUtils.test.ts",
"src/vs/workbench/services/telemetry/test/browser/commonProperties.test.ts",
Expand Down
3 changes: 3 additions & 0 deletions src/vs/base/test/common/prefixTree.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@

import { WellDefinedPrefixTree } from 'vs/base/common/prefixTree';
import * as assert from 'assert';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';

suite('WellDefinedPrefixTree', () => {
let tree: WellDefinedPrefixTree<number>;

ensureNoDisposablesAreLeakedInTestSuite();

setup(() => {
tree = new WellDefinedPrefixTree<number>();
});
Expand Down
3 changes: 3 additions & 0 deletions src/vs/base/test/node/nodeStreams.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@
import { Writable } from 'stream';
import * as assert from 'assert';
import { StreamSplitter } from 'vs/base/node/nodeStreams';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';

suite('StreamSplitter', () => {
ensureNoDisposablesAreLeakedInTestSuite();

test('should split a stream on a single character splitter', (done) => {
const chunks: string[] = [];
const splitter = new StreamSplitter('\n');
Expand Down
3 changes: 3 additions & 0 deletions src/vs/workbench/api/test/browser/extHostTypes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { assertType } from 'vs/base/common/types';
import { Mimes } from 'vs/base/common/mime';
import { MarshalledId } from 'vs/base/common/marshallingIds';
import { CancellationError } from 'vs/base/common/errors';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';

function assertToJSON(a: any, expected: any) {
const raw = JSON.stringify(a);
Expand All @@ -20,6 +21,8 @@ function assertToJSON(a: any, expected: any) {

suite('ExtHostTypes', function () {

ensureNoDisposablesAreLeakedInTestSuite();

test('URI, toJSON', function () {

const uri = URI.parse('file:///path/test.file');
Expand Down
3 changes: 3 additions & 0 deletions src/vs/workbench/api/test/common/extensionHostMain.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { isFirefox, isSafari } from 'vs/base/common/platform';
import { TernarySearchTree } from 'vs/base/common/ternarySearchTree';
import { URI } from 'vs/base/common/uri';
import { mock } from 'vs/base/test/common/mock';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { ExtensionIdentifier, IExtensionDescription, IRelaxedExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService';
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
Expand Down Expand Up @@ -69,6 +70,8 @@ suite('ExtensionHostMain#ErrorHandler - Wrapping prepareStackTrace can cause slo
let existingErrorHandler: (e: any) => void;
let findSubstrCount = 0;

ensureNoDisposablesAreLeakedInTestSuite();

suiteSetup(async function () {
existingErrorHandler = errorHandler.getUnexpectedErrorHandler();
await insta.invokeFunction(ErrorHandler.installFullHandler);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import * as assert from 'assert';
import { CancellationTokenSource } from 'vs/base/common/cancellation';
import { URI } from 'vs/base/common/uri';
import { mockObject } from 'vs/base/test/common/mock';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { IProgress } from 'vs/platform/progress/common/progress';
import { UndoRedoGroup, UndoRedoSource } from 'vs/platform/undoRedo/common/undoRedo';
import { BulkCellEdits, ResourceNotebookCellEdit } from 'vs/workbench/contrib/bulkEdit/browser/bulkCellEdits';
Expand All @@ -16,6 +17,8 @@ import { INotebookEditorModelResolverService } from 'vs/workbench/contrib/notebo
import { TestEditorService } from 'vs/workbench/test/browser/workbenchTestServices';

suite('BulkCellEdits', function () {
ensureNoDisposablesAreLeakedInTestSuite();

async function runTest(inputUri: URI, resolveUri: URI) {
const progress: IProgress<void> = { report: _ => { } };
const editorService = new TestEditorService();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@
*--------------------------------------------------------------------------------------------*/

import * as assert from 'assert';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { getNWords } from 'vs/workbench/contrib/chat/common/chatWordCounter';

suite('ChatWordCounter', () => {
ensureNoDisposablesAreLeakedInTestSuite();

function doTest(str: string, nWords: number, resultStr: string) {
const result = getNWords(str, nWords);
assert.strictEqual(result.value, resultStr);
Expand Down
4 changes: 3 additions & 1 deletion src/vs/workbench/contrib/debug/browser/debugSession.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ export class DebugSession implements IDebugSession, IDisposable {
private threadIds: number[] = [];
private cancellationMap = new Map<number, CancellationTokenSource[]>();
private readonly rawListeners = new DisposableStore();
private readonly globalDisposables = new DisposableStore();
private fetchThreadsScheduler: RunOnceScheduler | undefined;
private passFocusScheduler: RunOnceScheduler;
private lastContinuedThreadId: number | undefined;
Expand Down Expand Up @@ -105,7 +106,7 @@ export class DebugSession implements IDebugSession, IDisposable {
this.repl = (this.parentSession as DebugSession).repl;
}

const toDispose = new DisposableStore();
const toDispose = this.globalDisposables;
const replListener = toDispose.add(new MutableDisposable());
replListener.value = this.repl.onDidChangeElements(() => this._onDidChangeREPLElements.fire());
if (lifecycleService) {
Expand Down Expand Up @@ -1310,6 +1311,7 @@ export class DebugSession implements IDebugSession, IDisposable {
public dispose() {
this.cancelAllRequests();
this.rawListeners.dispose();
this.globalDisposables.dispose();
}

//---- sources
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import * as assert from 'assert';
import * as dom from 'vs/base/browser/dom';
import { HighlightedLabel } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { isWindows } from 'vs/base/common/platform';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
import { renderExpressionValue, renderVariable, renderViewTree } from 'vs/workbench/contrib/debug/browser/baseDebugView';
import { LinkDetector } from 'vs/workbench/contrib/debug/browser/linkDetector';
Expand All @@ -21,22 +21,17 @@ import { workbenchInstantiationService } from 'vs/workbench/test/browser/workben
const $ = dom.$;

suite('Debug - Base Debug View', () => {
let disposables: DisposableStore;
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
let linkDetector: LinkDetector;

/**
* Instantiate services for use by the functions being tested.
*/
setup(() => {
disposables = new DisposableStore();
const instantiationService: TestInstantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
linkDetector = instantiationService.createInstance(LinkDetector);
});

teardown(() => {
disposables.dispose();
});

test('render view tree', () => {
const container = $('.container');
const treeContainer = renderViewTree(container);
Expand Down
10 changes: 3 additions & 7 deletions src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@

import * as assert from 'assert';
import { MarkdownString } from 'vs/base/common/htmlContent';
import { DisposableStore, dispose } from 'vs/base/common/lifecycle';
import { dispose } from 'vs/base/common/lifecycle';
import { URI as uri } from 'vs/base/common/uri';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { Range } from 'vs/editor/common/core/range';
import { ILanguageService } from 'vs/editor/common/languages/language';
import { OverviewRulerLane } from 'vs/editor/common/model';
Expand Down Expand Up @@ -47,17 +48,12 @@ function addBreakpointsAndCheckEvents(model: DebugModel, uri: uri, data: IBreakp

suite('Debug - Breakpoints', () => {
let model: DebugModel;
let disposables: DisposableStore;
const disposables = ensureNoDisposablesAreLeakedInTestSuite();

setup(() => {
disposables = new DisposableStore();
model = createMockDebugModel(disposables);
});

teardown(() => {
disposables.dispose();
});

// Breakpoints

test('simple', () => {
Expand Down
6 changes: 2 additions & 4 deletions src/vs/workbench/contrib/debug/test/browser/callStack.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

import * as assert from 'assert';
import * as sinon from 'sinon';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { ThemeIcon } from 'vs/base/common/themables';
import { Constants } from 'vs/base/common/uint';
import { generateUuid } from 'vs/base/common/uuid';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { Range } from 'vs/editor/common/core/range';
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
Expand Down Expand Up @@ -71,16 +71,14 @@ function createTwoStackFrames(session: DebugSession): { firstStackFrame: StackFr
suite('Debug - CallStack', () => {
let model: DebugModel;
let mockRawSession: MockRawSession;
let disposables: DisposableStore;
const disposables = ensureNoDisposablesAreLeakedInTestSuite();

setup(() => {
disposables = new DisposableStore();
model = createMockDebugModel(disposables);
mockRawSession = new MockRawSession();
});

teardown(() => {
disposables.dispose();
sinon.restore();
});

Expand Down
11 changes: 2 additions & 9 deletions src/vs/workbench/contrib/debug/test/browser/debugHover.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/

import * as assert from 'assert';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { NullLogService } from 'vs/platform/log/common/log';
import { findExpressionInStackFrame } from 'vs/workbench/contrib/debug/browser/debugHover';
import type { IExpression, IScope } from 'vs/workbench/contrib/debug/common/debug';
Expand All @@ -14,14 +14,7 @@ import { createTestSession } from 'vs/workbench/contrib/debug/test/browser/callS
import { createMockDebugModel, mockUriIdentityService } from 'vs/workbench/contrib/debug/test/browser/mockDebugModel';

suite('Debug - Hover', () => {
let disposables: DisposableStore;
setup(() => {
disposables = new DisposableStore();
});

teardown(() => {
disposables.dispose();
});
const disposables = ensureNoDisposablesAreLeakedInTestSuite();

test('find expression in stack frame', async () => {
const model = createMockDebugModel(disposables);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/

import * as assert from 'assert';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { isWindows } from 'vs/base/common/platform';
import { URI } from 'vs/base/common/uri';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
Expand All @@ -16,25 +15,18 @@ import { workbenchInstantiationService } from 'vs/workbench/test/browser/workben

suite('Debug - Link Detector', () => {

let disposables: DisposableStore;
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
let linkDetector: LinkDetector;

/**
* Instantiate a {@link LinkDetector} for use by the functions being tested.
*/
setup(() => {
disposables = new DisposableStore();
const instantiationService: TestInstantiationService = <TestInstantiationService>workbenchInstantiationService(undefined, disposables);
instantiationService.stub(ITunnelService, { canTunnel: () => false });
linkDetector = instantiationService.createInstance(LinkDetector);
});

teardown(() => {
disposables.dispose();
});

ensureNoDisposablesAreLeakedInTestSuite();

/**
* Assert that a given Element is an anchor element.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServic
const fileService = new TestFileService();
export const mockUriIdentityService = new UriIdentityService(fileService);

export function createMockDebugModel(disposable: DisposableStore): DebugModel {
export function createMockDebugModel(disposable: Pick<DisposableStore, 'add'>): DebugModel {
const storage = disposable.add(new TestStorageService());
const debugStorage = disposable.add(new MockDebugStorage(storage));
return disposable.add(new DebugModel(debugStorage, <any>{ isDirty: (e: any) => false }, mockUriIdentityService, new NullLogService()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/

import * as assert from 'assert';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { mock, mockObject } from 'vs/base/test/common/mock';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { IExtensionHostDebugService } from 'vs/platform/debug/common/extensionHostDebug';
Expand All @@ -16,16 +15,7 @@ import { IDebugger } from 'vs/workbench/contrib/debug/common/debug';
import { MockDebugAdapter } from 'vs/workbench/contrib/debug/test/common/mockDebug';

suite('RawDebugSession', () => {
let disposables: DisposableStore;
setup(() => {
disposables = new DisposableStore();
});

teardown(() => {
disposables.dispose();
});

ensureNoDisposablesAreLeakedInTestSuite();
const disposables = ensureNoDisposablesAreLeakedInTestSuite();

function createTestObjects() {
const debugAdapter = new MockDebugAdapter();
Expand Down