Fixes #119529: Wait for eager extensions to activate before launching extension tests

This commit is contained in:
Alex Dima
2021-03-24 14:37:40 +01:00
parent 5fbba30c04
commit 74cf3fb202

View File

@@ -95,6 +95,8 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
private readonly _almostReadyToRunExtensions: Barrier;
private readonly _readyToStartExtensionHost: Barrier;
private readonly _readyToRunExtensions: Barrier;
private readonly _eagerExtensionsActivated: Barrier;
protected readonly _registry: ExtensionDescriptionRegistry;
private readonly _storage: ExtHostStorage;
private readonly _secretState: ExtHostSecretState;
@@ -140,6 +142,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
this._almostReadyToRunExtensions = new Barrier();
this._readyToStartExtensionHost = new Barrier();
this._readyToRunExtensions = new Barrier();
this._eagerExtensionsActivated = new Barrier();
this._registry = new ExtensionDescriptionRegistry(this._initData.extensions);
this._storage = new ExtHostStorage(this._extHostContext);
this._secretState = new ExtHostSecretState(this._extHostContext);
@@ -547,7 +550,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
}
public async $extensionTestsExecute(): Promise<number> {
await this._readyToRunExtensions.wait();
await this._eagerExtensionsActivated.wait();
try {
return this._doHandleExtensionTests();
} catch (error) {
@@ -613,6 +616,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme
.then(() => this._readyToRunExtensions.open())
.then(() => this._handleEagerExtensions())
.then(() => {
this._eagerExtensionsActivated.open();
this._logService.info(`eager extensions activated`);
});
}