Skip to content

Commit 7e4180b

Browse files
authored
Merge pull request #3760 from d10c/d10c/bigint-quick-eval-fix
Add a version-check to BigInt quick-eval test
2 parents f20476f + 3c0de35 commit 7e4180b

File tree

4 files changed

+67
-28
lines changed

4 files changed

+67
-28
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import QuickEvalLib
2+
3+
class InterestingBigInt instanceof InterestingNumber
4+
{
5+
QlBuiltins::BigInt getBigIntValue() {
6+
result = super.getValue().toBigInt().pow(10)
7+
}
8+
9+
string toString() {
10+
result = super.toString()
11+
}
12+
}
13+
14+
class PrimeNumber extends InterestingNumber {
15+
PrimeNumber() {
16+
exists(int n | this = MkNumber(n) |
17+
n in [
18+
2,
19+
3,
20+
5,
21+
7,
22+
11,
23+
13,
24+
17,
25+
19
26+
])
27+
}
28+
}
29+
30+
from InterestingNumber n
31+
select n.toString()

‎extensions/ql-vscode/test/data/debugger/QuickEvalLib.qll‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,4 @@ abstract class InterestingNumber extends TNumber
1717
final int getValue() {
1818
result = value
1919
}
20-
21-
QlBuiltins::BigInt getBigIntValue() {
22-
result = value.toBigInt()
23-
}
2420
}

‎extensions/ql-vscode/test/unit-tests/common/files.test.ts‎

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,19 @@ describe("files", () => {
6666

6767
it("should scan a directory", async () => {
6868
const file1 = join(dataDir, "compute-default-strings.ql");
69-
const file2 = join(dataDir, "debugger", "QuickEvalQuery.ql");
70-
const file3 = join(dataDir, "debugger", "simple-query.ql");
71-
const file4 = join(dataDir, "multiple-result-sets.ql");
72-
const file5 = join(dataDir, "query.ql");
69+
const file2 = join(dataDir, "debugger", "QuickEvalBigIntQuery.ql");
70+
const file3 = join(dataDir, "debugger", "QuickEvalQuery.ql");
71+
const file4 = join(dataDir, "debugger", "simple-query.ql");
72+
const file5 = join(dataDir, "multiple-result-sets.ql");
73+
const file6 = join(dataDir, "query.ql");
7374

7475
const vaDir = join(dataDir, "variant-analysis-query-packs");
75-
const file6 = join(vaDir, "workspace1", "dir1", "query1.ql");
76-
const file7 = join(vaDir, "workspace1", "pack1", "query1.ql");
77-
const file8 = join(vaDir, "workspace1", "pack1", "query2.ql");
78-
const file9 = join(vaDir, "workspace1", "pack2", "query1.ql");
79-
const file10 = join(vaDir, "workspace1", "query1.ql");
80-
const file11 = join(vaDir, "workspace2", "query1.ql");
76+
const file7 = join(vaDir, "workspace1", "dir1", "query1.ql");
77+
const file8 = join(vaDir, "workspace1", "pack1", "query1.ql");
78+
const file9 = join(vaDir, "workspace1", "pack1", "query2.ql");
79+
const file10 = join(vaDir, "workspace1", "pack2", "query1.ql");
80+
const file11 = join(vaDir, "workspace1", "query1.ql");
81+
const file12 = join(vaDir, "workspace2", "query1.ql");
8182

8283
const result = await gatherQlFiles([dataDir]);
8384
expect(result.sort()).toEqual([
@@ -93,6 +94,7 @@ describe("files", () => {
9394
file9,
9495
file10,
9596
file11,
97+
file12,
9698
],
9799
true,
98100
]);
@@ -112,18 +114,19 @@ describe("files", () => {
112114

113115
it("should avoid duplicates", async () => {
114116
const file1 = join(dataDir, "compute-default-strings.ql");
115-
const file2 = join(dataDir, "debugger", "QuickEvalQuery.ql");
116-
const file3 = join(dataDir, "debugger", "simple-query.ql");
117-
const file4 = join(dataDir, "multiple-result-sets.ql");
118-
const file5 = join(dataDir, "query.ql");
117+
const file2 = join(dataDir, "debugger", "QuickEvalBigIntQuery.ql");
118+
const file3 = join(dataDir, "debugger", "QuickEvalQuery.ql");
119+
const file4 = join(dataDir, "debugger", "simple-query.ql");
120+
const file5 = join(dataDir, "multiple-result-sets.ql");
121+
const file6 = join(dataDir, "query.ql");
119122

120123
const vaDir = join(dataDir, "variant-analysis-query-packs");
121-
const file6 = join(vaDir, "workspace1", "dir1", "query1.ql");
122-
const file7 = join(vaDir, "workspace1", "pack1", "query1.ql");
123-
const file8 = join(vaDir, "workspace1", "pack1", "query2.ql");
124-
const file9 = join(vaDir, "workspace1", "pack2", "query1.ql");
125-
const file10 = join(vaDir, "workspace1", "query1.ql");
126-
const file11 = join(vaDir, "workspace2", "query1.ql");
124+
const file7 = join(vaDir, "workspace1", "dir1", "query1.ql");
125+
const file8 = join(vaDir, "workspace1", "pack1", "query1.ql");
126+
const file9 = join(vaDir, "workspace1", "pack1", "query2.ql");
127+
const file10 = join(vaDir, "workspace1", "pack2", "query1.ql");
128+
const file11 = join(vaDir, "workspace1", "query1.ql");
129+
const file12 = join(vaDir, "workspace2", "query1.ql");
127130

128131
const result = await gatherQlFiles([file1, dataDir, file3, file4, file5]);
129132
result[0].sort();
@@ -140,6 +143,7 @@ describe("files", () => {
140143
file9,
141144
file10,
142145
file11,
146+
file12,
143147
],
144148
true,
145149
]);

‎extensions/ql-vscode/test/vscode-tests/cli-integration/debugger/debugger.test.ts‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ describeWithCodeQL()("Debugger", () => {
4949
const quickEvalQueryPath = getDataFolderFilePath(
5050
"debugger/QuickEvalQuery.ql",
5151
);
52+
const quickEvalBigIntQueryPath = getDataFolderFilePath(
53+
"debugger/QuickEvalBigIntQuery.ql",
54+
);
5255
const quickEvalLibPath = getDataFolderFilePath("debugger/QuickEvalLib.qll");
5356

5457
beforeEach(async () => {
@@ -146,11 +149,16 @@ describeWithCodeQL()("Debugger", () => {
146149

147150
it("should run a quick evaluation with a bigint-valued result column", async () => {
148151
await withDebugController(appCommands, async (controller) => {
149-
await selectForQuickEval(quickEvalLibPath, 20, 23, 20, 37);
152+
const semver = await cli.getVersion();
153+
if (semver.compare("2.18.4") < 0) {
154+
// Skip this test if the CLI version is too old to support BigInt
155+
return;
156+
}
150157

151-
await controller.startDebuggingSelection({
152-
query: quickEvalQueryPath, // The query context. This query extends the abstract class.
153-
});
158+
await selectForQuickEval(quickEvalBigIntQueryPath, 4, 23, 4, 37);
159+
160+
// Don't specify a query path, so we'll default to the active document ("QuickEvalBigIntQuery.ql")
161+
await controller.startDebuggingSelection({});
154162
await controller.expectLaunched();
155163
const result = await controller.expectSucceeded();
156164
expect(result.started.quickEvalContext).toBeDefined();

0 commit comments

Comments
 (0)