Codegen: use one generated test file per directory

This collapses all generated test QL sources into a single one per
directory, using query predicates to run the different tests.

This should improve the time required to run generated tests.
This commit is contained in:
Paolo Tranquilli
2025-06-25 11:44:54 +02:00
parent 3d9e2f5438
commit 6bbf1e3bc1
1753 changed files with 7752 additions and 7850 deletions

View File

@@ -2,21 +2,41 @@
import codeql.rust.elements
import TestUtils
from
StructExpr x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath,
string hasStructExprFieldList
where
query predicate instances(
StructExpr x, string hasResolvedPath__label, string hasResolvedPath,
string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label,
string hasPath, string hasStructExprFieldList__label, string hasStructExprFieldList
) {
toBeTested(x) and
not x.isUnknown() and
hasResolvedPath__label = "hasResolvedPath:" and
(if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and
hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and
(
if x.hasResolvedCrateOrigin()
then hasResolvedCrateOrigin = "yes"
else hasResolvedCrateOrigin = "no"
) and
hasPath__label = "hasPath:" and
(if x.hasPath() then hasPath = "yes" else hasPath = "no") and
hasStructExprFieldList__label = "hasStructExprFieldList:" and
if x.hasStructExprFieldList()
then hasStructExprFieldList = "yes"
else hasStructExprFieldList = "no"
select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin,
"hasPath:", hasPath, "hasStructExprFieldList:", hasStructExprFieldList
}
query predicate getResolvedPath(StructExpr x, string getResolvedPath) {
toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath()
}
query predicate getResolvedCrateOrigin(StructExpr x, string getResolvedCrateOrigin) {
toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin()
}
query predicate getPath(StructExpr x, Path getPath) {
toBeTested(x) and not x.isUnknown() and getPath = x.getPath()
}
query predicate getStructExprFieldList(StructExpr x, StructExprFieldList getStructExprFieldList) {
toBeTested(x) and not x.isUnknown() and getStructExprFieldList = x.getStructExprFieldList()
}