Merge pull request #3263 from github/dbartol/extensible-failure

This commit is contained in:
Dave Bartolomeo
2024-01-22 13:29:35 -05:00
committed by GitHub
2 changed files with 19 additions and 2 deletions

View File

@@ -1737,6 +1737,10 @@ export class CliVersionConstraint {
*/
public static CLI_VERSION_WITH_TRIM_CACHE = new SemVer("2.15.1");
public static CLI_VERSION_WITHOUT_MRVA_EXTENSIBLE_PREDICATE_HACK = new SemVer(
"2.16.1",
);
constructor(private readonly cli: CodeQLCliServer) {
/**/
}
@@ -1779,6 +1783,13 @@ export class CliVersionConstraint {
);
}
async preservesExtensiblePredicatesInMrvaPack() {
// Negated, because we _stopped_ preserving these in 2.16.1.
return !(await this.isVersionAtLeast(
CliVersionConstraint.CLI_VERSION_WITHOUT_MRVA_EXTENSIBLE_PREDICATE_HACK,
));
}
async supportsMrvaPackCreate(): Promise<boolean> {
return (await this.cli.getFeatures()).mrvaPackCreate === true;
}

View File

@@ -275,7 +275,13 @@ describe("Variant Analysis Manager", () => {
const queryToRun =
"Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql";
const extraQuery = "Telemetry/ExtractorInformation.ql";
// Recent versions of the CLI don't preserve queries with extensible predicates in MRVA packs,
// because all the necessary info is in the `.packinfo` file.
const extraQueries =
(await cli.cliConstraints.preservesExtensiblePredicatesInMrvaPack())
? ["Telemetry/ExtractorInformation.ql"]
: [];
await doVariantAnalysisTest({
queryPath: join(
@@ -284,7 +290,7 @@ describe("Variant Analysis Manager", () => {
queryToRun,
),
expectedPackName: "codeql/java-queries",
filesThatExist: [queryToRun, extraQuery],
filesThatExist: [queryToRun, ...extraQueries],
filesThatDoNotExist: [],
qlxFilesThatExist: [],
dependenciesToCheck: ["codeql/java-all"],