Add pack download to its own log group

Also, make the baseline count message less awkward sounding.
This commit is contained in:
Andrew Eisenberg 2021-06-09 13:19:49 -07:00
parent 96e7de35af
commit a2e96a4c78
10 changed files with 54 additions and 22 deletions

View file

@ -136,13 +136,31 @@ test("status report fields and search path setting", async (t) => {
getRunnerLogger(true)
);
const hasPacks = language in packs;
t.deepEqual(Object.keys(builtinStatusReport).length, hasPacks ? 2 : 1);
t.true(
`analyze_builtin_queries_${language}_duration_ms` in builtinStatusReport
);
t.true(
`interpret_results_${language}_duration_ms` in builtinStatusReport
);
const statusReportKeys = Object.keys(builtinStatusReport).sort();
if (hasPacks) {
t.deepEqual(statusReportKeys.length, 3, statusReportKeys.toString());
t.deepEqual(
statusReportKeys[0],
`analyze_builtin_queries_${language}_duration_ms`
);
t.deepEqual(
statusReportKeys[1],
`analyze_custom_queries_${language}_duration_ms`
);
t.deepEqual(
statusReportKeys[2],
`interpret_results_${language}_duration_ms`
);
} else {
t.deepEqual(
statusReportKeys[0],
`analyze_builtin_queries_${language}_duration_ms`
);
t.deepEqual(
statusReportKeys[1],
`interpret_results_${language}_duration_ms`
);
}
config.queries[language] = {
builtin: [],

View file

@ -176,14 +176,13 @@ export async function runQueries(
);
for (const language of config.languages) {
logger.startGroup(`Running queries for ${language}`);
const queries = config.queries[language];
const packsWithVersion = config.packs[language] || [];
const hasBuiltinQueries = queries?.builtin.length > 0;
const hasCustomQueries = queries?.custom.length > 0;
const hasPackWithCustomQueries = packsWithVersion.length > 0;
if (!hasBuiltinQueries && !hasCustomQueries && !hasPackWithCustomQueries) {
throw new Error(
`Unable to analyse ${language} as no queries were selected for this language`
@ -192,6 +191,8 @@ export async function runQueries(
try {
if (hasPackWithCustomQueries) {
logger.startGroup(`Downloading custom packs for ${language}`);
const codeql = getCodeQL(config.codeQLCmd);
const results = await codeql.packDownload(packsWithVersion);
logger.info(
@ -199,8 +200,11 @@ export async function runQueries(
.map((r) => `${r.name}@${r.version || "latest"}`)
.join(", ")}`
);
logger.endGroup();
}
logger.startGroup(`Running queries for ${language}`);
const querySuitePaths: string[] = [];
if (queries["builtin"].length > 0) {
const startTimeBuiltIn = new Date().getTime();
@ -419,7 +423,7 @@ function printLinesOfCodeSummary(
) {
if (language in lineCounts) {
logger.info(
`Counted ${lineCounts[language]} lines of code for ${language} as a baseline.`
`Counted a baseline of ${lineCounts[language]} lines of code for ${language}.`
);
}
}

View file

@ -1316,7 +1316,7 @@ test("path sanitisation", (t) => {
*/
function parsePacksMacro(
t: ExecutionContext<unknown>,
packsByLanguage,
packsByLanguage: string[] | Record<string, string[]>,
languages: Language[],
expected
) {
@ -1362,7 +1362,7 @@ function invalidPackNameMacro(t: ExecutionContext<unknown>, name: string) {
invalidPackNameMacro.title = (_: string, arg: string) =>
`Invalid pack string: ${arg}`;
test("no packs", parsePacksMacro, undefined, [], {});
test("no packs", parsePacksMacro, {}, [], {});
test("two packs", parsePacksMacro, ["a/b", "c/d@1.2.3"], [Language.cpp], {
[Language.cpp]: [
{ packName: "a/b", version: undefined },