mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
Test run list proposal (#7617)
* Test run list propsal * fixed ts errors * added js file * excluding testSetup.js file from hygiene * moved ignore line to indententationFilter
This commit is contained in:
committed by
Elliot Boschwitz
parent
2ee3840650
commit
203ff3872f
@@ -56,6 +56,7 @@ const indentationFilter = [
|
|||||||
'!src/vs/base/node/terminateProcess.sh',
|
'!src/vs/base/node/terminateProcess.sh',
|
||||||
'!src/vs/base/node/cpuUsage.sh',
|
'!src/vs/base/node/cpuUsage.sh',
|
||||||
'!test/assert.js',
|
'!test/assert.js',
|
||||||
|
'!build/testSetup.js',
|
||||||
|
|
||||||
// except specific folders
|
// except specific folders
|
||||||
'!test/automation/out/**',
|
'!test/automation/out/**',
|
||||||
@@ -193,7 +194,7 @@ const tslintBaseFilter = [
|
|||||||
'!extensions/**/*.test.ts',
|
'!extensions/**/*.test.ts',
|
||||||
'!extensions/html-language-features/server/lib/jquery.d.ts',
|
'!extensions/html-language-features/server/lib/jquery.d.ts',
|
||||||
'!extensions/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts', // {{SQL CARBON EDIT}},
|
'!extensions/big-data-cluster/src/bigDataCluster/controller/apiGenerated.ts', // {{SQL CARBON EDIT}},
|
||||||
'!extensions/big-data-cluster/src/bigDataCluster/controller/tokenApiGenerated.ts' // {{SQL CARBON EDIT}}
|
'!extensions/big-data-cluster/src/bigDataCluster/controller/tokenApiGenerated.ts' // {{SQL CARBON EDIT}},
|
||||||
];
|
];
|
||||||
|
|
||||||
const sqlFilter = ['src/sql/**']; // {{SQL CARBON EDIT}}
|
const sqlFilter = ['src/sql/**']; // {{SQL CARBON EDIT}}
|
||||||
|
|||||||
57
build/testSetup.js
Normal file
57
build/testSetup.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
"use strict";
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
const fs = require('fs').promises;
|
||||||
|
const path = require('path');
|
||||||
|
const readConfiguration = (async () => {
|
||||||
|
const parseConfigString = ((content) => {
|
||||||
|
try {
|
||||||
|
const result = JSON.parse(content);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
console.log('Could NOT parse TEST_RUN_LIST:', content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Attempt to read from an enviornment variable
|
||||||
|
const testRunlist = process.env['TEST_RUN_LIST'];
|
||||||
|
if (testRunlist && testRunlist !== '') {
|
||||||
|
const result = parseConfigString(testRunlist);
|
||||||
|
if (result) {
|
||||||
|
console.log('Using the environment test run list:', result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Attempt to read from a config file
|
||||||
|
let testRunPath = process.env['TEST_RUN_LIST_FILE'];
|
||||||
|
if (!testRunPath || testRunPath === '') {
|
||||||
|
testRunPath = path.resolve(__dirname, '..', 'runlist.json');
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const contents = await fs.readFile(testRunPath);
|
||||||
|
return parseConfigString(contents);
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
console.log(`error reading file ${testRunPath}:`, ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
(async () => {
|
||||||
|
const keys = process.argv.slice(2);
|
||||||
|
const configuration = await readConfiguration();
|
||||||
|
if (!configuration) {
|
||||||
|
console.log('no configuration was setup');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const testList = [];
|
||||||
|
keys.forEach((key) => {
|
||||||
|
const arr = configuration[key];
|
||||||
|
if (arr) {
|
||||||
|
testList.push(...arr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const result = `(${testList.join('|')})`;
|
||||||
|
console.log(result);
|
||||||
|
process.env['TEST_GREP'] = result;
|
||||||
|
})();
|
||||||
67
build/testSetup.ts
Normal file
67
build/testSetup.ts
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
const fs = require('fs').promises;
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
interface IntegrationTestConfig {
|
||||||
|
[key: string]: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
const readConfiguration = (async (): Promise<IntegrationTestConfig | void> => {
|
||||||
|
const parseConfigString = ((content: string): (IntegrationTestConfig | void) => {
|
||||||
|
try {
|
||||||
|
const result = JSON.parse(content);
|
||||||
|
return result as IntegrationTestConfig;
|
||||||
|
} catch (ex) {
|
||||||
|
console.log('Could NOT parse TEST_RUN_LIST:', content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Attempt to read from an enviornment variable
|
||||||
|
const testRunlist = process.env['TEST_RUN_LIST'];
|
||||||
|
if (testRunlist && testRunlist !== '') {
|
||||||
|
const result = parseConfigString(testRunlist);
|
||||||
|
if (result) {
|
||||||
|
console.log('Using the environment test run list:', result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attempt to read from a config file
|
||||||
|
let testRunPath = process.env['TEST_RUN_LIST_FILE'];
|
||||||
|
if (!testRunPath || testRunPath === '') {
|
||||||
|
testRunPath = path.resolve(__dirname, '..', 'runlist.json');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const contents = await fs.readFile(testRunPath);
|
||||||
|
return parseConfigString(contents);
|
||||||
|
} catch (ex) {
|
||||||
|
console.log(`error reading file ${testRunPath}:`, ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
(async (): Promise<string | void> => {
|
||||||
|
const keys = process.argv.slice(2);
|
||||||
|
|
||||||
|
const configuration = await readConfiguration();
|
||||||
|
|
||||||
|
if (!configuration) {
|
||||||
|
console.log('no configuration was setup');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const testList: string[] = [];
|
||||||
|
keys.forEach((key) => {
|
||||||
|
const arr = configuration[key];
|
||||||
|
if (arr) {
|
||||||
|
testList.push(...arr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = `(${testList.join('|')})`;
|
||||||
|
console.log(result);
|
||||||
|
process.env['TEST_GREP'] = result;
|
||||||
|
})();
|
||||||
12
runlist.json
Normal file
12
runlist.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"setup": [
|
||||||
|
"setup integration tests",
|
||||||
|
"setup extension tests"
|
||||||
|
],
|
||||||
|
"pr": [
|
||||||
|
"dacpac.*"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"bds.*"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user