More test fixes
This commit is contained in:
Родитель
376c34fdd7
Коммит
04e4324285
|
@ -400,6 +400,16 @@ export class CMakeTools implements vscode.Disposable, api.CMakeToolsAPI {
|
||||||
this._statusMessage.set(localize('ready.status', 'Ready'));
|
this._statusMessage.set(localize('ready.status', 'Ready'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async isNinjaInstalled() : Promise<boolean> {
|
||||||
|
const drv = await this._cmakeDriver;
|
||||||
|
|
||||||
|
if (drv) {
|
||||||
|
return await drv.testHaveCommand('ninja') || drv.testHaveCommand('ninja-build');
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
async setKit(kit: Kit|null) {
|
async setKit(kit: Kit|null) {
|
||||||
this._activeKit = kit;
|
this._activeKit = kit;
|
||||||
if (kit) {
|
if (kit) {
|
||||||
|
|
|
@ -526,7 +526,7 @@ export abstract class CMakeDriver implements vscode.Disposable {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async testHaveCommand(program: string, args: string[] = ['--version']): Promise<boolean> {
|
public async testHaveCommand(program: string, args: string[] = ['--version']): Promise<boolean> {
|
||||||
const child = this.executeCommand(program, args, undefined, {silent: true});
|
const child = this.executeCommand(program, args, undefined, {silent: true});
|
||||||
try {
|
try {
|
||||||
const result = await child.result;
|
const result = await child.result;
|
||||||
|
|
|
@ -319,8 +319,15 @@ KITS_BY_PLATFORM[workername].forEach(buildSystem => {
|
||||||
this.timeout(BUILD_TIMEOUT);
|
this.timeout(BUILD_TIMEOUT);
|
||||||
context.testEnv.config.updatePartial({preferredGenerators: []});
|
context.testEnv.config.updatePartial({preferredGenerators: []});
|
||||||
expect(await context.cmt.build()).to.eql(0);
|
expect(await context.cmt.build()).to.eql(0);
|
||||||
|
|
||||||
const result = await context.testEnv.result.getResultAsJson();
|
const result = await context.testEnv.result.getResultAsJson();
|
||||||
expect(result['cmake-generator']).to.match(buildSystem.expectedDefaultGenerator);
|
// "Ninja" and "Unix Makefiles" are always the default preferred generators
|
||||||
|
// if no other overriding property is set.
|
||||||
|
// The extension verifies for each if they are present (installed)
|
||||||
|
// and starts with "Ninja".
|
||||||
|
const isNinjaInstalled = await context.cmt.isNinjaInstalled();
|
||||||
|
expect(result['cmake-generator']).to.eql(isNinjaInstalled ? "Ninja" : "Unix Makefiles");
|
||||||
|
|
||||||
expect(context.testEnv.errorMessagesQueue.length)
|
expect(context.testEnv.errorMessagesQueue.length)
|
||||||
.to.eql(0, 'Wrong message ' + context.testEnv.errorMessagesQueue[0]);
|
.to.eql(0, 'Wrong message ' + context.testEnv.errorMessagesQueue[0]);
|
||||||
});
|
});
|
||||||
|
|
Загрузка…
Ссылка в новой задаче