From 1aea035b54b1f7ca3b1bd5242c784228bb6b333a Mon Sep 17 00:00:00 2001 From: scriptonist Date: Mon, 4 Feb 2019 08:53:11 +0530 Subject: [PATCH] introduce a new function arg in getTestFlags according to https://github.com/Microsoft/vscode-go/pull/2285#pullrequestreview-199408658 --- src/goBuild.ts | 20 ++++++++++---------- src/goCheck.ts | 8 ++++---- src/goCover.ts | 4 ++-- src/goRunTestCodelens.ts | 4 ++-- src/goTest.ts | 8 ++++---- src/testUtils.ts | 12 ++++++++++-- src/util.ts | 8 -------- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/goBuild.ts b/src/goBuild.ts index 9d7a7b4a3..4f81821fe 100644 --- a/src/goBuild.ts +++ b/src/goBuild.ts @@ -1,6 +1,6 @@ import path = require('path'); import vscode = require('vscode'); -import { getToolsEnvVars, runTool, ICheckResult, handleDiagnosticErrors, getWorkspaceFolderPath, getCurrentGoPath, getTempFilePath, removeRunFlag } from './util'; +import { getToolsEnvVars, runTool, ICheckResult, handleDiagnosticErrors, getWorkspaceFolderPath, getCurrentGoPath, getTempFilePath } from './util'; import { outputChannel } from './goStatus'; import os = require('os'); import { getNonVendorPackages } from './goPackages'; @@ -34,14 +34,14 @@ export function buildCode(buildWorkspace?: boolean) { isModSupported(documentUri).then(isMod => { goBuild(documentUri, isMod, goConfig, buildWorkspace) - .then(errors => { - handleDiagnosticErrors(editor ? editor.document : null, errors, buildDiagnosticCollection); - diagnosticsStatusBarItem.hide(); - }) - .catch(err => { - vscode.window.showInformationMessage('Error: ' + err); - diagnosticsStatusBarItem.text = 'Build Failed'; - }); + .then(errors => { + handleDiagnosticErrors(editor ? editor.document : null, errors, buildDiagnosticCollection); + diagnosticsStatusBarItem.hide(); + }) + .catch(err => { + vscode.window.showInformationMessage('Error: ' + err); + diagnosticsStatusBarItem.text = 'Build Failed'; + }); }); } @@ -77,7 +77,7 @@ export function goBuild(fileUri: vscode.Uri, isMod: boolean, goConfig: vscode.Wo const buildEnv = Object.assign({}, getToolsEnvVars()); const tmpPath = getTempFilePath('go-code-check'); const isTestFile = fileUri && fileUri.fsPath.endsWith('_test.go'); - const buildFlags: string[] = isTestFile ? removeRunFlag(getTestFlags(goConfig)) : (Array.isArray(goConfig['buildFlags']) ? [...goConfig['buildFlags']] : []); + const buildFlags: string[] = isTestFile ? getTestFlags(goConfig, false) : (Array.isArray(goConfig['buildFlags']) ? [...goConfig['buildFlags']] : []); const buildArgs: string[] = isTestFile ? ['test', '-c'] : ['build']; if (goConfig['installDependenciesWhenBuilding'] === true && !isMod) { diff --git a/src/goCheck.ts b/src/goCheck.ts index 17c370eb3..94abb265a 100644 --- a/src/goCheck.ts +++ b/src/goCheck.ts @@ -10,7 +10,7 @@ import path = require('path'); import { applyCodeCoverageToAllEditors } from './goCover'; import { outputChannel, diagnosticsStatusBarItem } from './goStatus'; import { goTest, TestConfig, getTestFlags } from './testUtils'; -import { ICheckResult, getBinPath, getTempFilePath, removeRunFlag } from './util'; +import { ICheckResult, getBinPath, getTempFilePath } from './util'; import { goLint } from './goLint'; import { goVet } from './goVet'; import { goBuild } from './goBuild'; @@ -69,7 +69,7 @@ export function check(fileUri: vscode.Uri, goConfig: vscode.WorkspaceConfigurati let testConfig: TestConfig = { goConfig: goConfig, dir: cwd, - flags: removeRunFlag(getTestFlags(goConfig)), + flags: getTestFlags(goConfig, false), background: true }; @@ -113,12 +113,12 @@ export function check(fileUri: vscode.Uri, goConfig: vscode.WorkspaceConfigurati if (!!goConfig['lintOnSave'] && goConfig['lintOnSave'] !== 'off') { runningToolsPromises.push(goLint(fileUri, goConfig, goConfig['lintOnSave']) - .then(errors => ({diagnosticCollection: lintDiagnosticCollection, errors: errors}))); + .then(errors => ({ diagnosticCollection: lintDiagnosticCollection, errors: errors }))); } if (!!goConfig['vetOnSave'] && goConfig['vetOnSave'] !== 'off') { runningToolsPromises.push(goVet(fileUri, goConfig, goConfig['vetOnSave'] === 'workspace') - .then(errors => ({diagnosticCollection: vetDiagnosticCollection, errors: errors}))); + .then(errors => ({ diagnosticCollection: vetDiagnosticCollection, errors: errors }))); } if (!!goConfig['coverOnSave']) { diff --git a/src/goCover.ts b/src/goCover.ts index 999ccc7d6..4d1acd4ca 100644 --- a/src/goCover.ts +++ b/src/goCover.ts @@ -8,7 +8,7 @@ import vscode = require('vscode'); import path = require('path'); import fs = require('fs'); import rl = require('readline'); -import { getTempFilePath, removeRunFlag } from './util'; +import { getTempFilePath } from './util'; import { showTestOutput, goTest, TestConfig, getTestFlags } from './testUtils'; import { isModSupported } from './goModules'; @@ -291,7 +291,7 @@ export function toggleCoverageCurrentPackage() { let goConfig = vscode.workspace.getConfiguration('go', editor.document.uri); let cwd = path.dirname(editor.document.uri.fsPath); - let args = removeRunFlag(getTestFlags(goConfig)); + let args = getTestFlags(goConfig, false); let tmpCoverPath = getTempFilePath('go-code-cover'); args.push('-coverprofile=' + tmpCoverPath); const testConfig: TestConfig = { diff --git a/src/goRunTestCodelens.ts b/src/goRunTestCodelens.ts index 18387bae1..53a58817d 100644 --- a/src/goRunTestCodelens.ts +++ b/src/goRunTestCodelens.ts @@ -10,7 +10,7 @@ import path = require('path'); import { TextDocument, CancellationToken, CodeLens, Command } from 'vscode'; import { getTestFunctions, getBenchmarkFunctions, getTestFlags, extractInstanceTestName, findAllTestSuiteRuns } from './testUtils'; import { GoDocumentSymbolProvider } from './goOutline'; -import { getCurrentGoPath, removeRunFlag } from './util'; +import { getCurrentGoPath } from './util'; import { GoBaseCodeLensProvider } from './goBaseCodelens'; export class GoRunTestCodeLensProvider extends GoBaseCodeLensProvider { @@ -92,7 +92,7 @@ export class GoRunTestCodeLensProvider extends GoBaseCodeLensProvider { const program = path.dirname(document.fileName); const env = Object.assign({}, this.debugConfig.env, vsConfig['testEnvVars']); const envFile = vsConfig['testEnvFile']; - const buildFlags = removeRunFlag(getTestFlags(vsConfig)); + const buildFlags = getTestFlags(vsConfig, false); if (vsConfig['buildTags'] && buildFlags.indexOf('-tags') === -1) { buildFlags.push('-tags'); buildFlags.push(`${vsConfig['buildTags']}`); diff --git a/src/goTest.ts b/src/goTest.ts index d111a8038..7d3f6f801 100644 --- a/src/goTest.ts +++ b/src/goTest.ts @@ -8,7 +8,7 @@ import path = require('path'); import vscode = require('vscode'); import os = require('os'); -import { getTempFilePath, removeRunFlag } from './util'; +import { getTempFilePath } from './util'; import { goTest, TestConfig, getTestFlags, getTestFunctions, getBenchmarkFunctions, extractInstanceTestName, findAllTestSuiteRuns } from './testUtils'; import { applyCodeCoverageToAllEditors } from './goCover'; import { isModSupported } from './goModules'; @@ -149,7 +149,7 @@ export function testWorkspace(goConfig: vscode.WorkspaceConfiguration, args: any const testConfig: TestConfig = { goConfig: goConfig, dir: workspaceUri.fsPath, - flags: removeRunFlag(getTestFlags(goConfig, args)), + flags: getTestFlags(goConfig, false, args), includeSubDirectories: true }; // Remember this config as the last executed test. @@ -187,7 +187,7 @@ export function testCurrentFile(goConfig: vscode.WorkspaceConfiguration, isBench const testConfig: TestConfig = { goConfig: goConfig, dir: path.dirname(editor.document.fileName), - flags: removeRunFlag(getTestFlags(goConfig, args)), + flags: getTestFlags(goConfig, false, args), functions: testFunctions.map(sym => sym.name), isBenchmark: isBenchmark, }; @@ -225,7 +225,7 @@ export function testPrevious() { */ function makeCoverData(goConfig: vscode.WorkspaceConfiguration, confFlag: string, args: any): { tmpCoverPath: string, testFlags: string[] } { let tmpCoverPath = ''; - let testFlags = removeRunFlag(getTestFlags(goConfig, args) || []); + let testFlags = getTestFlags(goConfig, false, args) || []; if (goConfig[confFlag] === true) { tmpCoverPath = getTempFilePath('go-code-cover'); testFlags.push('-coverprofile=' + tmpCoverPath); diff --git a/src/testUtils.ts b/src/testUtils.ts index 37dc4c42d..bb21e4562 100644 --- a/src/testUtils.ts +++ b/src/testUtils.ts @@ -8,7 +8,7 @@ import path = require('path'); import vscode = require('vscode'); import util = require('util'); import { parseEnvFile, getCurrentGoWorkspaceFromGOPATH } from './goPath'; -import { getToolsEnvVars, getGoVersion, LineBuffer, SemVersion, resolvePath, getCurrentGoPath, getBinPath, removeRunFlag } from './util'; +import { getToolsEnvVars, getGoVersion, LineBuffer, SemVersion, resolvePath, getCurrentGoPath, getBinPath } from './util'; import { GoDocumentSymbolProvider } from './goOutline'; import { getNonVendorPackages } from './goPackages'; import { getCurrentPackage } from './goModules'; @@ -87,7 +87,7 @@ export function getTestEnvVars(config: vscode.WorkspaceConfiguration): any { return envVars; } -export function getTestFlags(goConfig: vscode.WorkspaceConfiguration, args?: any, useRunFlag= true): string[] { +export function getTestFlags(goConfig: vscode.WorkspaceConfiguration, useRunFlag = true, args?: any): string[] { let testFlags: string[] = goConfig['testFlags'] || goConfig['buildFlags'] || []; testFlags = testFlags.map(x => resolvePath(x)); // Use copy of the flags, dont pass the actual object from config if (useRunFlag === false) { @@ -389,3 +389,11 @@ function targetArgs(testconfig: TestConfig): Array { } return params; } + +function removeRunFlag(flags: string[]): string[] { + const index: number = flags.indexOf('-run'); + if (index !== -1) { + flags.splice(index, 2); + } + return flags; +} diff --git a/src/util.ts b/src/util.ts index a4860cf46..c8873755d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -960,11 +960,3 @@ export function runGodoc(cwd: string, packagePath: string, receiver: string, sym }); }); } - -export function removeRunFlag(flags: string[]): string[] { - const index: number = flags.indexOf('-run'); - if (index !== -1) { - flags.splice(index, 2); - } - return flags; -} \ No newline at end of file